2

У меня есть старый "стерео" фильм в виде файла mp4.

Звук есть только в левом канале, правый канал молчит.

Я хотел бы использовать ffmpeg для копирования видео потока:

ffmpeg -hide_banner -i video.mp4 -c:v copy ...

и преобразовать аудио в моно, выбрав только левый канал:

-map_channel 0.1.0 -map_channel -1

Но это ничего не изменило :-(

Какова правильная командная строка ffmpeg для этого?

Возможно ли это сделать без перекодирования?

2 ответа2

6

Существует как минимум два способа выбрать левый аудиоканал и вывести его в монофоническом режиме.

Использование -map_channel

Предполагая, что вход содержит только аудио:

ffmpeg -i input -map_channel 0.0.0 output
  • Первое число - это идентификатор входного файла: у вас есть только один вход, поэтому будет 0 . Второе число является спецификатором потока: если аудио является вторым потоком, как это часто бывает в типичном видеофайле, то вместо этого следует использовать 1 . Третье число - это номер канала: в стерео входе первый канал обычно является передним левым, а второй обычно является передним правым.

  • Если вы хотите правильный канал, вместо этого используйте -map_channel 0.0.1 .

  • Если вход содержит видео, то аудио, вероятно, (но не всегда) будет перечислено как второй поток, поэтому вам нужно будет использовать вместо него 0.1.0 .

Использование пан аудио фильтра

ffmpeg -i input -af "pan=mono|c0=FL" output
  • В качестве альтернативы вы можете использовать pan=mono|c0=c0 .
  • Если вам нужен правильный канал, вместо этого используйте pan=mono|c0=FR (или pan=mono|c0=c1).

Также см

0

@LordNeckbeard: нашел причину, по которой в моем результирующем файле был только звук на левом канале, как и мой исходный файл.

Это потому, что я использовал:

-map_channel 0.1.0 -map_channel -1

который заглушил второй аудиоканал, вместо того, чтобы просто использовать:

-map_channel 0.1.0

Спасибо за вашу помощь :)

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