2013-11-27 33 views

回答

27

流拷貝

實施例至stream copy,或再多路複用,從video.mp4(輸入0)和來自audio.mp3音頻視頻(輸入1):

ffmpeg -i video.mp4 -i audio.mp3 -map 0:v -map 1:a -codec copy -shortest out.mp4 

這將避免編碼和將因此速度很快,不會影響質量。

重新編碼

你可以告訴ffmpeg的,如果你確實需要重新編碼的大小,或者如果你需要不同的格式比投入使用什麼編碼器。例如重新編碼爲H.264視頻和AAC音頻:

ffmpeg -i video.mp4 -i audio.mp3 -map 0:v -map 1:a -codec:v libx264 \ 
-preset medium -crf 23 -codec:a aac -b:a 192k -shortest output.mp4 

注:

-map選項允許你指定你想要的流,例如,-map 0:v指的是視頻流(S )的第一個輸入。如果你不告訴ffmpeg你想要什麼流,那麼它將使用默認的stream selection,它將爲每個流類型選擇一個流。默認值通常很好,但建議明確,以便獲得預期的結果。

-shortest選項指示ffmpeg在最短持續時間輸入結束時結束輸出文件。

總是推薦使用最近的ffmpeg版本。最簡單的方法是download a recent ffmpeg build,但您也可以按照guide to compile ffmpeg

另見:

+0

感謝您的回答,我都試過您的建議,並返回以下錯誤信息: _Unrecognized選項「編解碼器' 無法爲選項'codec'設置值'複製'_ 我試過'vcodec'選項,它返回: _Application提供了無效的,非單調遞增的dts到流中的muxer 0:50> = 50_ – Jonathan

+0

@Jonathan你需要顯示你的實際ffmpeg命令和完整的ffmpeg控制檯輸出。 – LordNeckbeard

+0

對於剛剛幫助我使用avconv而不是ffmpeg的東西的快速註釋:因爲avconv實際上是ffmpeg的一個分支,將上面的第一個確切命令行「Stream Copy」直接替換爲「avconv」,只是將其替換爲「ffmpeg」對我來說工作非常好。 HTH! –

相關問題