编写 VLC 脚本来捕获视频的第一帧 - 无法使用命令行

D M*_*Mac 3 macos perl command-line vlc

我正在创建一个脚本来从网络上提取视频,创建第一帧的图像,并将图像保存为文件。我的脚本正在处理抓取大量视频并为文件名提供序列号。

我的问题是使用 VLC 抓取视频并实际保存文件。在将其放入脚本之前,我尝试了命令行和本地文件,我尝试过:

vlc -vvv -I dummy --video-filter=scene --start-time=1 --stop-time=1 --scene-format=jpeg --scene-ratio=24 --scene-prefix=EXEC samp.mp4 vlc://quit
Run Code Online (Sandbox Code Playgroud)

-> 未捕获的异常

vlc -vvv -I dummy --no-audio --video-filter=scene --start-time=1 --stop-time=1 --scene-format=jpeg --scene-ratio=24 --scene-prefix=EXEC samp.mp4 vlc://quit
Run Code Online (Sandbox Code Playgroud)

-> 未捕获的异常

vlc -vvv -I rc --video-filter=scene --start-time=1 --stop-time=1 --scene-format=jpeg --scene-ratio=24 --scene-prefix=EXEC samp.mp4 vlc://quit
Run Code Online (Sandbox Code Playgroud)

-> 未捕获的异常;看起来我不能没有 -V 选项

vlc -vvv -I rc -V snapshot --video-filter=scene  --start-time=1 --stop-time=1 --scene-format=jpeg --scene-ratio=24 --scene-prefix=EXEC samp.mp4 vlc://quit
Run Code Online (Sandbox Code Playgroud)

-> 没有与“快照”匹配的 vout 显示模块;类似地尝试使用模块“image”、“scene”、“opengl”

我在 Mac OS X 10.7.3 上运行 VLC 2.0.1。有人让 VLC 在命令行上工作(因此它是可编写脚本的)来从视频中捕获图像吗?

顺便说一句,我对此进行了广泛的谷歌搜索 - VLC 文档已经过时了,而且网络上的大多数建议实际上并不适用于最新版本的 VLC。

D M*_*Mac 6

另一种方法是使用 ffmpeg - 这对我有用:

ffmpeg -i http://example.com/directory/video.mp4  -ss 0 -vframes 1 -vcodec mjpeg -f image2 keyframe001.jpg
Run Code Online (Sandbox Code Playgroud)