2012-04-05 59 views
3

我正在创建一个脚本以将视频从网络中拉出,创建第一帧图像并将图像保存为文件。我的脚本正在处理抓取大量视频,并为文件名称分配一个序号。脚本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 

- >未捕获的异常

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 

- >未捕获的异常

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 

- >未捕获的异常;看起来像我不能没有-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 

- > no vout display module matching“snapshot”;类似的尝试模块“形象”,“场景”,“opengl”

我在Mac OS X 10.7.3上运行VLC 2.0.1。有没有人让VLC在命令行上工作(这样可以编写脚本)从视频中进行图像捕获?

顺便说一句,我已经做了大量的谷歌搜索 - VLC文档是绝望的过时,网上的大多数建议实际上并不适用于最新版本的VLC。

+0

[已删除]可能适合作为解答 – 2012-04-06 04:11:12

回答

2

如果结果是重要的,但不是视频播放器,你可以为mplayer做到这一点:

mplayer -vo png,outdir=/tmp,prefix=frameNo,z=0 -ao null -frames 1 VIDEO-FILENAME 

VIDEO-FILENAME可以是本地文件或HTTP URL。

要获取OSX命令行的mplayer,只需要安装图形之一,然后找到命令行二进制在这些位置之一:

/Applications/MPlayer OSX.app/Contents/Resources/External_Binaries/mplayer_intel.app/Contents/MacOS/mplayer 

/Applications/MPlayer OS X 2.app/Contents/Resources/mplayer.app/Contents/MacOS/mplayer 
+0

mplayer也可以位于/Applications/MPlayerX.app/Contents/Resources/MPlayerX.mplayer.bundle/Contents/Resources/x86_64/mp​​layer时下 – sleepless 2015-11-17 19:03:57

+0

我认为第一个命令应该读取'mplayer -vo png:outdir =/tmp:prefix = frameN:z = 0 -ao null -frames 1 VIDEO-FILENAME''注意:代替 – Naumann 2017-06-05 16:47:34

3

另一种方法是使用ffmpeg - 这工作对我来说:

ffmpeg -i http://example.com/directory/video.mp4 -ss 0 -vframes 1 -vcodec mjpeg -f image2 keyframe001.jpg 
+0

感谢兄弟,工作完美。与MacOSX它只是两个命令。 brew安装ffmpeg,然后你的魔法命令:)欢呼 – 2013-10-14 12:38:22

1

在Windows中:vlc C:\test.mp4 --rate=1 --video-filter=scene --vout=dummy --aout=dummy --start-time=10 --stop-time=11 --scene-replace --scene-format=jpg --scene-ratio=29.970029 --scene-prefix=snaphot --scene-path=C:\Users\Gi\Desktop\ vlc://quit

它有效。