У меня есть набор голых файлов MP3. Как и прежде, я удалил все теги (без ID3, без Xing, без информации) из этих файлов.
Непосредственно перед отправкой одного из этих файлов клиенту я хочу добавить тег Info. Все мои файлы являются CBR, поэтому мы будем использовать тег Info (без Xing).
Сейчас я получаю первые 4 байта существующего MP3, чтобы получить версию (MPEG-1, Layer III), битрейтЧастота, Стерео режим и т. Д. И, таким образом, определяют размер одного кадра. Я создаю тег таким образом, повторно используя эти 4 байта для тега Info и определяя размер кадра.
Для тех, кому интересно, эти 4 байта могут выглядеть следующим образом:
FF FB 78 04
Мне казалось, что вы должны использовать те же первые 4 байта в теге Info, что и в других аудиофреймах MP3, но при использовании ffmpeg они прикрепляют тег Info с жестко кодированным 1013* header (неверный битрейт, неправильная частота и т. д.)
Мой вопрос: действительно ли ffmpeg делает это правильно? (LAME этого не делает) Могу ли я сделать то же самое, пропустив загрузку первых 4 байтов, и при этом большинство игроков проигрывает мои файлы, как и ожидалось?
Примечание: , поскольку я читаю эти 4 байта по сети, это определенно сэкономило бы много времени и некоторой полосы пропускания, чтобы не приходилось загружать эти 4 байта при запросе HEAD
. Ресурсы, которые я мог бы использовать для GET
запросов вместо ...