HLS

Internet of Things · Network · Communication · Solutions

Definition

HLS (HTTP Live Streaming) is an HTTP-based streaming protocol proposed by Apple. It splits audio and video streams into short TS segments (usually 2–10 seconds) and uses M3U8 index files to describe playlists and multiple bitrate variants, enabling adaptive bitrate (ABR) playback. HLS is based on standard HTTP, making it easy to traverse firewalls and distribute via CDNs. It is widely used in video surveillance, streaming, live broadcasts, on-demand scenarios, and is one of the commonly used protocols for IoT video return.

Technical Features and Architecture

The HLS technical architecture includes: encoding and segmentation — encoding audio and video (H.264/H.265, AAC) at the source and splitting them into TS segments; index files — M3U8 describes the segment sequence and multiple bitrate variants (Master Playlist + Variant Playlist); distribution — distributing via HTTP servers or CDNs, supporting caching and edge acceleration; playback — clients pull segments according to the index and switch bitrates based on network conditions. HLS latency is usually 10–30 seconds, suitable for scenarios where real-time requirements are not extreme. Combined with RTMP and video streaming, it is possible to achieve an architecture where the streaming end uses RTMP ingest and the server outputs HLS.

In cross-border scenarios, HLS relies on CDN and HTTP to easily achieve global distribution, and IoT devices can upload to the nearest node using one SIM, multiple countries connectivity.

Application in IoT and cross-border scenarios

HLS is widely used in: Video Surveillance——Video surveillancecameras and vehicle DVRs convert video to HLS for remote viewing; Drone Image Transmission——Aerial camerastransmit imagesvia ground stations or cellular networks, then convert to HLS for command center viewing; EV Charging Station Monitoring——On-site monitoring videos of charging stations transmitted back via HLS; Cross-border Live Streaming——Event and exhibition live streams are distributed globally through CDN. Scenarios such as cross-border video monitoring and global live streaming rely on HLS to achieve low-latency and highly compatible media streaming.

SimtoLink provides HLS streaming devices with connectivity covering over 200 countries, supporting the implementation of cross-border video monitoring and live streaming scenarios.

What a segment index means on a cross-border backhaul

HLS means pulling a series of media files that have already been segmented, over HTTP. It is not an end-to-end push of the camera's raw stream to the player. A master playlist lists variants, and each variant points at its own media playlist. The player picks a variant for the current bandwidth, then fetches segments by sequence or by a date range. Segment duration, keyframe interval, and player buffer together set the startup delay. If an IoT backhaul first delivers the camera to an edge transcoder, and the transcoder then publishes the M3U8, cellular quality on the camera side only affects whether segments are produced on time. It does not directly set how long the viewer buffers.

HLS fits when the viewer can accept a delay of several seconds to several tens of seconds, and when HTTP caches along the path will not freeze the live playlist. For cross-border distribution, segments should land on a cache near the viewer, while the camera uploads to a nearby transcoder. When the upload link jitters, lower the bitrate or drop non-keyframes first, rather than leaving large holes in the playlist. If the destination country requires media files to stay local, segment URLs in the playlist must point at a node that is allowed to hold them. Leaving only the index at home and the segments abroad is not enough.

The illusion created by a cached playlist

If a live M3U8 is stored by an intermediate cache as a static file, the player keeps receiving an expired sequence. The picture stops on an old segment, and operations staff conclude that the camera is offline. The opposite also happens: the camera has already stopped, but the player is still draining its buffer, so the monitoring wall keeps showing "online." Neither symptom is a fault in the encoding parameters themselves. Check the playlist cache headers, whether the segment sequence is advancing, and the time of the last frame the transcoder received, rather than the player's buffer icon alone.

Another mistake is to treat HLS adaptive bitrate as congestion control on the cellular side. A player step-down only reduces traffic toward the viewer. If the camera still uploads at the highest bitrate, the queue on a cross-border weak network keeps growing. Low-latency control and gimbal tracking should not rely on HLS alone. When feedback within about a second is required, send control on a separate signaling path and keep HLS for the media archive. For cross-border viewing, also compare segment timestamps with the platform time zone, so a normal delay in cross-border data backhaul is not recorded as a camera clock fault.

When a live playlist is published, the cache lifetime should be shorter than one segment. Otherwise a cross-border node keeps handing the old sequence to the player. If the transcoder stops advancing the sequence for a long time, raise an alarm for stalled segments, rather than waiting for the player to time out before anyone notices that the camera has already stopped.


Related Terms

Return to International IoT SIM Card Glossary