2016-06-16 109 views
1

我需要一個音頻和視頻軌道持續時間始終相同的視頻文件。即使源音頻沒有音軌,該文件也必須包含音軌。如何在源無音頻追蹤時告訴ffmpeg添加靜音音軌。此外,如果音頻源的音頻軌道的持續時間不同於視頻,我需要ffmpeg來添加無聲音頻,以使輸出的音頻和視頻的持續時間相同。這是可能的與ffmpeg一行嗎?ffmpeg - 如果信號源沒有音頻或音頻短於源視頻,則輸出無聲音頻軌道

回答

4

如果源文件中沒有音頻**,下面的命令將添加與視頻具有相同長度*的靜音軌道。

ffmpeg -i video -f lavfi -i anullsrc=cl=1 -shortest -c:v libx264 -c:a aac output.mov 

*由於視頻幀持續時間和音頻幀持續時間通常不相同,因此長度將不完全相同。

**當未指定map時,ffmpeg將從通道數最高的輸入中選擇一個音頻流。如果有兩個或更多個相同的流。它選擇具有最低索引的流。 anullsrc這裏有一個通道,因此除非源代碼沒有音頻,否則它將被傳遞。

+0

好的,但我需要傳遞源音頻,如果它存在添加靜音軌道,如果它不。 – TK3

+0

請參閱編輯的命令。 – Mulvya

+0

你能解釋一下-f lavfi嗎?無論輸入格式如何,我都需要在.mov容器中輸出h264。 – TK3