18

Я хотел бы знать, возможно ли объединить стереозвук в монофонический файл аудиофайла GSM6.10 с помощью FFMPEG. Если это так, пожалуйста, предоставьте команду для достижения этой цели.
В противном случае, возможно ли преобразовать GSM6.10 в WAV PCM с помощью FFMPEG? Затем я мог бы объединить каналы в WAV PCM.

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

3 ответа3

30

Способ "микширования" из стерео в моно в любом поддерживаемом файле в ffmpeg выглядит примерно так:

ffmpeg -i file.ext -ac 1 file_mono.ext

Бит «-ac 1» указывает ffmpeg выводить только 1 аудиоканал, т.е. моно. По умолчанию эта операция сохранит ваш формат файла, но вернет битрейт к значению ffmpeg по умолчанию, равному 64 КБ. Если вы хотите более высокий битрейт, вы можете сделать:

ffmpeg -i file.ext -ac 1 -ab 192k file_mono.ext

... заменяя 192k на ваш предпочтительный битрейт.

Обратите внимание, что ваша установка ffmpeg должна поддерживать ваш конкретный кодек GSM, чтобы это работало должным образом. Я знаю, что некоторые аудио в кодировке GSM поддерживаются в ffmpeg через libgsm, но я никогда не имел дело с файлами GSM. Однако я успешно преобразовал другие типы файлов (MP3) в моно без помех.

5

Ответ выше работает в том случае, если вы все еще хотите конвертировать между форматами, но для длинных файлов это может занять много времени. Или, может быть, вы не хотите снова конвертировать, что ухудшает качество, и поэтому вы можете просто захотеть скопировать поток. Использование -codec:a и -ac 1 одновременно не работает, но в соответствии с документацией к пан-фильтру ffmpeg, если соблюдены определенные условия (например, вы не настраиваете уровни каналов или не смешиваете два канала в один), он распознает этот случай и сообщит: "Обнаружено чистое сопоставление каналов" и выполнит потоковое копирование, что намного быстрее.

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

ffmpeg -i infile.ext -codec:v copy -af pan="mono: c0=FL" outfile.ext
0

Я знаю, что это возможно с sox .... я использую sox для манипулирования каналами, kdenlive и audacity для мягкого редактирования, и ffmpeg для ремиксов. просто давая вам знать, что хорошо сработало для меня в прошлом.

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