2016-05-22 109 views
0

我遇到了一個非常老的電影,我試圖恢復。我有兩部同一部電影的來源。同步兩個不同來源的視頻/音頻

源1(從ffmeg -i):

Duration: 02:43:35.77, start: 0.000000, bitrate: 1342 kb/s 
Stream #0:0: Video: mpeg4 (Simple Profile) (DIVX/0x58564944), yuv420p, 720x480 [SAR 1:1 DAR 3:2], 1200 kb/s, 29.97 fps, 29.97 tbr, 29.97 tbn, 30k tbc 
Stream #0:1: Audio: mp3 (U[0][0][0]/0x0055), 48000 Hz, stereo, s16p, 128 kb/s 

源2(從ffmeg -i):

Duration: 02:46:11.04, start: 0.000000, bitrate: 1625 kb/s 
Stream #0:0(und): Video: h264 (High) (avc1/0x31637661), yuv420p, 1200x720 [SAR 1:1 DAR 5:3], 1431 kb/s, 30 fps, 30 tbr, 30 tbn, 60 tbc (default) 
Metadata: 
    handler_name : VideoHandler 
Stream #0:1(und): Audio: aac (LC) (mp4a/0x6134706D), 44100 Hz, stereo, fltp, 191 kb/s (default) 
Metadata: 
    creation_time : 2014-06-22 12:06:22 
    handler_name : IsoMedia File Produced by Google, 5-11-2011 

我想什麼是採取從音頻來源1和來自源2的視頻,並與他們一起創建一個新文件。

我已經嘗試將源1更改爲30 fps,然後在源2的視頻中使用其音頻,但音頻「fps」確實在某段時間後同步。也許我的做法是錯誤的。

從源文件1中同步播放源2視頻的最佳方式是什麼?

+0

您需要延長音頻以適應持續時間的變化。通常,您只需將音頻單獨留下並調整圖片以匹配,但在此您調整圖片,以便願意犧牲聲音的「正常」(它會稍微慢一些/較快但可能不明顯)。因爲它是行業標準(NTSC),所以** 29.97 **有什麼問題? –

+0

PS:對於使用FFmpeg進行伸展,您希望** [Atempo](https://ffmpeg.org/ffmpeg-filters.html#atempo)**或嘗試** [Rubberband](https://ffmpeg.org/ ffmpeg-filters.html#rubberband)**取決於什麼聲音效果適合你。我會先嚐試Atempo,因爲你的FPS變化很小。這是提取音頻到MP3然後像'ffmpeg -i src1audio.mp3 -filter:atempo =「1.0333」src1new.mp3'。 'atempo'值沒有經過測試,但是要麼是'0.99xxxx'要麼是'1.0xxxx',因爲1是正常速度 –

+0

感謝小夥子們......對於延遲感到抱歉。我已經被工作壓垮了,所以沒有時間去嘗試這些方法。 我沒有問題,下降到29.97 fps,因爲你說這是一個很小的差異。似乎是最適合的方式。 – Indy

回答

0

基本方法是

ffmpeg -i src2 -itsoffset 20 -i src1 -c copy -map 0:v -map 1:a new.mp4 

這需要從視頻源2,並用音頻多路複用器從源1再編碼沒有發生。音頻被延遲了20秒,即在來自源2的視頻開始之後,在20秒處發生來自源1的音頻的開始。您可以用這種方式控制同步。

您可以運行一個簡短命令,首先嚐試使用同步值。

ffmpeg -i src2 -itsoffset 20 -i src1 -c copy -map 0:v -map 1:a -t 300 test.mp4 
+0

感謝提示Mulvya。這會擴展scr2音頻以匹配src1嗎? – Indy

+0

不,只是延遲它。 – Mulvya