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

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

1 ответов


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

Http Live Streaming ака 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.яблоко.mpegURL или приложение / x-mpegURL

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

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

самый простой способ создать контент HLS-использовать инструменты Apple, последняя версия Sorenson Squeeze, Эпизод telestreamбыл, и многих облачных кодирование провайдеров. Вы начинаете с контента, который кодируете со многими битовыми скоростями. Для Google TV, первая строка в.файл m3u8-это скорость, с которой мы начинаем. Вероятно, лучше всего выбрать поток 1.2 mbps.

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

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

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

кодирование

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

кодирование звука должно быть согласованным во всех потоках. Он-AACv1, он-AACv2, AAC-LC до 48kHz, стерео аудио все приемлемые выборы.

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

кадр

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

** адаптировано из https://developer.apple.com/library/ios/#technotes/tn2224/_index.html