Roku Developer Program

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

HLS performance issues

 We're trying to make premium feel experience for our customers and we're running into the issue of HLS videos on Roku running slow.  Retrieving, fastforward and rewind actions are unacceptably slow. We've already tried with pre-buffering videos on focused item in rowList, as suggested on official site for fast video start, but that's not helping the use case for our application. For some videos it takes over 20 seconds to retrieve or to seek through video, which should not be the case with HLS. 
[/font][/color]

Player setup:
SG screen with Video Node component. 
Sending Cookies in order to play videos and I am setting it in videoNode.content, in HttpHeader.

Content setup:
videoContent = createObject("RoSGNode", "ContentNode")
videoContent.title =  "Some Title"
videoContent.streamformat = "hls" 
videoContent.url = "https://videoUrl.some_path/playlist.m3u8"
videoContent.HttpHeaders = "Cookie: sampleCookieFormat"
m.videoNode.content = videoContent

After that, we are only executing: m.videoNode.control = "play"

Sample m3u8 list format that experience performance issues:

#EXTM3U
#EXT-X-VERSION:3
#EXT-X-INDEPENDENT-SEGMENTS
#EXT-X-STREAM-INF:BANDWIDTH=7714323,AVERAGE-BANDWIDTH=7714323,CODECS="avc1.4d4028,mp4a.40.2",RESOLUTION=1920x1080,FRAME-RATE=29.970
some_path_HLS.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=5187873,AVERAGE-BANDWIDTH=5187873,CODECS="avc1.4d4028,mp4a.40.2",RESOLUTION=1920x1080,FRAME-RATE=29.970
some_path_HLS.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=3192556,AVERAGE-BANDWIDTH=3192556,CODECS="avc1.4d401f,mp4a.40.2",RESOLUTION=1280x720,FRAME-RATE=29.970
some_path_HLS.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=2596315,AVERAGE-BANDWIDTH=2596315,CODECS="avc1.4d401f,mp4a.40.2",RESOLUTION=1280x720,FRAME-RATE=29.970
some_path_HLS.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=2107252,AVERAGE-BANDWIDTH=2107252,CODECS="avc1.4d401f,mp4a.40.2",RESOLUTION=1024x576,FRAME-RATE=29.970
some_path_HLS.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=1618064,AVERAGE-BANDWIDTH=1618064,CODECS="avc1.4d401f,mp4a.40.2",RESOLUTION=852x480,FRAME-RATE=29.970
some_path_HLS.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=1090813,AVERAGE-BANDWIDTH=1090813,CODECS="avc1.77.30,mp4a.40.2",RESOLUTION=768x432,FRAME-RATE=29.970
some_path_HLS.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=1090061,AVERAGE-BANDWIDTH=1090061,CODECS="avc1.77.30,mp4a.40.2",RESOLUTION=640x360,FRAME-RATE=29.970
some_path_HLS.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=1088809,AVERAGE-BANDWIDTH=1088809,CODECS="avc1.4d4015,mp4a.40.2",RESOLUTION=426x240,FRAME-RATE=29.970
some_path_HLS.m3u8

Note: URLs are changed because of the NDA.

Any ideas or suggestions? Thank you![/font][/color]
0 Kudos