Разработка под Smart TV: воспроизведение видео на платформе LG WebOS Smart TV 17.10.2016

На этот раз мы поговорим о воспроизведении видео на платформе LG WebOS, a именно о DRM, DASH и 4K.

Воспроизведение видео на данной платформе основано на использовании HTML5 видео тега с настроенным соответствующим образом элементом source. Настройка воспроизведения того или иного типа кодирования на LG WebOS как правило осуществляется правильной установкой атрибута type элемента source.

Для воспроизведения DRM потребуется предварительно инициализировать DRM-агент, используя вызовы соответствующего сервиса Luna, а также дополнить значение атрибута type тега source дополнительным параметром mediaOption с информацией об используемом типе DRM. Все эти манипуляции потребуют от вас изрядного количества строк кода. Однако, стоит отметить, что весь процесс инициализации подробно описан в документации. За это разработчикам платформы можно сказать отдельное спасибо. WebOS поддерживает воспроизведение контента, кодированного Verimatrix, Widevine Classic, а также PlayReady (HSS).

Стриминг DASH не поддерживается официально, однако на практике WebOS без проблем воспроизводит большинство некодированного DASH контента — достаточно указать соответствующий MIME-type для элемента source. WebOS поддерживает воспроизведение 4K контента кодированного в DASH. Никаких дополнительных настроек для его воспроизведения не потребуется. Основной проблемой для реализации поддержки воспроизведения UHD в приложении является определение поддержки 4K телевизором. Признаки поддержки 4K меняются от версии к версии, а для более менее точного определения данной фичи часто необходимо ориентироваться на модель телевизора непосредственно.

Что касается возможности управлять битрейтом адаптивного стриминга вручную, то, согласно документации, это возможно путём установки соответствующих настроек mediaOption.

Из недостатков платформы стоит отметить отсутсвие механизма обработки ошибок воспроизведения. Ошибки следует ловить непосредственно на элементе source, а документация по кодам этих ошибок отсутствует.

by 17.10.2016