1

У меня есть avi-файл video-double-audio.avi с 1 видеопотоком и несколькими аудиопотоками

# 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 ответ1

0

При отсутствии -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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .