Мне нужно добавить дополнительные метаданные в поток Icecast (помимо исполнителя и названия песни). Я пробовал несколько идей, но ни одна из них, кажется, ничего не дает. Ситуация усложняется тем, что метаданные также проходят через Wowza, которая осуществляет рестриминг потока Icecast. Существует ли канонический список полей метаданных, поддерживаемых Icecast, и есть ли у кого-нибудь опыт передачи пользовательских метаданных в рамках потока Icecast в Wowza?
Пользовательские метаданные с Icecast
Ответы (2)
Мой модуль node-icy
способен читать в произвольном потоке Icecast и перехватывать и/или добавлять "метаданные" события в выходной поток. По сути, вы «проксируете» поток. Хороший (хотя и немного сложный) пример может быть здесь: proxy.js
Однако обратите внимание, что формат «метаданных» представляет собой строку пар ключ-значение, разделенную точкой с запятой, но клиенты Icecast реагируют только на значение StreamTitle
, поэтому просто вставьте туда всю информацию, которую вы хотите:
StreamTitle='Pink Floyd - Welcome to the Machine';
Я делал такие вещи, как отправка события метаданных каждую секунду, чтобы сохранить счетчик позиции отслеживания (хотя это, возможно, было немного тяжелым для сети):
StreamTitle='Pink Floyd - Welcome to the Machine (0:12/4:02)';
Удачи!
Хотя это немного сложно, язык сценариев Savonet/Liquidsoap имеет средства для изменения/установки метаданных потока. В вики Liquidsoap есть пара примеров по адресу https://wiki.sourcefabric.org/display/LS/UserScripts