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: 
kaspareit
Level 7

Akamai's "Universal Streaming" to HLS

Is anyone using this yet?: http://www.akamai.com/dl/brochures/stream_packaging_universal_streaming.pdf
Akamai has rolled out its 'Universal Streaming' which takes a rtmp input and outputs HLS and HDS. The resulting m3u8 seems to work on an iphone, but have not yet had success with the HLS stream on the roku. Granted, I've not used hls before, we currently use smooth streaming.

I'm sure I'm missing something simple...
<contentQuality>SD</contentQuality>
<streamFormat>hls</streamFormat>
<media>
<streamFormat>hls</streamFormat>
<streamQuality>SD</streamQuality>
<streamBitrate>0</streamBitrate>
<streamUrl>http://waterhls-lh.akamaihd.net/i/wateroflife_1@99013/master.m3u8</streamUrl>
</media>
<synopsis>Live Stream</synopsis>
<genres>Live</genres>
<runtime></runtime>
0 Kudos
11 Replies
bandal
Level 8

Re: Akamai's "Universal Streaming" to HLS

I see streamFormat declared 2 times.
0 Kudos
TheEndless
Level 7

Re: Akamai's "Universal Streaming" to HLS

Actually, I believe the one above media is the one that needs to stay. You can't mix stream formats, so there should only be one per content element, not per media element.
My Channels: http://roku.permanence.com - Twitter: @TheEndlessDev
Instant Watch Browser (NetflixIWB), Aquarium Screensaver (AQUARIUM), Clever Clocks Screensaver (CLEVERCLOCKS), iTunes Podcasts (ITPC), My Channels (MYCHANNELS)
0 Kudos
kaspareit
Level 7

Re: Akamai's "Universal Streaming" to HLS

Actually the problem is the stream. Roku doesn't like the m3u8 playlist being served by Akamai, but I don't know why. Other test streams are working.

receiving this error:
showHomeScreen | msg = ConnectionContext failure | index = 0
Video status: 0 0
showHomeScreen | msg = There was an error in the HTTP response. This could mean
that malformed HTTP headers or an HTTP error code was returned.
| index = -1
Video request failure: -1 0
0 Kudos
Roku Employee
Roku Employee

Re: Akamai's "Universal Streaming" to HLS

roSystemLog can be a useful tool when these types of problems. I tinkered with this a bit last night and was seeing lots of 404s.

---- AA ----
Status: ok
LogType: http.connect
TargetIp: 209.170.78.208
HttpCode: 200
Datetime: ?roDateTime?
OrigUrl: http://waterhls-lh.akamaihd.net/i/wateroflife_1@99013/master.m3u8
Url: http://waterhls-lh.akamaihd.net/i/wateroflife_1@99013/master.m3u8
Method: GET
------------
---- AA ----
Status: httperror
LogType: http.error
TargetIp: 209.170.78.208
HttpCode: 404
Datetime: ?roDateTime?
OrigUrl: http://waterhls-lh.akamaihd.net/i/wateroflife_1@99013/index_2_av-b.m3u8?sd=10&rebase=on
Url: http://waterhls-lh.akamaihd.net/i/wateroflife_1@99013/index_2_av-b.m3u8?sd=10&rebase=on
Method: GET
------------
---- AA ----
Status: httperror
LogType: http.error
TargetIp: 209.170.78.208
HttpCode: 404
Datetime: ?roDateTime?
OrigUrl: http://waterhls-lh.akamaihd.net/i/wateroflife_1@99013/index_2_av-p.m3u8?sd=10&rebase=on
Url: http://waterhls-lh.akamaihd.net/i/wateroflife_1@99013/index_2_av-p.m3u8?sd=10&rebase=on
Method: GET
------------
---- AA ----
Status: ok
LogType: http.connect
TargetIp: 209.170.78.208
HttpCode: 200
Datetime: ?roDateTime?
OrigUrl: http://waterhls-lh.akamaihd.net/i/wateroflife_1@99013/index_1_av-b.m3u8?sd=10&rebase=on
Url: http://waterhls-lh.akamaihd.net/i/wateroflife_1@99013/index_1_av-b.m3u8?sd=10&rebase=on
Method: GET
------------
20
0
Stream started.
isStreamStarted
---- AA ----
StreamBitrate: 0
MeasuredBitrate: 1246
Url: http://waterhls-lh.akamaihd.net/i/wateroflife_1@99013/master.m3u8
IsUnderrun: false
------------
---- AA ----
Status: ok
LogType: http.connect
TargetIp: 209.170.78.208
HttpCode: 200
Datetime: ?roDateTime?
OrigUrl: http://waterhls-lh.akamaihd.net/i/wateroflife_1@99013/index_1_av-p.m3u8?sd=10&rebase=on
Url: http://waterhls-lh.akamaihd.net/i/wateroflife_1@99013/index_1_av-p.m3u8?sd=10&rebase=on
Method: GET
------------
---- AA ----
Status: httperror
LogType: http.error
TargetIp: 209.170.78.208
HttpCode: 404
Datetime: ?roDateTime?
OrigUrl: http://waterhls-lh.akamaihd.net/i/wateroflife_1@99013/index_2_av-b.m3u8?sd=10&rebase=on
Url: http://waterhls-lh.akamaihd.net/i/wateroflife_1@99013/index_2_av-b.m3u8?sd=10&rebase=on
Method: GET
------------
---- AA ----
Status: httperror
LogType: http.error
TargetIp: 209.170.97.114
HttpCode: 404
Datetime: ?roDateTime?
OrigUrl: http://waterhls-lh.akamaihd.net/i/wateroflife_1@99013/index_2_av-p.m3u8?sd=10&rebase=on
Url: http://waterhls-lh.akamaihd.net/i/wateroflife_1@99013/index_2_av-p.m3u8?sd=10&rebase=on
Method: GET
------------
---- AA ----
Status: httperror
LogType: http.error
TargetIp: 209.170.97.114
HttpCode: 404
Datetime: ?roDateTime?
OrigUrl: http://waterhls-lh.akamaihd.net/i/wateroflife_1@99013/segment135828403_1_av-b.ts?sd=10&rebase=on
Url: http://waterhls-lh.akamaihd.net/i/wateroflife_1@99013/segment135828403_1_av-b.ts?sd=10&rebase=on
Method: GET
------------
0 Kudos
kaspareit
Level 7

Re: Akamai's "Universal Streaming" to HLS

Just heard from an Akamai tech and he informs me that their servers should recognize a roku box and serve it the correct hls stream.

...So, now I'm working with akamai's customer care to resolve...
0 Kudos
drazmo
Level 7

Re: Akamai's "Universal Streaming" to HLS

Did you ever get this issue resolved? I am getting the same error message.
0 Kudos
Roku Employee
Roku Employee

Re: Akamai's "Universal Streaming" to HLS

For all the URLs posted on this thread I'm seeing errors like this if I plop it into a web browser:

An error occurred while processing your request.

Reference #181.1de43e17.1372277578.6a38298


which would tend to imply that the URL has expired or that it is not a correctly formatted url.

Known issues with Akamai HLS streaming that may require an Akamai customer to interface with their support contact to resolve:

• Akamai may have an improper config set that results in packaging the HLS segments without the proper SPS/PPS info at the beginning of each fragment. That config means that the segments are not starting with a key frame. Akamai can fixed this on a case-by case basis (in other words, each new customer may have to contact Akamai to get this working). The notable symptoms are macroblocking, image freezes, you may see audio and video buffer underruns as well.

• Akamai's HLS streaming system by default seems to use HTTP 1.0, Roku requires HTTP 1.1, for the keep-alive.

• With at least one of our partners using Akamai, we are still seeing frequent rebuffering, even though the above issues seem to have been fixed for that partner, and this *may* to be due to HLS segments not arriving at the edge servers in a timely fashion. If you are seeing 404 messages, this might be relevant.

Of course, we are also working to make our HLS playback system more resilient.

- Joel
0 Kudos
j_saterfiel
Level 7

Re: Akamai's "Universal Streaming" to HLS

Actually the Akamai HLS stream issue could just be related to the fact you're not setting the cookies on the player from the request of the m3u8 file. Without the cookies akamai won't let the player play the streams. We had to do a request against the m3u8 file first to get the header and pull the cookie info off of it then pass it into the player for our roku app to be able to play the akamai hls streams. The renditions were not being recognized correctly by roku and the app was just playing the first rendition in the list and never did any adaptation. We manually parsed out the renditions from the m3u8 file and passed the streams to the roku player manually and now the roku will meter the network and select the right stream on the start of playback instead of the user having to wait for the hls stream to adapt to the right rendition.
0 Kudos
bosborne
Level 7

Re: Akamai's "Universal Streaming" to HLS

Do you have any sample code for that?
0 Kudos