Форум проекта PuppyRus Linux

Обсуждения операционных систем => Процессоры ARM архитектуры => Amlogic s905 => Тема начата: sfs от 18 Апрель 2017, 09:48:12

Название: Компиляция ffmpeg и медиаплееров c аппаратным ускорением
Отправлено: sfs от 18 Апрель 2017, 09:48:12
Видео (особенно в разрешении 1080) ощутимо тормозит в mpv , mplayer vlc
Причем во всех дистрах от 150balbes и арче
В этих же дистрах коди , скомпиленный с поддержкой libMali  (https://github.com/archlinuxarm/PKGBUILDs/blob/master/alarm/kodi-c2/PKGBUILD)не тормозит

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

Попробовал посадить  дистр ubuntu64-16.04.2lts-mate-odroid-c2-20170301.img (спец сборка для odroid-c2 на том же чипе) на проверенное ядро - не стартует
Попробую выдрать из него ffmpeg и пр.
Больше идей нет
Название: Re: Компиляция ffmpeg и медиаплееров c аппаратным ускорением
Отправлено: sfs от 21 Апрель 2017, 16:41:12
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
Название: Re: Компиляция ffmpeg и медиаплееров c аппаратным ускорением
Отправлено: balbes150 от 23 Апрель 2017, 18:36:42
Я тут поковырял эту тему не много и вот к чему пришёл (все на уровне моих домыслов).
Есть несколько направлений для обеспечения видеоускорения :
- ускорение для fbdev (этот набор используется в LE и в KODI).
- ускорение для X-сов.

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

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

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

Кстати, KODI работает не через X-вариант, а напрямую, через fbdev (он сам выступает в роли DE) и желательно запускать его как самостоятельную оболочку. Кроме того, он использует еще несколько специфичных библиотек для аппаратного ускорения видео и звука, которые компиляться под него.
Название: Re: Компиляция ffmpeg и медиаплееров c аппаратным ускорением
Отправлено: sfs от 24 Апрель 2017, 09:56:55
Есть несколько направлений для обеспечения видеоускорения :
- ускорение для 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А на запуск коди с перестартом Х. Иначе от артефактов не избавиться
Название: Re: Компиляция ffmpeg и медиаплееров c аппаратным ускорением
Отправлено: sfs от 24 Апрель 2017, 15:16:19
Нашел бинарник 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 в прочие плееры.
Пока для тяжелых файлов юзать коди. 
Название: Re: Компиляция ffmpeg и медиаплееров c аппаратным ускорением
Отправлено: balbes150 от 25 Апрель 2017, 19:46:01
Одинаковый рецепт компиляции с libMali в одном и том же окружении в случае Коди дает ускорение. С другими плеерами - нет.
Ты уверен, что одинаковый ? Исходники могут содержать уже нужные заголовки или свои доп. настройки для компиляции с использованием ускорения. Тут нужно всё разбирать и связанные библиотеки и компоненты.
Там же без ускорения...
По банальной причине - всё очень сильно завязано на конкретную сборку ядра и библиотеку, то бишь программа с ускорением + ядро + библиотека + драйвер должны собираться вместе, и на другом ядре (и чуть другом железе) - нет ускорения. Поэтому сборщики и не заморачиваются - слишком много нюансов для поддержки, не возможно всё отследить. Плюс лицензионные заморочки. В свое время на сайте Amlogic на некоторое время появились либы под s912 для Linux (не адройдные, а прямые под Линукс), но очень быстро исчезли, т.к. Amlogic не купили лицензию для Linux.
Помогите скомпилить или найти бинарник.
Надо посмотреть.
Вывод - надо ждать пока программеры доведут до ума c2play или добавят поддержку mali в прочие плееры.
Дык надо писать им про это и помогать.
Название: Re: Компиляция ffmpeg и медиаплееров c аппаратным ускорением
Отправлено: sfs от 26 Апрель 2017, 09:22:20
Ты уверен, что одинаковый ?
Нет. Я не гуру компиляции. Если можешь - помоги
надо писать им про это и помогать.
Боюсь я не дорос до такого уровня. На англ. вряд ли смогу общаться
У тебя , вроде получается. Надежда на тебя
Название: Re: Компиляция ffmpeg и медиаплееров c аппаратным ускорением
Отправлено: balbes150 от 29 Апрель 2017, 15:27:25
На англ. вряд ли смогу общаться
Мое общение - это яндекс переводчик + гугл переводчик в паре. С начал в яндексе перевод на буржуйский, потом проверка в гугле, вроде после этого народ понимает, что имел в виду.

Возможно это глупость, я тут подумал, возможно причина того, что в медиаплеерах не срабатывает ускорение при компиляции по рецепту KODI в том, что они рассчитаны на использование драйверов X-сов, а не консольных.

Кстати, сейчас попробовал последний образ Ubuntu на Odroid C2 (Непосредственно на самой железке Odroid C2). Тут так же - в десктопе MATE плеер (vlc) не умеет выводит в полный экран (масштабировать с увеличением из маленького в большое, за что отвечает аппаратное ускорение в KODI), только в том же разрешении, что и ролик. И mpv в Armbian даже лучше справляется, чем в Odroid C2 штатный плеер из образа vlc.
Название: Re: Компиляция ffmpeg и медиаплееров c аппаратным ускорением
Отправлено: sfs от 30 Апрель 2017, 14:54:49
Возможно это глупость, я тут подумал, возможно причина того, что в медиаплеерах не срабатывает ускорение при компиляции по рецепту KODI в том, что они рассчитаны на использование драйверов X-сов, а не консольных.
У меня тоже были такие мысли

(vlc) не умеет выводит в полный экран
Когда делал LAB (http://forum.puppyrus.org/index.php?topic=19840.0) - попробовал vlc - тоже не порадовал
smplayer c mpv вообще выводит окно mpv не внутри себя....
mplayer не вывозит iptv (на любом железе и архитектуре). gnome-mplayer плохо работает с m3u
В итоге так и оставил в LAB голый mpv
А в 2A к нему прикрутил свой гуй

По итогу - наверное надо смотреть в сторону c2play...

А надо ли вообще заморачиваться.... Вряд ли кто-то будет смотреть фильм сидя у моника на табуретке
Удобнее лежа на диване на ТВ в коди
Для "глянуть" mpv и так подходит

И тут мы плавно подошли к главному вопросу - зачем и кому нужен линукс на ТВ приставке[ (http://forum.puppyrus.org/index.php?topic=19846.msg131571#msg131571)/u]
Название: Re: Компиляция ffmpeg и медиаплееров c аппаратным ускорением
Отправлено: balbes150 от 08 Май 2017, 14:53:50
Ты можешь описать, какие файлы использовал, что-бы перетащить KODI в archlinux ?
Хочу кое-что проверить.
Название: Re: Компиляция ffmpeg и медиаплееров c аппаратным ускорением
Отправлено: sfs от 09 Май 2017, 09:06:34
какие файлы использовал, что-бы перетащить KODI в archlinux
http://hu.mirror.archlinuxarm.org/aarch64/alarm/kodi-c2-17.0-1-aarch64.pkg.tar.xz
То что я сам накомпилил - лучше не получилось. Да лучше и не куда (разве что сделать нормальную , без артефактов работу в Xorg). Поэтому поставил в А2 из репы, в надежде на автообновление

Нашел еще оптимизированный плеер (https://github.com/OtherCrashOverride/ge2dplayer)
Компилится без проблем, но не работает
# /home/live/1/ge2dplayer-master/ge2dplayer Test.mp4
/dev/fb0 file handle: 3
var_info.xres = 1920
var_info.yres = 1080
var_info.xres_virtual = 1920
var_info.yres_virtual = 1080
/dev/ge2d file handle: 4
open vfm_grabber failed.

В арчрепе обновился mpv. Улучшений нет.
Да - A2 попроще поддерживать, чем PRA.  Обновления сами прилетают. Вообще ничего делать не надо  :D full + rolling release - есть свои преимущества....
Название: Re: Компиляция ffmpeg и медиаплееров c аппаратным ускорением
Отправлено: sfs от 01 Июнь 2017, 14:38:42
Еще раз попробовал vlc в 2A - 1080 вообще не воспроизводит

Попробовал скомпилить mpv с --enable-mali-fbdev (https://www.opennet.ru/opennews/art.shtml?num=45353)
err: ../test.c:1:10: фатальная ошибка: EGL/fbdev_window.h: Нет такого файла или каталога
 #include <EGL/fbdev_window.h>
          ^~~~~~~~~~~~~~~~~~~~
компиляция прервана.
Добавил
https://github.com/libretro/RetroArch/blob/master/README-mali_fbdev_r4p0.md
Цитировать
Now we need the headers. We can get them from here:
http://malideveloper.arm.com/develop-for-mali/sdks/opengl-es-sdk-for-linux/#opengl-es-sdk-for-linux-download
Download whatever version you want. We just get the headers from here, not machine-dependant compiled code.
Extract the files and copy the directories inside inc to /usr/include .
Also, copy simple_framework/inc/mali/EGL/fbdev_window.h to /usr/include/EGL .
mpv скомпилился http://mirror.yandex.ru/puppyrus/2a-aarch64/pkg-repo/2a-extra/mpv-mali-fbdev-1%3A0.25.0-5-aarch64.pkg.tar.xz

Улучшений по скорости нет
mali-fbdev не запускается :
[cplayer] Command line options: '--vo=opengl' '--opengl-backend=mali-fbdev' '-v' '-v' './Clannad After Story OPA - sample HEVC mai
n10 1080p.mkv'
.....
[cplayer] Configuration: ./waf configure --prefix=/usr --confdir=/etc/mpv --enable-libarchive --enable-cdda --enable-dvdnav --enab
le-encoding --enable-libmpv-shared --enable-zsh-comp --enable-egl-x11 --enable-egl-drm --enable-mali-fbdev
[cplayer] List of enabled features: alsa asm atomics audio-input avutil-imgcpy-uc build-date c11-tls caca cdda cplayer cuda-hwacce
l debug-build dlopen drm dvbin dvdnav dvdread-common egl-drm egl-helpers egl-x11 encoding fchmod gbm gbm.h gcc-tls gl gl-wayland g
l-x11 glibc-thread-name glob gnuc iconv is_ffmpeg jack jpeg lcms2 libarchive libass libass-osd libav libavcodec libavdevice libblu
ray libdl libm libmpv-shared librt libsmbclient libv4l2 linux-fstatfs lua mali-fbdev nanosleep optimize oss-audio oss-audio-native
 plain-gl posix posix-or-mingw posix-spawn pthreads pulse rubberband shm stdatomic subprocess termios tv tv-v4l2 uchardet vaapi va
api-drm vaapi-egl vaapi-glx vaapi-hwaccel vaapi-hwaccel-new vaapi-wayland vaapi-x-egl vaapi-x11 vdpau vdpau-gl-x11 vdpau-hwaccel v
dpau-hwaccel-new videodev vt.h wayland x11 xv zlib zsh-comp
.....
[vo/opengl] Initializing OpenGL backend 'mali-fbdev'
[vo/opengl] EGL_VERSION=1.4 Linux-r5p1-01rel0
[vo/opengl] EGL_VENDOR=ARM
[vo/opengl] EGL_CLIENT_APIS=OpenGL_ES
[vo/opengl] Trying to create Desktop OpenGL context.
[vo/opengl] Could not bind API!
[vo/opengl] Trying to create GLES 3.x context.
[vo/opengl] Could not choose EGLConfig!
[vo/opengl] Trying to create GLES 2.0 context.
[vo/opengl] Could not create EGL surface!
[cplayer] Error opening/initializing the selected video_out (--vo) device.
Название: Re: Подскажите дистрибутив с рабочим RCA+ssh для sanvell t95x 1/8
Отправлено: baloven от 27 Октябрь 2017, 15:38:13
или я дурак - или.... лыжЫ по асфальту не ездят.....
читаем 6 страницу 2 строка таблицы
http://openlinux.amlogic.com:8000/download/doc/linux-3.14-buildroot-pkg-201605-release-v1.2.pdf
Название: Re: Re: Подскажите дистрибутив с рабочим RCA+ssh для sanvell t95x 1/8
Отправлено: sfs от 27 Октябрь 2017, 15:46:55
gpu Amlogic Mali gpu driver
Это? И что?
Название: Re: Re: Подскажите дистрибутив с рабочим RCA+ssh для sanvell t95x 1/8
Отправлено: baloven от 27 Октябрь 2017, 15:51:46
может я что-то не так понял, но в родном линуксе доступном для скачивания с самого амлоджика есть драйвер mali!!!! кстати ниже приводятся в том же файле сборки gsteam и еще какого-то плеера с поддержкой HW - я уже файл просто закрыл. переводчиком не переводил - но возможно что я ошибаюсь - потому и скинул сюда - вы больше разбираетесь в сборках дистрибудтивов.
Название: Re: Компиляция ffmpeg и медиаплееров c аппаратным ускорением
Отправлено: sfs от 27 Октябрь 2017, 15:58:50
Там все не так просто
В коди есть поддержка hw, в других нет - при том же ядре и пр.
Т.е. нужна поддержка в самом плеере
Название: Re: Компиляция ffmpeg и медиаплееров c аппаратным ускорением
Отправлено: baloven от 27 Октябрь 2017, 16:05:04
:) сначал думал потерли :)
это-то понятно, я именно и имел ввиду, что возможно в коди использована инструкция (уж не знаю механизм, драйвер....) которые описаны в документации Amlogic - я и предлагаю Вам опробовать описанное, я сам в этом не силен :(
Название: Re: Компиляция ffmpeg и медиаплееров c аппаратным ускорением
Отправлено: sfs от 27 Октябрь 2017, 16:21:19
:) сначал думал потерли :)
Придерживайтесь: 1 вопрос - 1 тема
Это же не чат

Все кроме этого пробовал
В mpv 0.27 появилась опция компиляции "Mali via Linux fbdev". Возможно решит проблему - не пробовал?
Название: Re: Компиляция ffmpeg и медиаплееров c аппаратным ускорением
Отправлено: balbes150 от 03 Ноябрь 2017, 18:36:23
в родном линуксе доступном для скачивания с самого амлоджика есть драйвер mali!
Есть, но как в поговорке "не про нашу честь". Этот набор (исходники для сборки модуля mali.ko и сама библиотека libMali) не для X11, а для fbdev. И что-бы ими воспользоваться, нужно собирать софт с их использованием.

которые описаны в документации Amlogic
В приведённом pdf ни чего не описано о том, как использовать mali в своих прогах (это оооочень объёмная инфа в виде доков на сайте самого ARM). Для использования mali, нужно написать сами исходники софта (те же плееры) с использованием функций из библиотеки libMali (через "прокладку" в виде модуля mali.ko). Хотите попробовать ?
Название: Re: Компиляция ffmpeg и медиаплееров c аппаратным ускорением
Отправлено: balbes150 от 09 Февраль 2018, 18:44:23
Я обновил ядро и образы с ArchLinux. Теперь в них есть поддержка mali6 и все заголовочные файлы для перекомпиляции. Было бы интересно проверить сборку пакетов mpv и ffmpg в новых условиях.
Название: Re: Компиляция ffmpeg и медиаплееров c аппаратным ускорением
Отправлено: sfs от 10 Февраль 2018, 07:26:02
Я пока выбыл из игры. Нет девайса
Название: Re: Компиляция ffmpeg и медиаплееров c аппаратным ускорением
Отправлено: sfs от 19 Февраль 2018, 15:00:03
без использования KODI.
т.е. так же без тормозов?
При компиляции нужны особые ключи?

Может и palemoon для aarch64 кто-нибудь скомпилил :) ?
Название: Re: Компиляция ffmpeg и медиаплееров c аппаратным ускорением
Отправлено: balbes150 от 01 Июнь 2018, 11:49:52
Не компилится:
Попробовал собрать c2play по букварю из REAME.MD - вообще не собирается. Ты что-то добавлял\изменял в настройках\пакетах, что-бы запустилась сборка ?
Название: Re: Компиляция ffmpeg и медиаплееров c аппаратным ускорением
Отправлено: sfs от 01 Июнь 2018, 12:35:08
Ты что-то добавлял\изменял в настройках\пакетах, что-бы запустилась сборка ?
2А? Не понял вопроса. У меня ведь тоже не скомпилилась
Название: Re: Компиляция ffmpeg и медиаплееров c аппаратным ускорением
Отправлено: balbes150 от 01 Июнь 2018, 15:13:02
У тебя хотя бы начался процесс компиляции, у меня сразу отлуп от g++, что нет файлов исходников. Собираю в Ubuntu.

Кстати, попробовал собрать ge2dplayer, всё собралось (бинарник и модуль для ядра) , запускаю модуль vfd_grabber , он ни на что не ругается, ставиться в систему, но устройство  /dev/vfm_grabber  в системе не появляется, соответственно и сам плеер не запускается. Не пойму, чего не хватает модулю, вроде ошибок нет.
Название: Re: Компиляция ffmpeg и медиаплееров c аппаратным ускорением
Отправлено: sfs от 01 Июнь 2018, 16:07:14
Собираю в Ubuntu.
Наверное в этом разница. Только в арче исходники патчатся минимально. В юбунте куча патчей, совместимых только с юбунтой
Название: Re: Компиляция ffmpeg и медиаплееров c аппаратным ускорением
Отправлено: balbes150 от 01 Июнь 2018, 16:14:05
Дык разработчик сам изначально всё собирал в Ubunte, он об этом несколько раз повторял на форуме. Патчей я не вижу в исходниках вообще (обычные исходники, но странное размещение макфайлов и сами они какие то не привычные).
Название: Re: Компиляция ffmpeg и медиаплееров c аппаратным ускорением
Отправлено: sfs от 01 Июнь 2018, 16:28:41
Патчи - я имел ввиду не этих исходников, а всевозможных других пакетов системы, которые могут повлиять на то что собираешь
разработчик сам изначально всё собирал в Ubunte
Наверное тогда лучше ему и задать вопросы...
Название: Re: Компиляция ffmpeg и медиаплееров c аппаратным ускорением
Отправлено: balbes150 от 01 Июнь 2018, 16:43:20
Я правильно понял, что ты в Archlinux на железке s905 просто скачал исходники, выполнил "make" и у тебя пошла сборка ?
Название: Re: Компиляция ffmpeg и медиаплееров c аппаратным ускорением
Отправлено: sfs от 01 Июнь 2018, 17:17:06
На своем 2A. Он немного отличается от чистого арча
Я не спец по компиляции м си. Патчить не умею
Подробностей кроме тогдашнего сообщения не помню
Название: Re: Компиляция ffmpeg и медиаплееров c аппаратным ускорением
Отправлено: baloven от 04 Июнь 2018, 07:07:40
Редко же я вспоминаю про интересующие меня вопросы :)
Всем доброго...
Вот вспомнил и решил вмешаться, хотя мысль сея давно летает, но все ее не выскажу...
sfs, balbes150 - я уже даже и позабыл где это читал, кажется в мануалах от Amlogic, там упоминалось (если я конечно ничего не путаю), что Mali - это не GPU в чистом виде, а фактически аппаратный эмулятор-ускоритель OpenGL (для краткости OGL).
отсюда у меня вокруг ваших разговоров летает мысль, может она и неправильная, но хоть в какой-то степени поможет, что по сути libmali - это некий интерфейс-прокладка заворачивающая обращения к GPU и преобразовывающая их в вызовы функций OGL ну и падающая их не в программный ускоритель OGL как например в винде этим DirectX занимается, а в аппартатный ускоритель-обработкик Mali - чем скорее всего и достигается ускорение.
Это я к тому, что ИМХО нужно все же разбираться с этой "прокладкой" libmali как, что, откуда и куда она вызывает и передает, и ее как-то нужно поставить правильно в системе чтобы все шло в нее предназначенное для GPU, тогда абсолютно без разницы какой плеер и как собран и собран ли он с поддержкой или без libmali.
Я понимаю что это во первых теория, а во вторых если это так, то это уйма работы... но все же - может есть в это истина?
ведь на Амлоджике есть тесты видео они выводят видео в чистой коммандрой строке... т.е. скорее всего нет в системе ничего кроме этой прокладки правильно установленной и правильно завернутыми запросами......
Надеюсь эти рассуждения хоть немного Вам помогут :)
Название: Re: Компиляция ffmpeg и медиаплееров c аппаратным ускорением
Отправлено: sfs от 04 Июнь 2018, 10:28:08
Для разбора с этой проблемой надо быть программистом. Нам даже чужие исходники скомпилить не удалось.
Название: Re: Компиляция ffmpeg и медиаплееров c аппаратным ускорением
Отправлено: balbes150 от 05 Июнь 2018, 11:02:00
Нам даже чужие исходники скомпилить не удалось.
Не совсем так. Разобраться можно, но на это уйдёт куча времени при не ясном результате. Проще написать свой код с нуля, чем разбираться в чужом коде. Еще одна проблема c2play и ge2dplay - используют функции из других софтин. Сильно патченное ядро со специфичными модулями и библиотеками, софт типа ffmpeg со своими изменениями, настройки системы и т.д.. В результате, даже если собрать плеер, не факт, что он будет работать, как на целевой платформе C2. Это хорошо видно на примере ge2dplay, вроде всё собрал, но в моём ядре нет "чего-то" , что есть в исходном от C2 и всё, ни чего не работает.

Главная проблема - отсутствие хоть какой то документации по базовым библиотекам (функциям), которые предоставляются Amlogic для декодирования (amcodec) и ускорения графики (libMali).
Мне пока не удалось получить этой инфы даже от представителей Khadas (которые напрямую общаются с разработчиками Amlogic, те им то же отказали).
А без этого, все превращается в тягомотное копание в чужом коде, что-бы найти хоть какую то инфу, как это работает, какой параметр и в какой форме нужно передать, что-бы что-то сработало.
Т.е. представьте, есть утилита mount, которая в нормальной системе вам сама выдаёт список своих ключей и опций, есть куча описаний в инете, которые вы легко используете, а теперь представьте другую утилиту, которая что-то может, но нет ни какой инфы, как с ней работать, есть только готовый образ, в котором что-то с ней работает на уровне бинарника ....  то бишь чёрный ящик, с не понятным набором опций и условий использования ....

На самом деле libMali - нафик не нужна для видео на платформе ARMv8 , она предназначена для ускорения вывода картинок от интерфейса , типа менюшек в KODI, для ускорения графики игрушек и т.д. Обратите внимание - Mate|XFCE|IceWM без проблеме крутиться и все окошки (интерфейсы) летают без всяких libMali. Если бы разрабы KODI не упирались в свой сильно устаревший и тормозной вариант кроссплатформенного интерфеса (в котором для вывода примитивного набора менюшек используют тормозные алгоритмы и тормозной набор универсальных библиотек вместо оптимизации по платфрмам), то KODI летал бы на любой системе при 4 шустрых ядрах.
На само видео libMali почти не влияет, во всяком случае все ее функции легко заменяет софтовая обработка на основных CPU. Я предполагаю, как раз по этой причине отказались от лицензии для S912, его 8 ядер за глаза для этих целей. Что подтверждают тестовые образы GSTPlay, в которых 4 K видео без проблем работает без всяких libMali. Главное для видео - наличие аппаратного декодера VPU, который представлен в виде набора модулей для ядра (под каждый вариант кодека свой ). За это отвечает набор amcodec. Вот если удастся его прикрутить к ffmpeg, бОльшая часть проблем с ускорением видео на S9xxx будет решена в корне. Есть правда gstreamer, который выполняет аналогичные функции, но его еще нужно перетащить из BUILDROOT в обычный Linux и прикрутить воспроизводилки к нему, тут то же куча заморочек - с отсутствием документации.
Кстати, насколько я смог понять из кода разных плееров и KODI в том числе, все они работают по одному принципу, ffmpeg или другая мультимедиа библиотека занимается только чтением разных форматов, что-бы получать фиксированные данные, а уже само декодирование выполняет amcodec. Т.е. плеер умеет комбинировать получение данных из стандартных библиотек с декодированием и выводом через фирменные библиотеки Amlogic, для которых нет нормального описания, как их компилировать., как их использовать и Amlogic не хотят давать эту инфу (возможно за бабло это решается). В результате то же MPV использует ffmpeg только в софтовом варианте, когда чтение и декодирование выполняются на основных CPU, которые не заточены на это. Кстати, это хорошо видно в KODI, если убрать пользователю доступ к модулям amcodec он автоматически переходит на софтовые кодеки из состава ffmpeg вместо am-h264 и прочее.
В принципе, если бы выпустили чип с 10-12 ядрами, тогда видео будет работать без всяких закрытых библиотек и можно вообще не ставить VPU, всё будет работать на стандартном общем софте. Кто из производителей быстрее это реализует, получит хороший шанс, с минимальными затратами на разработку специфичного софта для VPU, получить универсальное решение, не нужно будет заниматься разработкой и поддержкой новых вариантов кодеков в своих VPU.
Название: Re: Компиляция ffmpeg и медиаплееров c аппаратным ускорением
Отправлено: baloven от 08 Июнь 2018, 07:29:55
sfs - ну я программист :) но разбираться в чужом коде (не видел его) и тем более со слов Balbes150 без док и если он скорее всего еще и не комменторован - это либо застрелиться - либо вариант предложенный Balbes150 - писать с 0.... но это тоже палка о 2х концах - потому как если один из участников проекта ("писать с 0") уйдет - то тот кто прийдет вместо него должен будет все же иметь возможность прочитать код, тот код должен писаться читаемым и документированным (хотябы комментированным) - иначе, опять же сделанную работу ушедшим - начинаем с начала :(
Вторая проблема: для упрощения и на случай ухода одного из участников - код должен быть модульным!!!! и должны быть обозначены сначала общие принципы "ядра" проекта документированы входы и выходы, чтобы модуль мог через "ядро" общаться с остальными модулями.
третья: время :( здесь увы я скорее потребитель - мне действительно настоящий вопрос интересен, и в некотором плане есть необходимость его использования по работе - что уже описывал, но времени самому вникать просто нет :(
ну и так далее - попытаться конечно можно - но это нужно организовывать платформу разработки....

Balbes150 - я с некоторыми тезисами не соглашусь, в основном насчет полного отказа от ускорения и использования CPU для графики.... по сути это означает выкинуть GPU который есть, но он же есть!!!! - это тоже самое что вы мне год назад предлагали переходник с HDMI на CSVB купить при том что есть же родной CSVB выход :) Опять же непомню где читал уже наверно больше года назад по мойму как раз на армбиан в какой-то ветке - что основная проблема, в том что Амлоджик вроде как дает готовые бинарники, без раскрытия их работы, под конкретную систему за символические 50к американских денежных единиц. Итог: производители просто порой и не могут себе позволить такие затраты на 1 версию платформы, так как изменения в аппартной части потребуют заказа нового бинарника - яркий пример мои "убитые" боксы. Так же увеличение количества ядер - это удорожание.... а разобраться с корректной работой в текущем варианте - можно получить ооооочень дешевые устройства, аналоги которых стоят в 4-10 раз больше - про использование которых писал в паралельной теме. Вот нужно мне дистанционно управляемое устройство, которое может принимать IPTV поток и выдавать его в CSVB, без вывода всяких меню и прочего.... аналоги таких устройств стоят порядка 300..... и выше $. И ведь чисто технически это все реализуемо даже на боксах на 8хх серии и их по сути было бы достаточно для этого при цене вопроса в 12-16$, и уж тем более с такой задачей справится S905X 1/8Gb.... а если развить вопрос. то можно и дополнительные задачи на бокс повесить... вот мне интересно проверить (решив проблему с использованием GPU) насколько бокс смог бы справиться с кодированием стрима, изменением в нем кодека, разрешения... и прочее связанные вопросы, которых масса у тех кто занимается IPTV и OTT и они как правило весьма дорогостоящие... и если даже 1 бокс сможет в онлайн на лету обрабатывать хотябы один тв канал - то это гораздо дешевле по всем параметрам (в том числе и по потребляемому электричеству), чем ставить сервак за пару тысяч баксов и на нем иметь возможность обработки до 80 каналов
Название: Re: Компиляция ffmpeg и медиаплееров c аппаратным ускорением
Отправлено: balbes150 от 12 Июнь 2018, 11:46:30
Есть хорошие новости, совместными усилиями нескольких сообществ, процесс добавления стандартной поддержки декодирования видео для платформы Amlogic, постепенно начинает решаться, через использование v4l2 mem2mem. И ведутся работы по добавлению свободной реализации mali-450. Если есть желающие принять участие - вэлком.

baloven , главная заморочка для использования GPU - нет открытых исходников, только блобы. И вторая сторона - если интерфейс написан правильно, эффективность использования 4\8 "обычны" ядер может быть выше, чем использование GPU. Это как стрельба из пушки по воробьям. GPU эффективен только тогда, когда нужны сложные математически расчёты картинки, при банальном выводе теста и простого фона - нет смысла "заводить комбайн ради одного колоска", накладные расходы будут не увеличивать, а снижать общую скорость.