1つのビデオストリームと複数のオーディオストリームを含むaviファイルvideo-double-audio.avi
があります
# ffprobe video-double-audio.avi
...
[avi @ 0x559498d59080] non-interleaved AVI
Input #0, avi, from 'video-double-audio.avi':
Metadata:
encoder : Lavf57.83.100
Duration: 00:00:19.99, start: 0.000000, bitrate: 11151 kb/s
Stream #0:0: Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv, bt709, progressive), 1920x1080, 10149 kb/s, 100 fps, 50 tbr, 100 tbn, 100 tbc
Stream #0:1: Audio: aac (LC) ([255][0][0][0] / 0x00FF), 48000 Hz, stereo, fltp, 317 kb/s
Stream #0:2: Audio: aac (LC) ([255][0][0][0] / 0x00FF), 48000 Hz, stereo, fltp, 317 kb/s
Stream #0:3: Audio: aac (LC) ([255][0][0][0] / 0x00FF), 48000 Hz, stereo, fltp, 317 kb/s
そして、dynaudnorm
オーディオフィルターを適用したいので、次のコマンドを実行します。
ffmpeg -i video-double-audio.avi -af 'dynaudnorm=n=0:c=1' -c:v copy video-out.avi
ただし、現在、video-out.avi
に残っているオーディオストリームは1つだけです。
# ffprobe video-out.avi
[avi @ 0x556576b6d080] non-interleaved AVI
Input #0, avi, from 'video-out.avi':
Metadata:
encoder : Lavf57.83.100
Duration: 00:00:20.04, start: 0.000000, bitrate: 10278 kb/s
Stream #0:0: Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv, bt709, progressive), 1920x1080, 10134 kb/s, 100 fps, 50 tbr, 100 tbn, 100 tbc
Stream #0:1: Audio: mp3 (U[0][0][0] / 0x0055), 48000 Hz, stereo, s16p, 128 kb/s
しかし、現在はオーディオストリームが1つしか残っておらず、他のストリームは削除されているようです。
なぜこれが起こるのですか?
そして、どうすればこれを防ぐことができますか?
前もって感謝します!
-map
がない場合、ffmpegは各タイプのストリームを1つだけ選択します。 https://ffmpeg.org/ffmpeg.html#toc-Stream-selection を参照してください
したがって、マッピングを追加します。
ffmpeg -i video-double-audio.avi -map 0 -af 'dynaudnorm=n=0:c=1' -c:v copy video-out.avi