MPEGTS vs HLS Formats
The delivery of IPTV streaming comes in two standards, they are the MPEGTS and HLS formats. Essentially, both functions the same way (video is being split into small mpeg/ts chunks. While one chunk is being displayed, another one is being downloaded).
However, there is one BIG difference between the two format standards.
MPEGTS is the older, widely supported format which is not aware of the network conditions. That means it sends video chunks at a standard rate no matter what the speed/condition of the Internet.
HLS on the other hand is the newer standard, developed by Apple. It is not yet 100% supported by all programs/devices. This standard is aware of the network speed/congestion. That means it can adapt, sense and switch the resolution of the streaming video “on-the-fly”, depending on the varying network conditions.
For IPTVstack, which uses the Xtream Codes API; the way to switch between the 2 standards is by changing the last part of the M3U URL link statement.
Example of M3U URL link statement for MPEGTS: http://your.videoserver.provider.name/get.php?username=abcdef&password=123456&type=m3u_plus&output=ts
Pick MPEGTS with “output=ts”, or pick HLS with “output=m3u8”, or “output=hls”. Those 2 last, both point to the same m3u list, composed of m3u8 links. This is so, because the standard of HLS uses a “.m3u8” list instead of a “.ts” list. This is the theory so far.
Assuming when users face video problems with the “output=ts”; changed the link to “output=m3u8”. The problem should be solved immediately and channels start to functioning perfectly. The technical explanation to this anomaly is:- If a user were to use the old MPEGTS standard, he might find some difficulty to receiving reliable stream for say; smooth FHD/[email protected] on his own hardware setup in his computer or tv box. Thus, it would probably take up to several re-connections until it would be able to provide steady stream.
If users access our videoservers through the Xtream Codes API, they would only need credentials and the server and will get from the API all channels, picons and the EPG data.
On the other hand, if users access our videoservers through a M3U list, then they need the corresponding EPG link. Getting EPG data from sources on the Internet does not work, because the XML m3u list has been created in such a way (country code at the end of name), which confuses any program trying to match EPG data to channel list.
This is why your own EPG data is so important, since it is the only one to work perfectly with your channel list. Now, it is very easy to access that data and have the EPG link provided together with the M3U link to any user.