Roku Developer Program

Join our online forum to talk to Roku developers and fellow channel creators. Ask questions, share tips with the community, and find helpful resources.
cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
unDEFER
Streaming Star

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-INF:PROGRAM-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
Streaming Star

Re: Is HLS broken on Roku 2?

Build 1275 fixes our problems. Thank you.
0 Kudos
id10t1
Visitor

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-INF:PROGRAM-ID=1, BANDWIDTH=924000
http://8.8.8.8/stream/test/eng/rokuhsd.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1, BANDWIDTH=1364000
http://8.8.8.8/stream/test/eng/rokuvhsd.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1, BANDWIDTH=2134000
http://8.8.8.8/stream/test/eng/rokuhhd.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1, BANDWIDTH=484000
http://8.8.8.8/stream/test/eng/rokumsd.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1, BANDWIDTH=264000
http://8.8.8.8/stream/test/eng/rokulsd.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1, BANDWIDTH=165000
http://8.8.8.8/stream/test/eng/rokuvlsd.m3u8
#EXT-X-STREAM-INF:PROGRAM-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