Сайт | Скачать | Видео | Wiki

Автор Тема: Компиляция ffmpeg и медиаплееров c аппаратным ускорением  (Прочитано 105 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Онлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 17753
  • Репутация: +137/-0
    • PuppyRus-A
Видео (особенно в разрешении 1080) ощутимо тормозит в mpv , mplayer vlc
Причем во всех дистрах от 150balbes и арче
В этих же дистрах коди , скомпиленный с поддержкой libMali не тормозит

Попробовал скомпилить аналогичным образом ffmpeg и mpv - см. аттач - без улучшений
Выдрал ключи компиляции и src из alexelec -  без улучшений

Попробовал посадить  дистр ubuntu64-16.04.2lts-mate-odroid-c2-20170301.img (спец сборка для odroid-c2 на том же чипе) на проверенное ядро - не стартует
Попробую выдрать из него ffmpeg и пр.
Больше идей нет

Онлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 17753
  • Репутация: +137/-0
    • PuppyRus-A
https://github.com/OtherCrashOverride/c2play
https://forum.odroid.com/viewtopic.php?t=23143

libasound2-dev - вероятно в арче это https://openmandriva.pkgs.org/cooker/openmandriva-main-release-i586/libasound2-1.1.3-1-omv3001.i586.rpm.html alsa-lib

Не компилится:
../../src/Media/MediaSourceElement.cpp:369:12: ошибка: нет декларации «CODEC_ID_MOV_TEXT» в этой области видимости
      case  CODEC_ID_MOV_TEXT:
            ^~~~~~~~~~~~~~~~~
../../src/Media/MediaSourceElement.cpp:374:12: ошибка: нет декларации «CODEC_ID_DVB_TELETEXT» в этой области видимости
      case  CODEC_ID_DVB_TELETEXT:
            ^~~~~~~~~~~~~~~~~~~~~
../../src/Media/MediaSourceElement.cpp:379:12: ошибка: нет декларации «CODEC_ID_SRT» в этой области видимости
      case  CODEC_ID_SRT:
            ^~~~~~~~~~~~
make[1]: *** [c2play.make:182: obj/Debug/c2play/MediaSourceElement.o] Ошибка 1
make: *** [Makefile:17: c2play] Ошибка 2

Оффлайн balbes150

  • Пользователь
  • **
  • Сообщений: 41
  • Репутация: +1/-0
Я тут поковырял эту тему не много и вот к чему пришёл (все на уровне моих домыслов).
Есть несколько направлений для обеспечения видеоускорения :
- ускорение для fbdev (этот набор используется в LE и в KODI).
- ускорение для X-сов.

Элементы для обеспечения поддержки.
- модуль mali для ядра (исходники в свободном доступе) собирается под конкретное ядро
- бинарная библиотека libMali.so - поставляется в готовом виде и завязана на конкретную версию исходников для модуля
- заголовки\описатели, которые используются при сборке стороннего софта с поддержкой видеоускорения через libMali.
Все эти элементы являются взаимозависимыми, стоит изменить (использовать из другого набора) хоть что-то - нет ускорения, либо оно работает не правильно (если что-то из набора совпадает).

По не проверенной инфе - libMali может быть заточена на конкретный тип платформы\процессор и на других может не запуститься или будет работать не правильно.
Кстати, даже расположение файлов в определённых каталогах тоже может влиять, если собиралось с этими параметрами. Например, в первых вариантах LE libmali помещали в свой подкаталог в lib и прописывали в конфиг указание на него и строили индексы под него.

В общем тема не самая простая, придётся вникать в нюансы.

Кстати, KODI работает не через X-вариант, а напрямую, через fbdev (он сам выступает в роли DE) и желательно запускать его как самостоятельную оболочку. Кроме того, он использует еще несколько специфичных библиотек для аппаратного ускорения видео и звука, которые компиляться под него.

Онлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 17753
  • Репутация: +137/-0
    • PuppyRus-A
Есть несколько направлений для обеспечения видеоускорения :
- ускорение для fbdev (этот набор используется в LE и в KODI).
- ускорение для X-сов.
Ну так в Х как раз и используется свой (s905) драйвер fbdev
Получается аппаратное ускорение обеспечивает libMali
Одинаковый рецепт компиляции с libMali в одном и том же окружении в случае Коди дает ускорение. С другими плеерами - нет. По опыту i686 (где ускорение дает включение vdpau в ffmpeg) - в эту сторону и надо копать
Возможно это вообще так не решить. ARM репы юбунты а арча тоже не дураки делают. Там же без ускорения...
Хочу еще из odrobian выдернуть ffmpeg+mpv - может там с ускорением

https://github.com/OtherCrashOverride/c2play - возможно самый короткий путь к счастью. Помогите скомпилить или найти бинарник.

KODI работает не через X-вариант, а напрямую, через fbdev (он сам выступает в роли DE) и желательно запускать его как самостоятельную оболочку.
Это уже понял. Переделал в 2А на запуск коди с перестартом Х. Иначе от артефактов не избавиться

Онлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 17753
  • Репутация: +137/-0
    • PuppyRus-A
Нашел бинарник https://forum.armbian.com/index.php?/topic/2419-armbian-for-amlogic-s905-and-s905x/&page=8#comment-18796
Пробовал вместе со всем комплектом и без - не работает. Артефакты по экрану и падает

Дочитал тему https://forum.odroid.com/viewtopic.php?f=136&t=23143&start=150
Что то совсем не просто

Вывод - надо ждать пока программеры доведут до ума c2play или добавят поддержку mali в прочие плееры.
Пока для тяжелых файлов юзать коди. 

Оффлайн balbes150

  • Пользователь
  • **
  • Сообщений: 41
  • Репутация: +1/-0
Одинаковый рецепт компиляции с libMali в одном и том же окружении в случае Коди дает ускорение. С другими плеерами - нет.
Ты уверен, что одинаковый ? Исходники могут содержать уже нужные заголовки или свои доп. настройки для компиляции с использованием ускорения. Тут нужно всё разбирать и связанные библиотеки и компоненты.
Там же без ускорения...
По банальной причине - всё очень сильно завязано на конкретную сборку ядра и библиотеку, то бишь программа с ускорением + ядро + библиотека + драйвер должны собираться вместе, и на другом ядре (и чуть другом железе) - нет ускорения. Поэтому сборщики и не заморачиваются - слишком много нюансов для поддержки, не возможно всё отследить. Плюс лицензионные заморочки. В свое время на сайте Amlogic на некоторое время появились либы под s912 для Linux (не адройдные, а прямые под Линукс), но очень быстро исчезли, т.к. Amlogic не купили лицензию для Linux.
Помогите скомпилить или найти бинарник.
Надо посмотреть.
Вывод - надо ждать пока программеры доведут до ума c2play или добавят поддержку mali в прочие плееры.
Дык надо писать им про это и помогать.

Онлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 17753
  • Репутация: +137/-0
    • PuppyRus-A
Ты уверен, что одинаковый ?
Нет. Я не гуру компиляции. Если можешь - помоги
надо писать им про это и помогать.
Боюсь я не дорос до такого уровня. На англ. вряд ли смогу общаться
У тебя , вроде получается. Надежда на тебя