FAQ

[Streaming] HTTP Live Streaming (HLS) Troubleshooting

Date : 2014-10-30
Category : Technical FAQ

webOS TV supports HTTP Live Streaming (HLS) which is the adaptive streaming method that Apple has documented as an Internet-Draft (Reference URL of HLS: http://tools.ietf.org/html/draft-pantos-http-live-streaming-06). 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 example1
    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 example2

    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
    241000/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.