IPTV Live Video Encoding & Streaming HLS
HTTP Live Streaming (HLS) is an HTTP-based adaptive bitrate streaming communications protocol developed by Apple Inc. It is widely supported by most media players, web browsers and mobile devices.
HLS breaks video content into small chunks and delivers them via standard HTTP web servers. Viewers download these chunks on-the-fly, allowing them to start watching immediately without waiting for the entire video to download.
Stream from 3rd Party HLS Server
Choose http as source type, enter http or https m3u8 url as source
media. e.g. https://my.videosite.com/live/playlist.m3u8
Stream HLS to handheld phone and pad devices (Android & iOS)
First of all, please note IPVTL DOES NOT output Apple HLS directly. Instead, it generates HLS index file (.m3u8) and segment files (.ts) on your local disk. These files can then be fed to web server like Nginx, Apache or Microsoft IIS to provide HLS to end player running in user Apps or browsers.
In Windows version, the default output index file name is C:\media\ipvt_ch#.m3u8. And segment files will be generated in C:\media\ipvt_ch#-##.ts. You can edit Target URL and change it to your perferred folder and file name. Be sure to put them under your web server publish folder to be found and downloaded.
More HLS settings, like segment length, playlist entry size and encryption (DRM) are availabe in Advanced HLS Config below.
Best Practice - Working with Nginx to provide Apple HLS streaming
- Install Nginx, for example to C:\nginx.
- In C:\nginx, create folder media as virtual root folder for hls.
- In C:\nginx\media, create folder hls to place m3u8 and ts segments.
- In IPVTL, set output file to C:\nginx\media\hls\stream.m3u8.
- Edit nginx.conf, in http{} -> server{} section, add location{} section for hls as below:
http { ... server { ... location /hls { types { application/vnd.apple.mpegurl m3u8; video/mp2t ts; } root media; add_header Cache-Control no-cache; } ... } ... }
If both Nginx and IPVTL channel start successfully, the output stream should
be able to access at http://<nginx_server_ip>/hls/stream.m3u8
.
HLS Adaptive bitrate Streaming
Adaptive bitrate streaming is a method of video streaming over HTTP where the source content is encoded at multiple bit rates. Video streaming clients can dynamically adapt in real-time, in order to provide the best quality for each individual viewer. ABR streams take into account network conditions, screen size and device capabilities and can adjust on the fly to changes in available bandwidth and device resources.
To set up HLS Adaptive bitrate streaming, follow instructions in multi-bitrate section.
Advanced HLS Config
If you are streaming into HLS format, you can specify more details about index file (.m3u8) and segment file (.ts) to be generated, including segment length, playlist entry size and TS encryption (DRM).
You can also enter a base URL to be put in .m3u8 index.