LINUX.ORG.RU

Кодек для ffmpeg или писать самому?

 , ,


0

2

Приветствую.

В продолжении темы

Сцуть - в древней версии ffmpeg есть отреверсированный кодек cedrus для аппаратного УСКОРЕНИЯ кодирования в H264 на SoC.

На этапе старта нуждаюсь в совете - что будет проще и быстрее - поднять старый кодек до версии libav ффмпега хотя бы 5 ветки (его использую) или полностью реализовывать весь функционал кодека в своем коде???

Из опыта имею только поднятие ffserver до 5 ветки и реализация на его базе простого RTSP сервера )

★★★

Я не то чтобы понимаю что ты там делаешь, но насколько я понимаю текущее состояние аппаратного кодирования/декодирования на линуксе, всё оно должно подхватываться через v4l2-request на более-менее актуальных ядрах.

Не пробовал ffmpreg заводить с патчем на v4l2-request? Я не помню, приняли его всё-таки или нет, но у меня лежат патчи откуда-то стянутые под шестую версию.

a1ba ★★
()
Ответ на: комментарий от a1ba

у меня ядро 4.14.111 armv7l, не знаю что такое v4l2-request, но h264_v4l2m2m кодек на моей железке не поднимается.

мне нужно быстрей хотя бы пожать видео, с декодером пока вопрос открытый поэтому будет и дальше делаться на цпу

wolverin ★★★
() автор топика
Последнее исправление: wolverin (всего исправлений: 2)

Мне кажется, проще будет вытащить кодек из ffmpeg. cedrus вроде бы stateful, а значит нужно будет лишь правильно передавать/забирать фреймы

mittorn ★★★★★
()

итак что ж это за древний ффмпег https://github.com/stulluk/FFmpeg-Cedrus

как я понял это через оборачивание в https://github.com/linux-sunxi/libvdpau-sunxi

использование https://github.com/linux-sunxi/libcedrus

чтобы не собирать ядро с драйвером добрым человеком откушен исходник отдельно драйвера https://github.com/uboborov/sunxi-cedar-mainline

его же какая то копия либы https://github.com/uboborov/libcedrus-H3

его же вариант откусить фреймворк libvdpau-sunxi из ffmpeg https://github.com/uboborov/ffmpeg_h264_H3

таки удалось немного поговорить с uboborov, со слов которого как я понял - кодер h264 у него используется отдельно без засовывания в ffmpeg и он его продает.

много думаю…

wolverin ★★★
() автор топика
Последнее исправление: wolverin (всего исправлений: 2)
Ответ на: комментарий от wolverin

для тех кому вдрух нужно будет это старье

https://github.com/stulluk/FFmpeg-Cedrus

собрать его получится только со старым libx264, у меня 16 убунта еще на железках, там 148 версия в репозитории (а в проекте пользую уже 164), но в гуглах на ошибку несовместимости предложили этот снапшот (152) ftp://ftp.videolan.org/pub/x264/snapshots/x264-snapshot-20180730-2245-stable.tar.bz2

который собрался как

./configure --prefix=/opt/FFmpeg-Cedrus \
            --enable-static --enable-shared \
&& make clean && make

после чего раскладываем либы и пару заголовочных файлов в места откуда будет сборка ффмпега, последний что в версии uboborov, что «оригинальной» собираются

./configure --prefix=/usr \
            --enable-nonfree --enable-gpl --enable-version3 --enable-vdpau --enable-libx264 --enable-libv4l2 --disable-doc \
&& make clean && make

НО разница в них в том, что «оригинальная» версия хоть вроде как и пользует GPU Mali, но фпс около нуля почему то, в версии uboborov кадров побольше (с учетом того, что с камеры могу взять только mjpeg или h264 при 30 fps, в последнем случае вообще все видео при движении сыпется), НО во всех разрешениях кроме 1280х720 зеленая полоса внизу, человек про сие знает и не скажет где, «но за деньги да» (где то в реализации кодека)

продолжаю думать ))

wolverin ★★★
() автор топика
Последнее исправление: wolverin (всего исправлений: 1)
Ответ на: комментарий от wolverin

а и еще uboborov сказал, что на железку можно натянуть любое свежее ванильное ядро, нужен только корректный dts

wolverin ★★★
() автор топика
Последнее исправление: wolverin (всего исправлений: 1)