Мы недавно получили посылку от партнеров в Тайване компании
Realtek. Внутри была плата Hercules OTT 32-битная, с памятью на 2
Гб и предустановленной ОС Android 9. Посмотрим, что она умеет и как
ее можно использовать для разработки новых ТВ-приставок.
Плата Hercules OTT представляет собой Android IPTV box, который
воспроизводит видео любых форматов с максимальным разрешением 4K.
Обеспечена поддержка стриминговых сервисов Youtube, Netflix и др.
посредством dash и hls. Будут работать и любые другие приложения
для Android, такие как приложения аудио-видеозвонков и конференций.
Однако с играми будут проблемы из за неудобства управления
(придется подключать геймпад).
Realtek представила платы на базе чипа RTD1395 еще в 2018 году, их
задействовали в своих абонентских устройствах операторы IP и
кабельного телевидения, а также программисты, которые разрабатывают
ПО для ТВ-приставок. Чип RTD1395 с четырьмя ядрами ARM Cortex-A53 и
граф. процессором Mali-470 стал тогда более дешевой альтернативой
для других моделей RTD1295 и RTD1296, но при этом поддерживал те же
возможности работы с видео 4K. Сейчас аналогичные решения есть у
Amlogic, Mediatek и других чип-вендоров, но о них мы расскажем в
другой раз.
А сейчас сфокусируемся на нашей посылке.
Тестируем железо на плате
Так как плата Hercules ОТТ является отладочной, мы проверяли только
физические способности чипа.
Итак, характеристики RTD1395ES:
- 4-ядерный ARM Cortex-A53
- Графический процессор ARM Mali-470 MP4
- Декодер H.265 4K 60 fps, VP9 4K 60 fps, H.264 4K 30 fps
- Кодировщик H.264 1080P 60 fps
- HDR10, HLG, TCH Prime, Dolby Vision, HDR10+
- USB2.0 хост/устройство
- HDMI Tx v2.0b + CEC
- 10/100 MAC и PHY + Gigabit Ethernet MAC
- PCIe 2.0
- SGMII
- SDIO 3.0 и SD 3.0
- I2S ввод/вывод
- S/PDIF вывод
Результаты тестирования платы:
- 2 х USB 2.0 оба работают
- 1 х Ethernet 100 Мбитный порт работает
- 1 х HDMI работает
- 1 х S/PDIF работает
- 1 х 3,5 мм аудиоразъем работает
- 1 х слот для SD-карт работает
- 1 х ИК-порт так как родного пульта у нас не было, а пульт от
Amlogic не подошёл, то протестировать не смогли
- 1 х USB Type-C только как питание
- 1 х WIFI/Bluetooth-модуль: wifi работает, bluetooth не
проверяли
Питание платы реализовано по кабелю Type-C на 5 Вольт так как
отдельный разъём питания не распаян.
Для навигации в Android мы пробовали использовать пульт Opal с
usb-свистком, который прежде работал со всеми IPTV-коробками, но на
этой работать он отказался и даже не определялся в lsusb. Из-за
этого пришлось пользоваться клавиатурой/мышью, что не очень удобно
из-за отсутствия кнопок Back и Menu.
Сам процессор во время работы прилично греется, поэтому мы
прилепили радиатор в виде тормозной колодки (см. на фото выше).
Тестируем воспроизведение видео
1. Запускаем 56 тестовых роликов
Проверяем возможности декодирования с помощью тестовых видео с
сайта
http://jell.yfish.us/
Открыть список из 56 видеофайлов для проверки:
jellyfish-3-mbps-hd-h264.mkv
jellyfish-3-mbps-hd-hevc-10bit.mkv
jellyfish-3-mbps-hd-hevc.mkv
jellyfish-5-mbps-hd-h264.mkv
jellyfish-5-mbps-hd-hevc.mkv
jellyfish-10-mbps-hd-h264.mkv
jellyfish-10-mbps-hd-hevc-10bit.mkv
jellyfish-10-mbps-hd-hevc.mkv
jellyfish-15-mbps-hd-h264.mkv
jellyfish-15-mbps-hd-hevc.mkv
jellyfish-20-mbps-hd-h264.mkv
jellyfish-20-mbps-hd-hevc-10bit.mkv
jellyfish-20-mbps-hd-hevc.mkv
jellyfish-25-mbps-hd-h264.mkv
jellyfish-25-mbps-hd-hevc.mkv
jellyfish-30-mbps-hd-h264.mkv
jellyfish-30-mbps-hd-hevc.mkv
jellyfish-35-mbps-hd-h264.mkv
jellyfish-35-mbps-hd-hevc.mkv
jellyfish-40-mbps-hd-h264.mkv
jellyfish-40-mbps-hd-hevc-10bit.mkv
jellyfish-40-mbps-hd-hevc.mkv
jellyfish-45-mbps-hd-h264.mkv
jellyfish-45-mbps-hd-hevc.mkv
jellyfish-50-mbps-hd-h264.mkv
jellyfish-50-mbps-hd-hevc.mkv
jellyfish-55-mbps-hd-h264.mkv
jellyfish-55-mbps-hd-hevc.mkv
jellyfish-60-mbps-hd-h264.mkv
jellyfish-60-mbps-hd-hevc-10bit.mkv
jellyfish-60-mbps-hd-hevc.mkv
jellyfish-70-mbps-hd-h264.mkv
jellyfish-70-mbps-hd-hevc.mkv
jellyfish-80-mbps-hd-h264.mkv
jellyfish-80-mbps-hd-hevc.mkv
jellyfish-90-mbps-hd-h264.mkv
jellyfish-90-mbps-hd-hevc-10bit.mkv
jellyfish-90-mbps-hd-hevc.mkv
jellyfish-100-mbps-hd-h264.mkv
jellyfish-100-mbps-hd-hevc.mkv
jellyfish-110-mbps-hd-h264.mkv
jellyfish-110-mbps-hd-hevc.mkv
jellyfish-120-mbps-4k-uhd-h264.mkv
jellyfish-120-mbps-4k-uhd-hevc-10bit.mkv
jellyfish-140-mbps-4k-uhd-h264.mkv
jellyfish-140-mbps-4k-uhd-hevc-10bit.mkv
jellyfish-160-mbps-4k-uhd-h264.mkv
jellyfish-160-mbps-4k-uhd-hevc-10bit.mkv
jellyfish-180-mbps-4k-uhd-h264.mkv
jellyfish-180-mbps-4k-uhd-hevc-10bit.mkv
jellyfish-200-mbps-4k-uhd-h264.mkv
jellyfish-200-mbps-4k-uhd-hevc-10bit.mkv
jellyfish-250-mbps-4k-uhd-h264.mkv
jellyfish-250-mbps-4k-uhd-hevc-10bit.mkv
jellyfish-300-mbps-4k-uhd-hevc-10bit.mkv
jellyfish-400-mbps-4k-uhd-hevc-10bit.mkv
Из всех протестированных видео не запустились только 3 файла из-за
краша в realtek.rvsd@1.0-service:
jellyfish-250-mbps-4k-uhd-hevc-10bit.mkv
jellyfish-300-mbps-4k-uhd-hevc-10bit.mkv
jellyfish-400-mbps-4k-uhd-hevc-10bit.mkv
Лог ошибки воспроизведения:
DEBUG (4077 4077) Fpid: 1815, tid: 4069, name: rvsd@1.0-servic >>> /vendor/bin/hw/vendor.realtek.rvsd@1.0-service <<< DEBUG (4077 4077) Fsignal 6 (SIGABRT), code -6 (SI_TKILL), fault addr -------- DEBUG (4077 4077) FAbort message: 'FORTIFY: pthread_mutex_destroy called on a destroyed mutex (0xa7b1b06c)'
В 53 видеофайлах, которые успешно открылись в процессе
тестирования, не было замечено подвисаний и пропуска кадров.
Возможно, чип способен осилить и более сложные по битрейту видео,
но мы этого не узнаем.
Скриншоты работы видеоплеера от Realtek получить не удалось.
Вероятно, дело в том что плеер реализован не средствами Android, а
имеет доступ напрямую к фреймбуферу, чтобы защитить контент от
пиратства. В VLC и ExoPlayer скриншоты делаются без проблем.
При тестировании этих же видео в VLC файлы h264 играет до 180
Мбит/с, дальше уже не успевает подготавливать кадры. HEVC перестаёт
воспроизводить на 120 Мбит/с (судя по логам крашей из-за нехватки
памяти).
2. Запускаем тест Geekbench3
В тесте Geekbench3 система набрала 523/1656 баллов
SingleCore/MultiCore, что примерно равно производительности чипа
Amlogic S905 (500/1400) а в multicore даже немного опережает. Но
при этом значительно отстаёт от Amlogic S905X2 (700/2200).
3. Проверяем разные fps
Мы тестировали видео с разной кадровой частотой (fps): 23.976, 24,
25, 50, 59.94, 60. С этим проблем не возникло.
Варианты видео с прогрессивной и чересстрочной развёрткой также
воспроизводятся успешно.
4. Запускаем стримы HLS и Mpeg-Dash
Также протестировали воспроизведение HLS и Mpeg-Dash-стримов с
помощью нескольких способов, а именно:
Способ 1. Воспроизведение стримов через агрегатор фильмов HD
VideoBox, в котором при запуске видео можно выбрать плеер, в нашем
случае VideoPlayer.
Способ 2. Воспроизведение HLS и Mpeg-Dash- стримов через
youtube-приложение. Для тестирования брали ролики 4K 60 fps.
Просадок кадров или затормаживания не заметили. На всех скриншотах
из youtube получился чёрный экран вместо картинки, вероятно, из-за
защиты контента.
На SmartYoutube скриншоты делаются корректно.
Способ 3. Скормить mpd- и m3u8-файлы напрямую плееру через
файловый менеджер или браузер никак не удалось, но в некоторых
случаях браузер способен воспроизводить видео.
Способ 4. Воспроизведение стримов DASH и HSL через Exoplayer
Demo. Все видео, ссылки на которых были живы, воспроизводились
успешно. Единственное, что не воспроизводилось защищённые видео
Widevine, которые сопровождались надписью Это устройство не
поддерживает требуемую DRM-схему (This device does not support the
required DRM scheme)
5. Встроенные тесты видео от Realtek
Также на плате Hercules ОТТ есть и собственное предустановленное
приложение для тестирования воспроизведения сразу нескольких видео.
В ходе тестирования выяснилось, что в режиме, когда экран делится
на 2 или в режиме картинка-в-картинке, более-менее сносно
воспроизводится видео только с битрейтом до 45 Мбит/с и желательно
MPEG4:
Видео с низким битрейтом 360 кбит/с, но 60 fps не осилил даже 2
видео одновременно.
Видео с низким битрейтом 670 кбит/с и 15 fps и разрешением 320x240
пикселей осилил одновременно 8 видео, при 9 и более некоторые могли
не запуститься и кадры в видео терялись.
Также на плате Realtek предустановлена программа Encoder, которая
позволяет транскодировать до 4 видео одновременно из mp4 в
AVC-ts-файлы.
Проверили, что она может транскодировать:
1 видео 1080p60fps (скорость транскодирования около 54 fps)
2 параллельных видео 1080p30fps (скорость транскодирования около 23
fps)
6. Запускаем приложение OpenCamera
Для последней проверки запускаем приложение OpenCamera и подключаем
usb-веб-камеру Logitech С920 для тестирования кодирования
видеозаписи. Выяснили, что в формате AVC на плате можно записать
видео до 1080p27fps. В формате HEVC записать видео не удалось.
Выводы
Тесты показали, что в целом чип RTD1395 соответствует заявленным
показателям. Плату Hercules ОТТ можно использовать для разработки и
отладки устройств типа Android TV, дисплеев Miracast and Intel
Wireless, ТВ-приставок и стриминговых OTT-плееров. Также на ней
можно разрабатывать прошивку на основе AOSP для операторов
IP-телевидения.
А для полной объективной оценки этого решения можно еще изучить
конкурентов с аналогичными характеристиками, таких как Amlogic
s905x и более новый S905X2.