Roku Developer Program

Developers and content creators—a complete solution for growing an audience directly.
cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
unDEFER
Level 7

Re: Is HLS broken on Roku 2?

I don't know if there is developers here, but we have found that Roku 2 doesn't play HLS in 2 cases:
1) HLS over HTTPS
2) HLS over HTTP with playlists with relative paths like this:
#EXTM3U
#EXT-X-STREAM-INFSmiley TongueROGRAM-ID=1,BANDWIDTH=840427
playlist.m3u8?wowzasessionid=1722458325


Both variants excellent works with firmware 2.x or 3.x. So there is works only HLS over HTTP with playlists with absolute paths.
0 Kudos
unDEFER
Level 7

Re: Is HLS broken on Roku 2?

Build 1275 fixes our problems. Thank you.
0 Kudos
id10t1
Level 7

Re: Is HLS broken on Roku 2?

I have had the enjoyment of troubleshooting Roku 2 and HLS. I just wanted to share my solution in hopes that someone else wont have to spend some late nights debugging...

Build: 1275 (originally 126x)
Channel Code: based on the "videoplayer" that is included in the SDK
Error Message: An unexpected problem (but not server timeout or HTTP error) has been detected.

The error message was given when loading an m3u8 playlist file under the "roVideoScreenEvent" message when handling the "isRequestFailed()" condition.

Our main playlist file looked like the following:

#EXTM3U
#EXT-X-STREAM-INFSmiley TongueROGRAM-ID=1, BANDWIDTH=924000
http://8.8.8.8/stream/test/eng/rokuhsd.m3u8
#EXT-X-STREAM-INFSmiley TongueROGRAM-ID=1, BANDWIDTH=1364000
http://8.8.8.8/stream/test/eng/rokuvhsd.m3u8
#EXT-X-STREAM-INFSmiley TongueROGRAM-ID=1, BANDWIDTH=2134000
http://8.8.8.8/stream/test/eng/rokuhhd.m3u8
#EXT-X-STREAM-INFSmiley TongueROGRAM-ID=1, BANDWIDTH=484000
http://8.8.8.8/stream/test/eng/rokumsd.m3u8
#EXT-X-STREAM-INFSmiley TongueROGRAM-ID=1, BANDWIDTH=264000
http://8.8.8.8/stream/test/eng/rokulsd.m3u8
#EXT-X-STREAM-INFSmiley TongueROGRAM-ID=1, BANDWIDTH=165000
http://8.8.8.8/stream/test/eng/rokuvlsd.m3u8
#EXT-X-STREAM-INFSmiley TongueROGRAM-ID=1, BANDWIDTH=44000, CODECS="mp4a.40.2"
# audio-only stream
http://8.8.8.8/stream/test/eng/rokuvlsd-audio.m3u8


All of the linked playlists had a format that looked like (with more segments than actually shown):

#EXTM3U
#EXT-X-TARGETDURATION:10
#EXT-X-MEDIA-SEQUENCE:563
#EXTINF:10, no desc
http://8.8.8.8/stream/test/eng/00001/rokuhhd_00041.ts
#EXTINF:10, no desc
http://8.8.8.8/stream/test/eng/00001/rokuhhd_00042.ts
#EXTINF:10, no desc
http://8.8.8.8/stream/test/eng/00001/rokuhhd_00043.ts
#EXTINF:10, no desc
http://8.8.8.8/stream/test/eng/00001/rokuhhd_00044.ts
#EXT-X-ENDLIST


Our client had multiple language playlist files where some of the playlists worked and some didn't when running on the same code.

The streams that did work didn't have an audio stream defined in the playlist. However, it seems odd to me that the definition would be causing the issue since the documentation says to just set the MinBandwidth to ignore the audio streams.

After running some tests I found that by removing the following line the stream worked correctly:

# audio-only stream


I would assume that something has changed in the Roku 2 where it fails when trying to parse comments in the m3u8 playlist.
0 Kudos