Jump to content
Калькуляторы

Как доставлять HLS пользователям Про детали реализации HLS

Меня тут спросили, чем в erlyvideo HLS сделан лучше чем в wowza. Рассказываю.

 

 

Во-первых, что такое HLS. Это нарезанный на сегменты MPEG-TS поток с h264/aac, пригодный к прожевыванию в айпадах, приставках и флеш-плеере (да-да, в нём тоже).

 

Во-вторых, чем порадовать провайдера? Трафиком, конечно же. Уникастная доставка жрет его изрядно, но снимает всякую головную боль с настройкой мультикаста и обеспечением равномерной проходимости UDP.

А так же делает возможным вещание за пределы собственной сети.

 

 

Как HLS устроен в erlyvideo. Приходящий поток режется на сегменты, которые укладываются на диск по уникальному имени: ort/2012/09/15/45/37/15-4535.ts

 

Это важный момент, потому что когда приходит клиент и запрашивает прямой эфир, эти сегменты можно кешировать по пути в varnish или nginx.

Когда сервер рестартится, то имена не становятся невалидными. Не происходит сброса нумерации, как не будем говорить где и имена всё ещё валидные.

 

Более того, когда клиент просит показать ему архив, формируется плейлист со ссылками на сегменты, которые уже лежат в промежуточном кеше, потому что их посмотрели в лайве.

В итоге, именование контента для архивного просмотра и прямого эфира одинаковое и глобальное во времени.

 

При этом архив (произвольной глубины) фактически раздается nginx-ом, который тут все уже умеют настраивать, что бы он был быстр и хорош.

 

Хозяева ресурса довольны, нагрузка на раздачу сильно падает.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.