2012-04-05 24 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

它有效。