video-double-audio.avi
我有一个包含 1 个视频流和多个音频流的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
# 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 将只选择每种类型的一个流。请参阅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