Frequently Asked Questions

[Streaming] HTTP Live Streaming (HLS) Troubleshooting

Category: Technical FAQ

webOS TV supports HTTP Live Streaming (HLS) which is the adaptive streaming method that Apple has documented as an Internet-Draft. Here are some checklists you should verify when you meet a problem with playing HLS in webOS TV.

Check if both video and audio-only streams are used in a playlist. In webOS TV, video and audio-only streams cannot be used at the same time in a playlist. If an audio-only stream is included in a playlist while others are video streams, “CODECS” attribute must be added in #EXT-X-STREAM-INF tag so that webOS TV can ignore the audio-only stream. Otherwise, HLS content will not be played normally.

When listing audio codec in the audio-only stream, only one audio codec should be specified. If two or more codecs exist in the "CODECS" attribute, HLS does not recognize it as the audio content and the HLS content will not be played normally.

Correct example

#EXTM3U
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=96000
96000/output_96000.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=256000
256000/output_256000.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=800000
800000/output_800000.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=64000, CODECS=”mp4a.40.5” 
audio_only.m3u8

Incorrect example 1

In this HLS content, the lowest bandwidth is audio-only stream. Therefore, CODECS="mp4a.40.5" must be added in its stream. (The codec type depends on your content)

#EXTM3U
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=96000
96000/output_96000.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=256000
256000/output_256000.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=800000
800000/output_800000.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=64000
0/output_0.m3u8

Incorrect example 2

Two audio-only codecs are listed in CODECS attribute. When specifying codec in CODECS attribute, only one codec should exist.

#EXTM3U
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=241000,RESOLUTION=240x132
41000/output1.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=64000,CODECS="mp4a.40.2,mp4a.40.5"
output2.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=448000,RESOLUTION=320x176
448000/output3.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=750000,RESOLUTION=640x352
750000/output4.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1056000,RESOLUTION=640x352
1056000/output5.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1682000,RESOLUTION=1280x704
1682000/output6.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=2353000,RESOLUTION=1280x704
2353000/output7.m3u8
  • If the 502 error occurs when playing HLS, you should check your server to resolve the problem.

  • If the buffering occurs when playing HLS, check in which bandwidth the buffering occurs and then check the stream file of that bandwidth.