GNU/Linux >> Linux の 問題 >  >> Linux

FFmpeg がすべてのオーディオ ストリームをコピーしない

FFmpeg には、すべてのストリームを出力にマップするオプションがあります。オプション -map 0 を使用する必要があります すべてのストリームを入力から出力にマップします。

全体的には次のようになります:

ffmpeg -i in.mp4 -c copy -map 0 out.mp4

詳細については、ストリームの選択に関するドキュメントと -map を参照してください。 オプション。


どうやらこれはよくある質問なので、他の人が見ることができるように、私の解決策を回答として投稿します (以前はコメントの返信でした)。

このチケットから正しい構文を見つけることができました。正しい構文は次のとおりです:

ffmpeg -i in.mp4 -vcodec copy -c:a copy -map 0:0 -map 0:1 -map 0:2 out.mp4

これにより、3 つのストリームすべてがコピーされます。


OK、ffmpeg をかなり深く読みました マンページを見て、役に立つはずのこれを見つけました:

<ブロック引用>

現在、各出力ストリームには、単一の入力ストリームからのチャネルのみを含めることができることに注意してください。たとえば、「-map_channel」を使用して、異なるストリーム (同じまたは異なるファイルから) に含まれる複数の入力オーディオ チャネルを選択し、それらを単一の出力ストリームにマージすることはできません。したがって、たとえば、2 つの別々のモノラル ストリームを 1 つのステレオ ストリームにすることは現在のところ不可能です。ただし、ステレオ ストリームを 2 つのシングル チャネル モノラル ストリームに分割することは可能です。

この機能が必要な場合、考えられる回避策は amergefilter を使用することです。たとえば、2 つのモノラル オーディオ ストリームを含むメディア (ここでは input.mkv) を 1 つのステレオ チャネル オーディオ ストリームにマージする (そしてビデオ ストリームを保持する) 必要がある場合は、次のコマンドを使用できます。

ffmpeg -i input.mkv -filter_complex "[0:1] [0:2] amerge" -c:a pcm_s16le -c:v copy output.mkv

man ffmpeg-filters の man ページの説明を読み、試してみることをお勧めします。 チャンネルの名前付けと予想される出力について、どのレベルの複雑さを感じているかを理解するために。

[編集:Mulvya が指摘したように、これは質問への回答ですが、元の投稿者の質問とはまったく異なります。]


Linux
  1. テキスト文字列を含まないすべてのファイルを検索するにはどうすればよいですか?

  2. Linux – Ffmpegを使用してローカルビデオをWebカメラにストリーミングする方法は?

  3. CPUは無料ですが、BashスクリプトはすべてのCPUリソースを利用していませんか?

  1. SMPlayer –すべてのフォーマットに対応した無料のメディアプレーヤー

  2. soxi:コマンドが見つかりません

  3. sox:コマンドが見つかりません

  1. Linuxでffmpegでオーディオを録音するには?

  2. Linux ベースのシステムで MKV の最初と 2 番目のオーディオ ストリームを交換するにはどうすればよいですか?

  3. 3番目のストリームを取り除くffmpegが機能しない