![shoutcast tv streams shoutcast tv streams](https://www.das-insel-radio.de/dateien_upload/sendeplan2.png)
The message length does not include the trailer 0x00 byte. It specifies the length of the payload following the message header. The message length is the fifth and the sixth byte of the message header. See 'Broadcast Messages Table' for details about the specific message types supported. The message type is 12 bits in the message header that specify the type of data encapsulated in the message. See ' Known Message Types' for a complete list of supported or reserved message classes as well as the types related to them. (Reserved for use with 0x9 if implemented)
![shoutcast tv streams shoutcast tv streams](https://www.usastreams.com/wp-content/uploads/2018/04/ASAstreamsDJ-768x498.png)
The message classes are defined as:īroadcaster Listener via Distribution PointĮncoded data (ex: 0x9000 is Headerless AACP) Examining the payload requires extra parsing on the part of the distribution point and so will affect the performance when we talk about heavy load. The message classes are defined so that the distribution point can look at the message class and decide whether it needs to examine the payload. The reason for separating the unique identifier into two units is for performance reasons. The message class is used in combination with the message type to uniquely identify an Ultravox message. The other 3 bits are the relative priority for send queue. The QoS is a four bit value whose high bit specifies whether this packet has to be delivered (useful for UDP). QoS information may be passed in the low 4 bits of the reserve byte. It allows the listener to seek to a potential valid frame if data gets corrupted between the distribution point and the listener. The sync byte is used to distinguish the beginning of an Ultravox message. Note: All values of the message are network byte order. Once a broadcaster or listener is connected to the distribution point, Ultravox messages will be the sole communication mechanism. The mechanism by which Ultravox is able to abstract the underlying stream encoding is to use encapsulation within a simple message structure. Recommendations for features of the distribution point buffering scheme and connection handling are also mentioned here, but are an implementation detail and the protocol may lend itself for better solutions based on the streaming architecture. The distribution point will either allow or deny the listener and if allowed will start sending stream data to the listener from it’s internal stream buffer.
![shoutcast tv streams shoutcast tv streams](https://www.xdevel.com/wp-content/uploads/2021/02/homepage-slideshow-01-2021-1.png)
Similarly, a listener may connect to the distribution point, provide authentication information, and request a particular stream. The distribution point parses the provided information, authenticates the user and then either sets up for streaming the broadcast feed, or denies the broadcaster access. It provides authentication information and stream details to the distribution point.
![shoutcast tv streams shoutcast tv streams](https://streamingpulse.com/main/wp-content/uploads/2018/12/Butt-encoder-setting.png)
The protocol is designed with network performance, compatibility, and simplicity in mind.Īt a high level the broadcaster opens a connection to the distribution point. At this time the protocol is not codec dependent, nor is it transport dependent. It describes the handshaking necessary between the broadcaster and the distribution point as well as the handshaking necessary between the listener and the distribution point.
#Shoutcast tv streams series#
The protocol defines the structure of the encapsulation as well as the series of handshakes necessary for setting up a streaming session. The SHOUTcast 2 / Ultravox 2.1 Protocol is an application level streaming protocol that will encapsulate stream data in order to abstract the underlying data encoding.