HTTP Live Streaming плеер

HLS-плеер

HTTP Live Streaming плеер

 

Помимо разработки серверной архитектуры, аппаратного и программного обеспечения для ТВ-приставок, команда Promwad ODC / DTV предлагает готовое модульное решение на основе протокола HLS.

Вы можете заказать как готовое решение, так и в кратчайшие сроки получить кастомизированный HTTP Live Streaming плеер с требуемым набором функций. 

Проблема

На одном из проектов по разработке ПО для Android-приставки, воспроизводящей ТВ-каналы посредством протокола HLS мы обнаружили, что она не в полной мере реализовывала все требуемые функции.

Функции перемотки воспроизведения (TimeShift), переключения языков аудио и поддержка HLS-субтитров поддерживались в (Am)NuPlayer нестабильно. 

Наше решение

Изначально мы доработали Am-Httplive. Этот встроенный модуль отвечает за скачивание HLS-потоков и предоставление данных плееру. Однако, из-за сложной и запутанной логики исходного кода особых результатов достичь не удалось.

В результате, команда Promwad разработала собственную библиотеку HLS, которая полностью реализует весь набор требуемых функций и способна работать не только с (Am)NuPlayer, но и потенциально подключаться к любой другой реализации медиаплеера.

hls player promwad

Библиотека HLS: обзор архитектуры

 


HLS Download Manager

Основной класс, отвечающий за скачивание и хранение информации о всех возможных дорожках hls-потока, открытия дорожки по запросу, запуска и координации процесса скачивания плейлистов и сегментов всех открытых треков. Осуществляет переключение качества. 


Media Downloader

Класс для закачивания данных для конкретной открытой дорожки. У класса 2 основных команды - updateUrl и downloadNext. MediaContainer может уведомлять клиента о новых данных и отдавать ему эти данные сразу после начала скачивания. Так что клиент (плеер) может начинать проигрывание не дожидаясь окончания скачивания первого сегмента.


Media Container

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

Технологии

Live TV, HLS, AOSP, AMLogic S905x, Android, iOS, DVB/VOD/OTT

Иван Кутень

«Для библиотеки HLS с использованием GoogleTest также готовы различные тесты, позволяющие проверить как функциональность всей библиотеки, так и отдельных ее модулей. Библиотека HLS написана на C++ и предоставляет API для взаимодействия с плеером».

— Кирилл Зут, начальник отдела ODC DTV Promwad

Наши проекты для цифрового ТВ

Нуждаетесь в готовом HTTP Live Streaming решении?

Расскажите о своей задаче. Мы ответим вам сегодня или на следующий рабочий день.