Как установить версию выходного файла MP3 в FFmpeg

457
samsam114

Я хочу разделить стереофонический MP3-файл на два монофонических MP3-файла, используя FFmpeg, чтобы каждый из монофонических файлов был MPEG-1 Layer 3 Version 1:

Я использую эту команду:

ffmpeg -i input.mp3 -map_channel 0.0.0 left.mp3 -map_channel 0.0.1 right.mp3 

Входной файл - MPEG-1 Layer 3 Version 1, но выходы - MPEG-1 Layer 3 Version 2.

0
Во-первых, ваш английский в порядке! Но только пояснение: вы говорите «MPEG-1 версия 1» и «MPEG-1 версия 2», но имеете в виду [«MPEG-1 Audio Layer I» и «MPEG-1 Audio Layer II?»] (Https: / /en.wikipedia.org/wiki/MPEG-1#Layer_I) JakeGould 7 лет назад 0

1 ответ на вопрос

2
szatmary

Вы не можете установить это. FFmpeg автоматически выбирает версию на основе желаемого результата. чтобы принудительно установить версию, вы должны использовать параметры, совместимые с этой версией. Прочитайте эту ссылку (введение с этой страницы ниже) и выберите правильную комбинацию, которая подходит для вашего приложения.

В аудиофайле MPEG нет основного заголовка, поскольку аудиофайл MPEG просто создается из последовательности меньших частей, называемых кадрами. Каждый кадр представляет собой блок данных с собственным заголовком и аудиоинформацией.

В случае Layer I или Layer II кадры полностью независимы друг от друга, поэтому вы можете вырезать любую часть аудиофайла MPEG и воспроизводить ее правильно. Затем проигрыватель воспроизводит музыку, начиная с первого полного действительного кадра, который он найдет. Однако в случае Уровня III кадры не всегда независимы. Из-за возможного использования «байтового резервуара», который является своего рода внутренним буфером, кадры часто зависят друг от друга. В худшем случае может потребоваться 9 входных кадров, прежде чем можно будет декодировать один кадр.

Если вам нужно получить информацию об аудиофайле MPEG, вы можете просто найти первый кадр и извлечь информацию из его заголовка. Информация в других кадрах должна соответствовать первому, кроме битрейта, так как вы можете получать информацию из файла с переменным битрейтом (VBR). В файле VBR битрейт может быть изменен в каждом кадре. Он может использоваться, в качестве примера, для поддержания постоянного качества звука в течение всего файла, используя больше битов, когда музыка более сложная и, следовательно, требует, чтобы больше битов кодировалось с одинаковым качеством.

Сам заголовок кадра имеет длину 32 бита (4 байта). Первые двенадцать битов (или первые одиннадцать битов в случае расширения MPEG 2.5) заголовка кадра всегда устанавливаются в 1 и называются «синхронизацией кадров». Кадры могут также содержать дополнительную контрольную сумму CRC. Длина 16 битов, и, если она существует, сразу же следует за заголовком кадра. После CRC идут аудио данные. Пересчитав CRC и сравнив его значение с оцененным, вы можете проверить, был ли изменен кадр во время передачи битового потока.

Итак, вы можете сказать мне команду для получения желаемого результата? samsam114 7 лет назад 0

Похожие вопросы