2012-09-11 56 views
1

我做的ffmpeg的一個簡單的測試。我希望將其用於我正在開發的網站的縮略圖生成/視頻抓取。我目前使用VLC搶一幀,然後生成一個縮略圖,但它是相當緩慢和有點麻煩。FFmpeg的生成靜態視頻

問題是,我使用的視頻(從我自己的電腦)是由安全攝像頭軟件生成的,它有一個奇怪的視頻格式。當我在VLC中打開它(.bvr)時,它播放速度非常快。 10秒鐘的視頻在大約2.5秒內流逝。此外,使用一個簡單的轉換有關ffmpeg「的ffmpeg -i test.bvr output.avi」產生一個適當的長度的視頻(10秒),但視頻幀從不改變。 (這是一個靜止圖像)

測試文件,並測試輸出文件:

我認爲這主要是由事實IP攝像機只能產生引起5-7 fps,但安全軟件不知道更好,並寫它,如果它應該是24/30 fps。

FFmpeg的報告:[M4V @ 00000000002cec60]從 比特率估計持續時間,這可能是不準確的輸入#0,M4V,從 'test.bvr': 持續時間:N/A,啓動:0.000000,比特率: N/A Stream#0:0:視頻:mpeg4 (Simple Profile),yuv420p,640x480 [SAR 1:1 DAR 4:3],5 tbr,1200k tbn,5 tbc輸出#0,avi,輸出.AVI':元數據:ISFT
:Lavf54.25.104流#0:0:視頻:MPEG4(FMP4/0x34504D46) YUV420P,640×480 [SAR 1:1 DAR 4:3]中,q = 2-31,200 kb/s,5 tbn,5 tbc 流映射:

Stream#0:0 - >#0:0(mpeg4 - > mpeg4)按[q]停止,[?]尋求幫助 frame = 50 fps = 0.0 q = 2.0 Lsize = 244kB time = 00:00:10.00比特率= 199.7kbits/S視頻:237KB音頻:0KB字幕:0全局頭部:0KB路復開銷2.877066%**

任何幫助表示讚賞!

+0

也許是無法確定的幀率,但知道如何與流進行解碼。你有沒有嘗試強制幀速率爲6 fps? – BlueVoodoo

+0

問題是,儘管在這種情況下它是我自己的視頻,但它通常是客戶上傳他們自己的東西。我不知道幀率*應該是什麼。 –

回答

1

不是一個真正的編程問題。但無論如何,這是我的投入。製作的內容是mpeg4基本流。所以vlc無法以正確的幀率播放。

其次,您的視頻是一個靜態幀,只有一個光照變化,並且時間代碼從21s到32s在右下方增加。那麼你是說你的輸出視頻不是在右下角改變時間碼?

編輯:vlc不能爲我播放它。然而ffplay能夠在我結束細玩,你也可以使用的ffmpeg搶不管你想要的縮略圖。

編輯:這適用於VLC還有:

的ffmpeg -i input.dvr -vcodec MPEG4 output.avi

這起到VLC爲好。有一件事是你應該給目標比特率和分辨率。

+0

當我打開'output.avi'文件時,計時器保持不變,視頻不會改變。我有最新版本的VLC。這一點非常重要的原因是,我必須通過編程方式在中途抓取一個框架來生成縮略圖,但用戶的視頻可能會遇到各種類似的問題。在嘗試深入探索更深層次的東西(抓取整個幀數等)之前,我正在問這些問題 –

+0

是的,vlc無法播放它。然而ffplay能夠在我結束細玩,你也可以使用的ffmpeg搶不管你想要的縮略圖。 – av501

+0

@JasonMuchow,你只需要avi嗎?如果用mp4替換avi,它在vlc中也可以正常工作。我可以檢查明天有什麼問題 – av501