top | item 9447184

(no title)

jsaxton86 | 11 years ago

Interesting post! The author mentions that the first step was to "receive this input and to generate HLS output to a known folder". I have a couple questions about this step:

1: Did they re-encode the input? Or just repackage it?

2: I'm unfamiliar with EvoStream, but if it is ingesting RTMP and outputting HLS, why did Globo need to bother generating an HLS manifest? Couldn't they just use the one EvoStream created?

discuss

order

jbochi|11 years ago

I am glad you liked. I am not the author of the blog post, but I was a member of the team.

1: We just repackage it. 2: The problem is that EvoStream stores the manifests and chunks locally and we needed high availability. That's why we use an external data storage. We have had up to 30 simultaneous streams, with 7 bitrates each and 2 hours of DVR.

flavioribeiro|11 years ago

Just adding one extra information, building the playlist on our side enabled us to define the DVR window (how many time one can seek back on the video). Since we built both the server and client side, it was also possible to add tags to the stream and we did it. tl;dr; It was possible to control the adaptive streaming on the server side.

When our CDN was very crowded, one tag on the HLS playlist was able to direct users to a lower quality, preventing all the users to fight for the same bandwidth and avoiding rebuffering events.