Comments 55
Спасибо, интересно!
Шикарно!
Крайне удивлен прочитаным. Я думал все на много проще.
* Ушел ковырять mp3шки
* Ушел ковырять mp3шки
действительно, времени у вас было много
;-)
;-)
кстати, phpcode.us/ffmpeg-php/
ffmpeg_movie::getDuration() Возвращает продолжительность аудио или видео файла в секундах.
ffmpeg_movie::getDuration() Возвращает продолжительность аудио или видео файла в секундах.
— Ушел ковырять mp3шки
Все уже расковырено… до нас
Все уже расковырено… до нас
На Хабре блог «Алгоритмы» последние время очень радует. Почти всё попадает в Избранное.
А где бы почитать про структуру самих аудиоданных?
Есть в планах заняться этим вопросом плотнее. Если кто-либо не напишет ранее — это впролне может быть темой следующей статьи.
Стандрат, в котором это описано называется ISO/IEC 11172-3 (Information technology — Coding of moving pictures and associated audio for digital storage media at up to about 1,5 Mbit/s — Part 3: Audio)
Весьма полезно. Предлагаю объявить это как «часть 1», а потом написать «часть 2» — собственно про аудиоданные.
Я как-то писал читалку данных из mp3 для одного проекта и тоже разбирался во всем этом. Но потом пришло понимание, что не стоит заниматься велосипедостроением, и я взял готовый модуль для perl. Но узнать о стоении mp3 файла было крайне интересно.
Как раз пользовался на php getID3 — неплохая библиотека, не без своих глюков конечно.
Прикольно что поддерживает расширение возможностей с помощью дополнительных «расширений» по разные форматы файлов. Можно тонко настроить под себя
Прикольно что поддерживает расширение возможностей с помощью дополнительных «расширений» по разные форматы файлов. Можно тонко настроить под себя
Я тоже написал свою программу для чтения заголовков AVI, а потом нашел getID3 — лучшее, что есть на PHP для парсинга мета-данных различных мультимедиа форматов.
Бесспорно, getID3 — отличная вещь. Я, кстати, о ней изначально упомянул в ссылках.
Но желание самому «залезть внуть» видимо неистребимо )
Но желание самому «залезть внуть» видимо неистребимо )
Очень интересно, спасибо.
Кому интересно и кто хочет углубить свои знания в этой теме: в нашем с форумом программистов журнала тоже есть интересная статья про устройство mp3 файла.
Вот ссылка на онлайн просмоторщик номера: www.procoder.info/index.php?option=com_flippingbook&view=book&id=6
Спасибо за внимание.
Кому интересно и кто хочет углубить свои знания в этой теме: в нашем с форумом программистов журнала тоже есть интересная статья про устройство mp3 файла.
Вот ссылка на онлайн просмоторщик номера: www.procoder.info/index.php?option=com_flippingbook&view=book&id=6
Спасибо за внимание.
Я не понимаю почему меня заминусовали?
Я предложил информацию, которая может быть интересна тем, кто хочет подробнее ознакомится с темой.
Я предложил информацию, которая может быть интересна тем, кто хочет подробнее ознакомится с темой.
На хабре не любят внешние ссылки с саморекламой. Вот вы и поплатились.
Лично я ссылки на _некоммерческие_ проекты рекламой не считаю, даже наоборот это источник дополнительных знаний.
Я с вами полностью согласен. На самом деле ведь могу ошибаться. Всё вышесказанное лишь догадка, предположение и основано на личных наблюдениях. А тут кто его знает в чём причина…
Текст уж больно на рекламу похож, если бы просто написали ссылку и подпись «Ещё по теме», думаю эффект был бы диаметрально противоположный ;)
Мега-полезная статья для меня! Плюсую.
Спасибо, интересно (:
Спасибо, позновательно.
Использовал для определения длины mp3-трека на сайте простенький класс. Всего 340 строчек кода в нём и есть всё необходимое. Длина определяется одной строчкой кода.
Сейчас к сожалению ссылок найти не могу на него, но если будет интересно, дам ссылку на сайт, где всё это дело применялось.
Сейчас к сожалению ссылок найти не могу на него, но если будет интересно, дам ссылку на сайт, где всё это дело применялось.
340 строчек… немало. В моем примере (ссылка в конце статьи) php-скрипт занимает 190 строк.
Он получает всю необходимую информацию о mp3 файле, включая ID3v1-теги и заголовок ID3v2-тегов.
Учитывая что я не ставил цель написать максимально короткий скрипт — думаю что можно порядком сократить.
Он получает всю необходимую информацию о mp3 файле, включая ID3v1-теги и заголовок ID3v2-тегов.
Учитывая что я не ставил цель написать максимально короткий скрипт — думаю что можно порядком сократить.
Сразу лабораторные по теории кодирования информации вспоминаются… Эх золотое было время…
Emphasis это не «акцент», это специфическое предыскажение для некоторых систем шумоподавления типа Dolby, например. Соответственно, наличие этого признака должно было включать или выключать экспандер в тракте. Сегодня не используется.
> Однако в данном формате подразумевается, что 1 килобит = 1000 бит, а не 1024
В любом формате 1 килобит = 1000 бит
В любом формате 1 килобит = 1000 бит
вот это респект…
первая длинная статья, которую прочитал с интересом и до конца… )))
Спасибо, взял на заметку (в избранное)
первая длинная статья, которую прочитал с интересом и до конца… )))
Спасибо, взял на заметку (в избранное)
UFO just landed and posted this here
Вы пересказали спецификацию. А в чем прикол?
Позволю себе исправить одну небольшую неточность в подсчете длины при постоянном битрейте (CBR).
Мы должны учитывать размеры заголовков фреймов. Если у нас N фреймов аудиоданных, то нужно будет еще отнять от размера файла размер заголовков всех фреймов (8*N), т.е. итоговая формула:
Поправка небольшая, но все же ;)
Например, файл имеет размер 350670 байт. Есть ID3v1 теги (128 байт) и ID3v2 теги (1024 байта). Битрейт = 96. Следовательно размер аудиоданных равен 350670 – 128 – 1024 = 349518 байт.
Длительность = 349518 / 96000 * 8 = 29,1265 = 29 секунд
Мы должны учитывать размеры заголовков фреймов. Если у нас N фреймов аудиоданных, то нужно будет еще отнять от размера файла размер заголовков всех фреймов (8*N), т.е. итоговая формула:
length = (filesize - 128 - 1024 - 8*N) / (bitrate * 8).
Поправка небольшая, но все же ;)
Гм, оказывается, во-первых, длина заголовка фрейма 4 байта (в статье была опечатка), а, во-вторых, согласно экспериментальным данным, отнимать все же размер заголовков не надо (почему, это уже другой вопрос — возможно, там битрейт учитывает заголовки)…
Скажите, а есть ли ограничение хранения звуков в mp3 по частоте? скажем 20000Hz может там быть?
Sign up to leave a comment.
Внутри MP3. А как оно всё устроено?