(Без потерь) преобразование стерео mp3 с одним беззвучным каналом в моно

У меня есть несколько mp3-файлов, которые являются стерео, но один из каналов молчит, довольно раздражающий, чтобы слушать, особенно в наушниках. Я не могу получить новые записи (треки являются бутлегами с неизвестным происхождением), поэтому я предпочитаю второй лучший вариант - конвертировать их в моно, заменяя немую дорожку другой дорожкой.

Я читал этот похожий вопрос. Конвертируйте mp3 из моно в стерео, используя Lame, но предложенные решения, похоже, не применимы к моей ситуации.

Какой инструмент может заменить одну дорожку на другую в моей ситуации, предпочтительно без потерь и предпочтительно с использованием "совместного стерео" (= новый канал на практике будет пустым, что позволит избежать значительного увеличения размера файлов)?

3 ответа

Решение

Вы можете сделать это с помощью ffmpeg. На их странице управления аудиоканалами есть много примеров, включая этот пример для разделения аудиоканалов на отдельные файлы:

ffmpeg -i stereo.wav -map_channel 0.0.0 left.wav -map_channel 0.0.1 right.wav

Он будет делать то же самое с любым форматом, который он понимает, включая mp3. Пример разбивает один стереофайл на два монофайла без перекодирования. Я предполагаю, что все игроки будут (по умолчанию) воспроизводить один канал для каждого динамика. Вы можете следовать этому примеру, чтобы создать стереофонический файл с одинаковым звуком, скопированным в оба канала. Чтобы получить совместное стерео, вы должны перекодировать, что (в mp3) не без потерь; на этой странице нет примера.

Если вы делаете это в Windows (и не используете Cygwin), похоже, лучшим источником является сборка Zeranoe FFmpeg

Поэтому я попробовал метод ffmpeg, и у меня сложилось впечатление, что он перекодируется. Обработка занимает много времени, расходует много ресурсов процессора (в обоих случаях больше, чем MP3directcut); результирующие файлы показывают другой кодек в показаниях Mediainfo; и при сравнении спектрограмм из оригинальных и разделенных файлов есть заметные различия. Просто для проверки я перекодировал оригинал с теми же настройками кодирования (lame 128kbbs cbr стерео mp3 -> lame 128 cbr стерео mp3), и оригинал был намного ближе к транскоду, чем к разделенным файлам из ffmpg.

Я действительно не думаю, что этот метод без потерь. Вы могли бы также использовать программу как Audacity.

Я не могу комментировать ответы ни ШадСтерлинга, ни Джейдена (недостаточно представителей), так что вот мои 2 цента.

Эта команда действительно перекодирует (в моем случае left.wav и right.wav были в Vorbis, а Stereo.wav — aac), как намекнул Джейден.

      ffmpeg -i stereo.wav -map_channel 0.0.0 left.wav -map_channel 0.0.1 right.wav

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

      ffmpeg -i stereo.wav -af "pan=mono|c0=c1" mono.m4a
Другие вопросы по тегам