Вопрос: Как выбрать левый аудиоканал с помощью ffmpeg и downmix для моно?


У меня есть старый «стерео» фильм как файл mp4.

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

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

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

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

-map_channel 0.1.0 -map_channel -1

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

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

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


2
2018-04-08 20:33


Источник




Ответы:


Есть как минимум два метода для выбора левого аудиоканала и вывода как моно.

С помощью -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).

Также см


6
2018-04-09 00:16



Привет, вы сказали: «Предполагая, что вход содержит только аудио:». Проблема в том, что мой файл содержит как видео, так и аудио :) - SebMa
@SebMa Это одна из причин, по которой вам нужно включить полный вывод консоли из ваших команд, чтобы ответы могли быть более точными и менее основаны на предположениях. Я отредактировал ответ с упоминанием видео. - LordNeckbeard
Извините, что я забыл дать его, но ffmpeg не дал никакой ошибки. В моем вопросе вы можете заметить, что я использовал -map_channel 0.1.0 но этого недостаточно, чтобы оба канала указывали на левый. - SebMa
@SebMa Использование -map_channel 0.1.0 работает для меня, чтобы сделать монофонический аудиофайл с левого канала стерео входа (с видео в качестве первого потока). - LordNeckbeard
Я думаю, что он работает только для аудиофайлов. Для видео вы должны добавить -ac 1 - SebMa


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

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

-map_channel 0.1.0 -map_channel -1

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

-map_channel 0.1.0

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


0
2018-05-03 11:44