最適合串連的影片格式是什麼

最適合串連的影片格式是什麼

我已經在 .mp4 上苦苦掙扎了大約 2 天,試圖將一系列大約 20 個檔案連接成一個檔案。文件之間的任何差異都是一場噩夢。有些檔案具有不同的 fps,其他檔案具有不同的比率。

我想知道 mp4 是否是我應該使用的格式,或者是否有更好、易於使用的串聯格式。時間不是問題,我只需要一種在大多數情況下可以連接的相對高品質的格式。

如果這不存在,任何關於如何處理 mp4 文件的巨大變化屬性的建議(我不完全確定除了可能導致問題的 fps 和視頻之間的比率之外還有什麼不同)將會很棒。

我正在使用 ffmpeg 嘗試連接檔案。首先,我嘗試使用解復用器,然後使用連接過濾器,但是我發現連接過濾器非常令人畏懼,並且完全不知道如何使用它。

每個視頻都有音頻,有些有靜止圖像,有些有移動圖像。

答案1

多媒體檔案很複雜,因此串聯有幾個要求:

  • 要連接的所有段必須具有相同數量和類型的流。
  • 所有流必須具有相同的參數。

由於每個輸入的任意參數都可能有所不同,因此我建議使用 concat 過濾器。您必須使用過濾器使每個輸入符合一組通用參數。輸入格式並不重要,因為無論如何你都會重新編碼所有內容。

基本的通用範例,其中main.mp4有視訊和音訊以及end.mp4有視訊但沒有音訊。假設所有其他參數都不同。這裡使用的濾鏡有:anullsrc、scale、pad、setsar、fps、format、aformat 和 concat。

ffmpeg -i main.mp4 -i end.mp4 -f lavfi -t 0.1 -i anullsrc=channel_layout=stereo:sample_rate=44100 -filter_complex "[0:v]scale=1280:720:force_original_aspect_ratio=decrease,pad=1280:720:(ow-iw)/2:(oh-ih)/2,setsar=1,fps=25,format=yuv420p[v0];[1:v]scale=1280:720:force_original_aspect_ratio=decrease,pad=1280:720:(ow-iw)/2:(oh-ih)/2,setsar=1,fps=25,format=yuv420p[v1];[0:a]aformat=channel_layouts=stereo:sample_rates=44100[a0];[v0][a0][v1][2:a]concat=n=2:v=1:a=1[v][a]" -map "[v]" -map "[a]" -c:v libx264 -c:a aac -movflags +faststart output.mp4

有多種方法可以執行此操作,您可能需要根據您的輸入或滿足您的要求進行調整。

相關內容