A listening URL is only the address of a media path. Successful playback also depends on the source codec, container, content type and decoder. KH distributes streams; configuring a bitrate or changing a filename does not transcode the incoming audio.

Choose a reproducible source

Use a source client that supports the intended Icecast-compatible protocol, codec and container. Set host, source port, mount and credentials separately. The first-stream guide uses an isolated encoded Ogg stream as a reproducible starting point; it is not a requirement that every programme use that format.

Record the encoder version and settings, including channels and rate. If a source connects but listeners cannot decode it, inspect actual bytes and content type rather than repeatedly changing the password. A .ogg or .mp3 suffix cannot prove the payload format.

Separate historical features from compatibility promises

The KH documentation covers Ogg/Vorbis, MP3 and historical video-related paths. NEWS records additional handling such as FLV wrapping. Availability depends on the selected build, libraries and actual media path. Wrapping a supported payload is different from encoding it into a different codec. Legacy browser plugins and Flash-era examples are not a current web playback recommendation.

For every production combination, test the exact encoder, server artifact and player. Use compatible intro and fallback media: reconnecting to a destination with an incompatible codec or container can fail even if KH successfully routes the connection.

Embed only an intentionally public endpoint

This HTML is an illustrative integration fragment for a separate website. It is shown as code; this handbook loads no player and contacts no stream:

html · Code example
<audio controls preload="none">
  <source src="https://stream.example.org/live.ogg" type="audio/ogg">
  Your browser cannot play this stream. Use your preferred player.
</audio>

Use HTTPS for media on an HTTPS page. Basic media playback and JavaScript access to media/status have different CORS needs. Autoplay depends on browser policy and user interaction; do not promise it. Protected streams require a player-specific authentication test without exposing passwords in markup.

Diagnose one layer at a time

Confirm the source in KH, fetch the endpoint, inspect response/media type, then test decoding in the intended browser and standalone player. Finally test reconnect, metadata and fallback transitions. A successful HTTP status alone does not verify audible media. These are acceptance steps to perform on an isolated running service, not claimed runtime results.