6

Вот что мне нужно сделать: конвертировать 30,0 секунд WAV в 30,0 MP3.

Я пытался сделать это, используя LAME, однако, независимо от того, что я пытаюсь, LAME всегда добавляет короткий момент молчания к выходному mp3. При использовании LAME мой 30,0 секунд WAV становится 30,1 секунд MP3. Это глупо.

Кто-нибудь знает способ конвертировать WAV в MP3 с помощью командной строки Windows?

Например, запустив "program.exe in.wav out.mp3" из CMD?

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

3 ответа3

2

Поток MP3 содержит информацию для генерации набора сэмплов, где каждый сэмпл соответствует сэмплу в исходных данных LPCM (например, из файла WAV), но побочным эффектом кодирования является то, что к каждому из них добавляется дополнительный "мусор". конец, и побочным эффектом декодирования является то, что к началу добавлено еще больше мусора. Декодер будет знать, сколько он добавляет, и пропустит эти выборки, но добавленная кодировщиком нежелательная память не является полностью предсказуемой (разные кодеры добавляют разные количества), поэтому декодер не может пропустить эти выборки, если он каким-то образом не информирован о том, что пропускать. Некоторые кодировщики, такие как LAME, добавляют такую информацию "Воспроизведение без пауз" или "Задержка и заполнение" (в формате, специфичном для кодера, потому что для него нет стандарта) в заголовок VBR Info (VBRI) файла или заголовок Xing, который является сортировкой - стандартно даже для файлов CBR и содержит другую информацию, которая иногда полезна для проигрывателя. Этот заголовок фактически является кадром молчания (обычно 1152 сэмпла) с некоторой специально отформатированной информацией, вставленной между заголовком кадра и началом его нулевых аудиоданных. Большинство декодеров / проигрывателей распознают кадр как особый и пропускают эти сэмплы, но некоторые этого не делают, поэтому существует еще одна потенциальная точка отказа. поэтому я хотел бы убедиться, что вы используете совместимый кодер / декодер, чтобы получить файлы правильной длины, срезанные ненужной информацией в качестве выходных данных.

Ваш второй вопрос ... Вы обратили внимание на параметр "--decode" приложения командной строки LAME? :) Это должно решить вашу проблему, если вы используете LAME в качестве кодера. Длина вывода должна соответствовать входу.

1

Я хочу добавить этот FAQ и тему суперпользователя к обсуждению:

0

Я хочу дать несколько более краткий и ясный ответ.

Боюсь, что нет способа создать файлы MP3, которые последовательно воспроизводятся без пропусков в начале и в конце. Это известно как Gapless Playback и является очень обсуждаемой проблемой.

Как говорит хотя бы один из других ответов, есть обходные пути, которые работают с некоторыми конкретными музыкальными проигрывателями.

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