无需下载整个文件即可从 HTTP 流视频中提取帧

无需下载整个文件即可从 HTTP 流视频中提取帧

我想从视频文件的特定位置提取一帧。该文件位于远程服务器上,我不想下载整个文件。如何以编程方式从 http 流中提取一帧?

我可以使用 VLC 的 GUI 做我想做的事情,但我不知道如何在 CLI 中做。也许有一种方法可以使用 VLC CLI 发送范围标头?

我正在尝试在无头 ubuntu 机器上执行此操作

答案1

ffmpeg 也应该能够从 URL 读取。只需指定偏移量(以秒为单位)或选项HH:MM:SS.msec的格式-ss

ffmpeg -i http://example.com/video.mp4 -ss 5 -frames:v 1 thumbnail.png

这也适用于其他 HTML5 容器。

如果你使用的是 Linux 发行版,请确保不要通过 安装 ffmpeg apt-get install ffmpeg,但自己编译或者下载静态构建。官方软件包中的版本总是有些过时,并且 - 根据 Ubuntu 版本的不同 - 甚至没有“真正的” ffmpeg。

相关内容