ffmpegムービーオーバーレイの2番目の入力ファイルからオーディオを選択する


0

私はffmpeg wikiのこの例から作業しています

ffmpeg
    -i 1.avi -i 2.avi -i 3.avi -i 4.avi
    -filter_complex "
        nullsrc=size=640x480 [base];
        [0:v] setpts=PTS-STARTPTS, scale=320x240 [upperleft];
        [1:v] setpts=PTS-STARTPTS, scale=320x240 [upperright];
        [2:v] setpts=PTS-STARTPTS, scale=320x240 [lowerleft];
        [3:v] setpts=PTS-STARTPTS, scale=320x240 [lowerright];
        [base][upperleft] overlay=shortest=1 [tmp1];
        [tmp1][upperright] overlay=shortest=1:x=320 [tmp2];
        [tmp2][lowerleft] overlay=shortest=1:y=240 [tmp3];
        [tmp3][lowerright] overlay=shortest=1:x=320:y=240
    "
    -c:v libx264 output.mkv

問題は、常に最初の映画から音声を取得することです。たとえば、2番目の映画からオーディオを取得するにはどうすればよいですか?

内にChannelmapを追加するのは良い-filter_complex方法のように思えますが、ムービーのトラックを参照する方法がわかりません。

私はこれのバリエーションを試しました:

channelmap=map=0.0.0=1.0.0|0.0.1=1.0.1

ただし、構文エラーが発生します。

回答:


1

-mapオプションを使用できます。それ以外の場合は、デフォルトのストリーム選択動作に制限されるため、必要なものを選択できません。

これにより、2番目の入力(2.avi)からオーディオがマッピングされます。

-map 1:a
  • ffmpeg0からカウントを開始するため、最初の入力IDは0、2番目は1、3番目は2などです。

  • 2番目の入力に複数のオーディオストリームがある場合、これらすべてがマッピングされます。たとえば、2番目の入力から4番目のオーディオストリームのみが必要な場合は、を使用できます-map 1:a:3

フィルタリングあり

ffmpegデフォルトに依存するのではなく、あいまいさを避けるためにどのストリームを使用するかを明示的に指示する傾向があります。したがって、コマンドは次の例のようになります。

ffmpeg
    -i 1.avi -i 2.avi -i 3.avi -i 4.avi
    -filter_complex "
        nullsrc=size=640x480 [base];
        [0:v] setpts=PTS-STARTPTS, scale=320x240 [upperleft];
        [1:v] setpts=PTS-STARTPTS, scale=320x240 [upperright];
        [2:v] setpts=PTS-STARTPTS, scale=320x240 [lowerleft];
        [3:v] setpts=PTS-STARTPTS, scale=320x240 [lowerright];
        [base][upperleft] overlay=shortest=1 [tmp1];
        [tmp1][upperright] overlay=shortest=1:x=320 [tmp2];
        [tmp2][lowerleft] overlay=shortest=1:y=240 [tmp3];
        [tmp3][lowerright] overlay=shortest=1:x=320:y=240[v]
    "
    -map "[v]" -map 1:a -c:v libx264 -shortest output.mkv
  • 2つのインスタンスに注目[v]し、1:aこれらは第二の入力からフィルターグラフから、ビデオ、およびオーディオをマッピングします(2.avi)。

  • -shortest最短の入力が終了したときに([v]または1:a)出力が終了するように追加しました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.