rawvideo からのファイルの連結

rawvideo からのファイルの連結

Adobe After Effects を使用して、ビデオの基本的な約 10 秒のアウトロを作成し、ロスレス AVI 形式 ( ) にエクスポートしました。私が知る限り、After Effects でビデオに空のオーディオ ストリームを追加する方法はなく、FFmpeg の連結デマルチプレクサでは各ビデオ ストリームにオーディオ ストリームが必要なので、以下を実行して無音部分を追加し、 /にrawvideo再エンコードしました。rawvideoh264opus

ffmpeg -i "YouTube Outro.avi" -f lavfi -i aevalsrc=0 -map 0 -map 1 -shortest -c:v libx264 -c:a libopus "Outro.mkv"

このファイルを元のビデオに連結しようとすると問題が発生します。ファイルには次の内容が含まれています。

file Original.mkv
file 'YouTube Outro.mkv'

これらの入力に関する情報:

Input #0, matroska,webm, from 'Original.mkv':
  Metadata:
    ENCODER         : Lavf58.65.100
  Duration: 00:42:45.54, start: -0.007000, bitrate: 2521 kb/s
    Stream #0:0(eng): Video: h264 (High), yuv420p(tv, bt709/unknown/unknown, progressive), 1920x1080 [SAR
 1:1 DAR 16:9], 25 fps, 25 tbr, 1k tbn, 50 tbc (default)
    Metadata:
      ENCODER         : Lavc58.115.102 libx264
      DURATION        : 00:42:45.541000000
    Stream #0:1: Audio: opus, 48000 Hz, stereo, fltp (default)
    Metadata:
      HANDLER_NAME    : SoundHandler
      VENDOR_ID       : [0][0][0][0]
      ENCODER         : Lavc58.115.102 libopus
      DURATION        : 00:42:45.368000000
Input #1, matroska,webm, from 'YouTube Outro.mkv':
  Metadata:
    DATE            : 2021-03-10T23:13:19.647059
    ENCODER         : Lavf58.65.100
  Duration: 00:00:08.97, start: -0.007000, bitrate: 74 kb/s
    Stream #1:0: Video: h264 (High 4:4:4 Predictive), yuv444p(tv, progressive), 1920x1080, 29.97 fps, 29.
97 tbr, 1k tbn, 59.94 tbc (default)
    Metadata:
      ENCODER         : Lavc58.115.102 libx264
      DURATION        : 00:00:08.949000000
    Stream #1:1: Audio: opus, 48000 Hz, mono, fltp (default)
    Metadata:
      ENCODER         : Lavc58.115.102 libopus
      DURATION        : 00:00:08.968000000
At least one output file must be specified

...そして、concatデマルチプレクサを使用してそれらを連結します。

ffmpeg -f concat -safe 0 -i list.txt -c copy Final.mkv

結果のファイルには元のビデオ全体が含まれ、タイムスタンプには追加された 10 秒が反映されますが、そのタイムスタンプに達すると何も表示されません。実際、元のビデオが終了する前にビデオが数フレームフリーズし、ビデオの最後までそのフレームで停止したままになります。

h264これらの/opusファイルを連結するのが非常に難しいのは、何が間違っているのでしょうか?

答え1

属性は同じである必要があります適切な連結のために連結デマルチプレクサピクセル形式、プロファイル、チャンネルレイアウトは入力ごとに異なります。これらを一致させますOriginal.mkv:

ffmpeg -i "YouTube Outro.avi" -f lavfi -i anullsrc=cl=stereo:r=48000 -map 0 -map 1 -c:v libx264 -crf 18 -vf format=yuv420p -c:a libopus -shortest "Outro.mkv"

関連情報