Метаданные MP3 через HTTP-ответ
Это будет звучать как странный запрос.
У меня есть PHP-скрипт, извлекающий поток mp3 из SoundCloud и повторяющий поток с правильными заголовками, чтобы WinAmp мог воспроизвести файл. Но он показывает только локальный URL, с которого запущен скрипт. Прежде чем кто-либо спросит, я вставляю ID3v1 в файл, прежде чем повторить его. Есть ли способ предоставить WinAmp метаданные из php?
1 ответ
Просто чтобы прояснить: вы эффективно используете прокси-файл в формате MP3 из SoundCloud и хотите встроить в него метаданные?
Winamp получит теги ID3 в файле MP3, который подается по HTTP. Однако, если вы используете ID3v1, эти теги не существуют до самого конца файла. Если вы хотите, чтобы файл был идентифицирован без необходимости загрузки всего файла, вы должны использовать ID3v2, которые обычно расположены в начале файла. (На самом деле я рекомендую использовать как ID3v1, так и ID3v2 для более широкой совместимости проигрывателя, но почти все поддерживают ID3v2, так что это ваш выбор.)
Теперь есть другой метод, но если вы используете этот метод, метаданные не будут сохранены в файле при загрузке. Вы можете использовать метаданные в стиле SHOUTcast. По сути, Winamp и другие клиенты (например, VLC) отправляют заголовок запроса, Icy-MetaData: 1
, Это сообщает серверу, что он поддерживает метаданные в стиле SHOUTcast. В ответе вашего сервера вы будете вставлять метаданные каждые 8 КБ или около того. По сути, вы хотите обратное тому, что я подробно описал здесь: /questions/25363115/poluchenie-informatsii-o-dorozhke-iz-audiopotoka-s-pomoschyu-php/25363132#25363132
В конце концов, простое добавление тегов ID3v2 решит вашу проблему наилучшим образом, но я хотел бы упомянуть альтернативный вариант, если он вам нужен для чего-то другого.