(Без потерь) преобразование стерео 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