Sharing some information here with the intention that it hopefully helps some people out or learn the way how it works:
Delivery of IPTV comes in 2 standards MPEGTS and HLS. In essence both function 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 2 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 the speed/condition of the internet.
HLS on the other hand is the newer standard, developed by Apple. Not yet 100% supported by all programs/devices. This standard is aware of the network speed/congestion. That means it can sense and switch the resolution of the video "on the fly", depending on the 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 link.
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 so far is the theory.
In case users having problems with the "output=ts".
As my client changed the link to "output=m3u8". His problem was solved directly. Channels started functioning perfectly. However if he would use the old MPEGTS standard. RapidIPTV would have difficult time to keep providing reliable stream for smooth FHD/720p@60fps. It will take up to several re-connections until it would be able to provide steady stream.
EPG:
If people access RapidIPTV 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 people access RapidIPTV through a m3u list, than 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 customer.
Example:
Your m3u line: http://tv.xs4iptv.xdns.pro/get.php?username=abc&password=abc&type=m3u_plus&output=ts
Your EPG line: http://tv.xs4iptv.xdns.pro/xmltv.php?username=abc&password=abc
Your EPG line is the same as your m3u line, just delete the text after password and change " get.php? " in to " xmltv.php? "
CREDITS to my client @Sveto as he did the research and explained everything in details
Delivery of IPTV comes in 2 standards MPEGTS and HLS. In essence both function 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 2 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 the speed/condition of the internet.
HLS on the other hand is the newer standard, developed by Apple. Not yet 100% supported by all programs/devices. This standard is aware of the network speed/congestion. That means it can sense and switch the resolution of the video "on the fly", depending on the 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 link.
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 so far is the theory.
In case users having problems with the "output=ts".
As my client changed the link to "output=m3u8". His problem was solved directly. Channels started functioning perfectly. However if he would use the old MPEGTS standard. RapidIPTV would have difficult time to keep providing reliable stream for smooth FHD/720p@60fps. It will take up to several re-connections until it would be able to provide steady stream.
EPG:
If people access RapidIPTV 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 people access RapidIPTV through a m3u list, than 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 customer.
Example:
Your m3u line: http://tv.xs4iptv.xdns.pro/get.php?username=abc&password=abc&type=m3u_plus&output=ts
Your EPG line: http://tv.xs4iptv.xdns.pro/xmltv.php?username=abc&password=abc
Your EPG line is the same as your m3u line, just delete the text after password and change " get.php? " in to " xmltv.php? "
CREDITS to my client @Sveto as he did the research and explained everything in details
Last edited: