web-dev-qa-db-ja.com

ffmpeg:新しいオーディオトラックを既存のファイルに追加する

5.1 DTSトラックのステレオミックスダウンを手動で作成しました。古いオーディオトラックを削除せずに、新しいオーディオトラックを元のムービーファイルに追加したいと思います。

私の問題は、トラックの正しいマッピング(ファイルにはすでに2つのオーディオトラックがあり、サブタイルの数もカウントされているように見える)を手に入れることに失敗したため、「ストリームマップの数出力ストリームの数と一致する必要があります」(メモリから引用)、またはストリーム/マップの概念全体が間違っていることさえあります。

私がやろうとしていることについて何か良い説明はありますか?私はそのトピックについての全文を読みさえしましたが、ffmpeg.orgのドキュメントはこの場合はそれほど役に立ちません。

具体的には、ffmpegにファイルの実際のストリームマッピングを表示させる方法があるかどうか、またステレオトラックをファイルにマージするにはどうすればよいですか?

私がこれまでに見つけたものはすべて、オーディオトラックを置き換えるサイレントビデオを扱っていますが、これは私がやりたいことではありません。

5
Aarkon
ffmpeg -i input.mkv -i audio.dts -map 0 -map 1 -c copy output.mkv

デフォルトの stream selection 動作は、ストリームタイプごとに1つのストリームのみを選択するため、この場合は -map を使用して、必要なストリームを指定する必要があります。

入力ファイルインデックスは0からカウントを開始するため、-map 0を使用すると、最初の入力(input.mkv)からすべてのストリームが選択され、-map 1は2番目の入力(audio.dts)からすべてのストリームが選択されます。 ] _)。

その結果、output.mkvには両方の入力からのすべてのストリームが含まれます。 -c copyを使用すると ストリームコピー ストリームになるため、追加の再エンコードなしで単純に再多重化されます。

11
llogan