Le développement du client pour le serveur icecast
Je suis en train d'élaborer le client pour le serveur icecast (www.icecast.org). Quelqu'un peut-il me dire, quel est le format qu'ils utilisent pour la diffusion du contenu?
J'étais à la recherche sur leurs pages, mais il n'y a aucune information sur le format de streaming à tous.
J'ai ensuite vérifié la trace Wireshark et en raison de ma compréhension du format des données audio que je reçois dans la réponse 200 OK à la demande, il est juste un simple binaire des données audio sans métadonnées inclus, de sorte qu'en comparant à la SHOUTcast ou HTTP Live Streaming (HLS) il est relativement simple d'approche.
Est ce que le droit? Aucune expérience avec elle?
Wireshark trace extrait de:
GET /bonton-128.mp3 HTTP/1.1
Host: icecast3.play.cz
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/533.19.4 (KHTML, like Gecko) Version/5.0.3 Safari/533.19.4
Accept: application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Language: en-US
Accept-Encoding: gzip, deflate
Connection: keep-alive
HTTP/1.0 200 OK
Content-Type: audio/mpeg
icy-br:128
ice-audio-info: ice-samplerate=44100;ice-bitrate=128;ice-channels=2
icy-br:128
icy-description:Radio Bonton
icy-genre:Pop /Rock
icy-name:Radio Bonton
icy-pub:0
icy-url:http://www.radiobonton.cz
Server: Icecast 2.3.2
Cache-Control: no-cache
Here are then aac or MPEG data
Merci et salutations,
STeN
OriginalL'auteur STeN | 2011-05-19
Vous devez vous connecter pour publier un commentaire.
Pour vos besoins, Icecast et SHOUTcast sont équivalentes.
Ils utilisent tous les deux une vision dénaturée de la version du protocole HTTP. En fait, vous pouvez faire une simple requête HTTP et de l'utilisation standard du client HTTP bibliothèques, et il sera presque toujours le travail tout aussi bien. La seule chose différente, c'est que SHOUTcast sera de retour
ICY 200 OK
au lieu deHTTP 200 OK
dans sa réponse.Maintenant, si vous en faites la demande, comme vous l'avez fait ci-dessus, vous obtenez une norme de flux audio que vous pouvez jouer directement. Comme vous l'avez souligné, MP3 et AAC sont utilisés presque exclusivement, mais d'autres formats peuvent être utilisés.
Si vous voulez des métadonnées, vous devez indiquer au serveur que vous êtes prêt à le recevoir. Vous devez mettre cet en-tête dans votre demande:
Une fois que vous faites cela, vous verrez un autre en-tête de revenir à vous dans la réponse, comme
icy-metaint:8192
, ce qui signifie que chaque 8192 octets, vous recevrez un morceau de métadonnées.Je n'entrerai pas dans les détails parce que c'est déjà bien documentés. Pas besoin de re-type de roue:
Tirant d'Infos de pistes à Partir d'un Flux Audio à l'Aide de PHP
http://www.smackfu.com/stuff/programming/shoutcast.html
Toutefois, si vous avez des questions, veuillez les poster sur StackOverflow et de les marquer comme icecast ou shoutcast, et je serai heureux de vous aider.
GET /bonton-128.mp3 HTTP/1.1 User-Agent: curl/7.19.5 Host: icecast3.play.cz Accept: */* Icy-MetaData:1 HTTP/1.0 200 OK Content-Type: audio/mpeg icy-br:128 ice-audio-info: ice-samplerate=44100;ice-bitrate=128;ice-channels=2 icy-br:128 icy-description:Radio Bonton icy-genre:Pop / Rock icy-name:Radio Bonton icy-pub:0 icy-url:http://www.radiobonton.cz Server: Icecast 2.3.2 Cache-Control: no-cache icy-metaint:16000
Oui, cela dépend du serveur. Icecast renvoie HTTP, et SHOUTcast retourne GLACÉ. De toute façon il n'a pas d'importance, tout le reste est identique. Heureux de voir que vous l'avez travail!
OriginalL'auteur Brad
J'ai récemment terminé un projet de station de radio, où ils ont utilisé icecast. Je veux partagez-vous la radio player et PHP Wrappers que j'ai utilisé pour obtenir des informations à partir de centova,icecast et lastfm.
Il existe de nombreux types de serveurs de diffusion en continu. De nombreux protocoles, de nombreux conteneurs, de nombreux codecs, et de nombreuses combinaisons de ceux-ci.
OriginalL'auteur Juan David Decano