web-dev-qa-db-ja.com

ffmpeg -acodec copyは、すべてのオーディオストリームを新しいコンテナにコピーしません

ここstackexchangeでffmpegヘルプを見つけられたらいいのにと思います。ドキュメントに基づいて動作するはずだと思っていたので、ストレージスペースを節約するために古いビデオをlibx264に再エンコードしていました。以下のスニペットを使用して、すべてのファイルを再エンコードしていました。

ffmpeg -i "$file" -y -acodec copy -vcodec libx264 -scodec copy -threads 12 -x264-params keyint=240:min-keyint=20 -profile:v baseline -level 3.0 "$output"

-acodec copyすべてのオーディオストリームをmapして、すべてを新しいコンテナにコピーできるはずだと思いましたか?しかし、なぜそれらすべてがdual audio videosは単一のオーディオビデオに再エンコードされており、デフォルト以外のオーディオストリームは省略/削除されました。

すべてのコーデックのオーディオ、字幕をコピーする方法はありますが、libx264に再エンコードするのはvcodecだけですか?

ありがとう!

2
arvil

https://trac.ffmpeg.org/wiki/How%20to%20use%20-map%20option#Example4

-map 0はすべてのストリームをマップし、それらをそのまま保持してから、どのコーデックを再エンコードするかを指定します。

私はもっ​​と読むべきです。

3
arvil