Почему преобразование битрейта с использованием ffmpeg из 124 в 96 сокращает продолжительность моего файла mp3? - PullRequest
0 голосов
/ 06 мая 2020

Я хотел преобразовать мои mp3-файлы в более низкий битрейт. Но при преобразовании со 124 КБ в 96 КБ продолжительность моего файла уменьшилась с 4:01 до 3:54. Почему это так?

Синтаксис, используемый для преобразования:

exec("ffmpeg -i com.mp3 -b:a 96k com96.mp3");

Исходная продолжительность была 4:01, но после преобразования она стала 3:54. Что-то не так с моим синтаксисом или файл mp3 теряет биты данных во время преобразования с более высокого битрейта на более низкий?

1 Ответ

1 голос
/ 06 мая 2020

124k - это не нормальный битрейт для MP3. Либо ваш файл использует постоянный битрейт свободного формата (очень редко ... я вообще никогда не видел его), либо этот битрейт является некоторым средним из нескольких кадров с переменным битрейтом.

Почему вы так думаете файл имеет размер 124 КБ и продолжительность 04:01?

Я подозреваю, что у вас есть обычный файл VBR, и все, что вам показывает, использует среднее количество кадров, чтобы показать вам битрейт, и используя это среднее относительно размера файла в байтах, чтобы оценить продолжительность.

MP3 не имеет встроенных временных меток. Это просто кадр MPEG за кадром MPEG до конца. За исключением дополнительных метаданных или их мультиплексирования в другой контейнер, единственный способ получить продолжительность - это прочитать весь файл или оценить продолжительность на основе битрейта и размера файла. С переменным битрейтом вы можете ожидать, что ваша продолжительность будет несколько неточной.

Я подозреваю, что фактический звук в файле имеет продолжительность 03:54.

Наконец, я не знаю, что ваш вариант использования есть, но разница в размерах между 128k и 96k не очень большая, но разница в качестве есть. Если вы хотите сэкономить полосу пропускания, есть лучшие кодеки (например, Opus или AA C). Кроме того, вы не должны go из кода с потерями c на другой код с потерями c ... вы в конечном итоге тратите пропускную способность на попытки кодирования артефактов, что еще больше ухудшает качество на этом пути.

...