2012-05-14 49 views
3

我正在尋找一種方法來記錄視頻UDP流使用ffmpeg,但在10mn塊。 我目前使用以下獲取10mn的視頻(使用h264轉碼)。如何用FFMPEG分塊記錄UDP流?

「ffmpeg -i udp://239.0.77.15:5000 -map 0:0 -map 0:1 -s 640x360 -vcodec libx264 -g 100 -vb 500000 -r 25 -strict experimental -vf yadif -acodec aac -ab 96000 -ac 2 -t 600 -y /media/test.m4「

我的問題是,使用命令行ffmpeg需要時間與每次丟失2秒視頻的udp流重新同步。這是正常的嗎?

任何想法,如果有一種方法在命令行中執行它,或者我應該嘗試使用ffmpeg API?

在此先感謝

回答

5

好的發現它。

最近的ffmpeg添加分割,這裏是語法:

-f segment:告訴ffmpeg的使用分割

-segment_time:塊大小在第二

您可以使用自動增量文件名以類似%03d(000,001,002,003 ...)。

這是我行轉碼UDP MPEGTS流,到H264 + AAC,並將其保存到文件塊(60秒):

的ffmpeg -i UDP://239.0.77.15:5000 -Map 0:0 -map 0:1 -s 640x360 -vcodec libx264 -g 60 -vb 500000 -strict experimental -vf yadif -acodec aac -ab 96000 -ac 2 -y -f segment -segment_time 60「xxx-%03d.ts 「

+1

我試圖用你的解決方案,現在我有: 的ffmpeg -i RTSP://192.168.88.11/ -vcodec副本複印件-acodec -f MP4 -segment_time 60 -y「測試 - %03D。 mp4「 這工作正常,但輸出不分段。如果我用-f段替換-f mp4,則得到: 輸出文件#0不包含任何流 任何想法? –

1

這是一個更好的辦法:

的ffmpeg -re -i UDP ://10.1.1.238:1234?fifo_size = 1000000 -vcodec libx264 -vb 500000 -g 60 -vprofile main -acodec aac -ab 128000 -ar 48000 -ac 2 -vbsf h264_mp4toannexb -b 1000k -minrate 1000k -maxrate 1000k -strict實驗-f stream_segment -segment_format MPEGTS -segment_time 5 -segment_atclocktime 1 -reset_timestamps 1 -strftime 1 d:/%H%M%S.mp4

通過該代碼的ffmpeg使得使用串聯的當前系統時間的輸出文件。