Как кодировать контент для Google TV с помощью HLS?

HLS - это функция Google TV 3.2, какой лучший способ кодировать мой контент для просмотра на Google TV?

Ответы

Ответ 1

Как реализовать HLS для Google TV

Http Live Streaming aka HLS - это стандарт потоковой передачи мультимедийного контента (аудио и видео), поддерживаемый Google TV.

Есть много интересных функций, которые идут с HLS. Основные из них: 1) Адаптивная потоковая передача - автоматически адаптируется к загруженности или доступности полосы пропускания. 2) Устойчивость к временным сбоям в сети. 3) Нет специальной конфигурации для вашего сервера, маршрутизаторов или брандмауэров. Это просто HTTP 1.1 4) Легко поддерживается сетями доставки контента 5) Поддерживается потоковая передача в реальном времени (подробнее в более длинной статье) 6) Поддержка видео-тегов HTML5 в Chrome для Google TV. 7) Дополнительное шифрование AES (подробнее в более длинной статье).

В Google TV HLS - это стандартный протокол, вы просто помещаете свой URL в любой из API-интерфейсов воспроизведения мультимедиа, таких как MediaPlayer, VideoView и т.д. Он просто работает.

Компоненты файла HLS

.m3u8 - Текстовый манифест или файл списка воспроизведения (может быть обновлен для живого контента) - вариант списка воспроизведения обычно указывает на отдельные манифесты, которые также заканчиваются .m3u8 MIME-тип: vnd.apple.mpegURL или application/x-mpegURL

.ts - Транспортный поток MPEG 2 - обычно 5-10 секунд видео и аудио данных. MIME Тип: видео /MP2T

Создание контента для HLS

Самым простым способом создания контента HLS является использование инструментов Apple, последней версии Sorenson Squeeze, Telestreams Episode и многих поставщиков облачного кодирования. Вы начинаете с контента, который вы кодируете на многих скоростях. Для Google TV первая строка в файле .m3u8 - это скорость, с которой мы начинаем. Вероятно, лучше выбрать поток 1,2 Мбит/с.

Google TV поддерживает протокол HLS версии 3 начиная с версии прошивки Google TV 3.2.

Ваши URL содержания должны содержать символы ".m3u8" внутри URL. Если URL-адрес не заканчивается на ".m3u8", система выполнит как минимум 2 запроса перед воспроизведением, а тип списка воспроизведения MIME должен быть одним из "application/vnd.apple.mpegurl" или "application/x-mpegurl".

Примечание. В настоящее время Google TV не поддерживает переключение кодеков, поэтому в рекламных сегментах должна использоваться та же кодировка, что и в основном контенте. Конечно, разработчики могут приостановить воспроизведение HLS, воспроизвести некоторый другой контент, а затем возобновить воспроизведение HLS, чтобы обойти это.

кодирование

Кодирование контента - это искусство и наука. Лучший выбор очень сильно зависит от вашего контента, скорости перемещения объектов на фоне и многих других элементов, которых слишком много, чтобы помещать их в простую публикацию. Это также зависит от целевых устройств. Приведенные ниже настройки предназначены для оптимизации под Google TV. На старых устройствах могут потребоваться другие/дополнительные кодировки. Помните, что для определенных типов кодирования в коммерческих целях может потребоваться лицензия и/или выплата роялти.

Аудиокодирование должно быть одинаковым для всех потоков. HE-AACv1, HE-AACv2, AAC-LC до 48 кГц, стереозвук - все это приемлемые варианты.

16:9 Aspect Ratio**
             Total  Video
Dimensions Bitrate Bitrate Encoding
640x360        640     600 HiP, 4.1
640x360       1240    1200 HiP, 4.1
960x540       1840    1800 HiP, 4.1
1280x720      2540    2500 HiP, 4.1
1280x720      4540    4500 HiP, 4.1
1920x1080     6040    6000 HiP, 4.1
1920x1080     8196    8156 HiP, 4.1


4:3 Aspect Ratio
             Total  Video
Dimensions Bitrate Bitrate Encoding
640x480        640     600 HiP, 4.1
640x480       1240    1200 HiP, 4.1
960x720       1840    1800 HiP, 4.1
1280x960      2540    2500 HiP, 4.1
1280x960      4540    4500 HiP, 4.1

Keyframe

Текущая реализация Google TV использует ключевой кадр только в начале каждого сегмента (для 10-секундного сегмента при 30 кадрах в секунду это будет каждые 300 кадров). Apple предлагает иметь ключевой кадр каждые 90 кадров. (или каждые 3 секунды при 30 кадрах в секунду) Примечание. Частота кадров - сложная тема.

** Адаптировано из https://developer.apple.com/documentation/http_live_streaming/hls_authoring_specification_for_apple_devices