2016-12-10 132 views
0

嘿傢伙我一直在努力使這項工作一段時間,我似乎無法找到如何使音頻/視頻同步後串聯,我已經搜索並測試了一些解決方案,但無法使其工作。FFMPEG - C# - 連接後某些視頻的音頻和視頻不同步

以下是我現在正在做的事情,一切正常,但我必須做錯事。

所以首先,我分裂成視頻,我想

System.Diagnostics.Process.Start(ffmpegPath, "-i " + 
video.Path + " -ss " + StartTime + " -t " + Duration + " " + video.Output); 

「切割/分裂」我希望像我想要的,我試過了串聯在一起的視頻視頻後,視頻(使用-safe 0使用絕對路徑,否則它不工作):

System.Diagnostics.Process.Start(ffmpegPath, 
"-f concat -safe 0 -i " + txtFile + " C:\\Downloads\\Build\\" + rdn.Next(0,1000) + ".mp4"); 

在那之後,我注意到音頻/視頻是一段時間不同步的,所以我搜查,發現this

所以我決定墊的所有視頻分裂他們之後:

System.Diagnostics.Process.Start(ffmpegPath, 
"-i " + video.Output + " -af apad -c:v libx264 -shortest -avoid_negative_ts make_zero -fflags +genpts -report " + padding); 

,然後再建造它,但它結束了具有相同的音頻不同步。

這是我第一次使用mp4和FFMPEG工作,我確信我錯過了一些東西。

+0

嘗試http://video.stackexchange.com – apocalypse

回答

0

我感覺不好,因爲我似乎已經找到了答案(不是100%肯定,將不得不做更多的測試,但我測試了幾次,它似乎工作到目前爲止)發現一個隱藏得很好的帖子......我甚至不知道我是如何找到它的,但我做到了,我很高興我做到了。

他的回答是here

我擔心相同的幀大小,音頻和視頻編解碼器Concat的 正常,但我忘了幀速率。

第一個樣本視頻(在我的問題中提到)幀速率爲12, ,而第二個視頻幀速率爲25;這就是使同步 的問題。現在

,我已經設置幀率25這兩個視頻(-R 25)和它的作品 像魅力:)

下面

是完整的轉換代碼:

ffmpeg.exe -i「 f:\ 1.avi「-r 25 -af apad -vf scale = 1280:720 -crf 15.0 -vcodec libx264 -acodec aac -ar 48000 -b:192k -coder 1 -rc_lookahead 60 -threads 0 -shortest - avoid_negative_ts make_zero -fflags + genpts 01.mp4希望它可以幫助像我這樣的人在不久的將來。

問候