2012-08-26 61 views
0

我有一個源視頻(mpeg2video),我將其轉碼爲x264。源包含從電視錄製的2個不同節目。一個是4:3 AR,另一個是16:9 AR。當我通過VLC播放源文件時,播放器會正確更改大小以顯示正確的AR中的視頻。到現在爲止還挺好。用FFMPEG更改分辨率的中間視頻

當我轉碼轉換過程時,auto從前幾幀檢測到AR,然後使用此AR轉碼整個視頻。如果16:9部分首先出現,則整個轉換將在16:9完成,而4:3部分看起來會沿水平方向延伸。如果4:3部分位於源文件的開頭,那麼整個轉碼將以4:3完成,而16:9部分看起來會水平壓縮。

沒有黑條永遠不可見。

這裏是我的命令:

nice -n 17 ffmpeg -i source.mpg -acodec libfaac -ar 48000 -ab 192k -async 1 -copyts -vcodec libx264 -b 1250k -threads 2 -level 31 -map 0:0 -map 0:1 -map 0:2 -scodec copy -deinterlace output.mkv 

我不完全明白髮生了什麼事情。我如何在輸入視頻中的輸出文件中獲得相同的「AR」中間視頻更改?

回答

0

我不認爲ffmpeg被設計成可以做到這一點。你將不得不使用libav編寫自己的應用程序。更簡單的方法是創建兩個視頻組合塊。

編輯: 處理這個問題的最好方法是如果你可以自己檢測到AR的變化並單獨轉換這兩個段並加入它們。

EDIT2: 使用ffmpeg本身來組合視頻,解複用任何你想要的東西,然後再複用它。它應該工作正常。你不需要使用avidemux。

+0

哦不。我希望解決方案會更直接。具有諷刺意味的是,我實際上想先分割文件並對其進行轉碼,但是在處理源文件時,avidemux絕對拒絕保持音頻同步,即使所有其他播放器都沒有問題。我一直在尋找其他的開源替代品,沒有運氣直接複製(而不是轉碼)。 – kingrolo

+0

您應該在ffmpeg用戶列表上詢問一次以確認以防萬一 – av501

+0

請參閱我的編輯。你可以通過做兩個獨立的轉碼來解決這個問題,然後把它們混合在一起。 – av501