RDeveloper1
Visitor
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-18-2016
10:36 AM
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]
[/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]