Автор Тема: Аппаратный encoder h264 для Allwinner H3  (Прочитано 7173 раз)

Оффлайн ubobrov

Re: Аппаратный encoder h264 для Allwinner H3
« Ответ #15 : Ноябрь 06, 2018, 02:34:51 pm »
Сделал так и драйвер для cedar_dev для mainline ядра 4.19  (не путать с mainline effort от sunxi)
Проверял на железе A20 Cubieboard
В отличии от ядра 3.4 в ядрах 4.х нет аллокатора ION и судя по всему, ни кто не делал h264 encoder для процессора A20
В системе снова появился /dev/cedar_dev, работает encoder и наверное заработает декодер из libbdpau.
Уверен, что это заработает и на H3

драйвер: https://github.com/uboborov/sunxi-cedar-mainline
encoder: https://github.com/uboborov/cedrus

./h264enc video.nv12 1280 720 out.mkv

Оффлайн ubobrov

Re: Аппаратный encoder h264 для Allwinner H3
« Ответ #16 : Ноябрь 26, 2018, 05:16:51 pm »
Запилил приложение для стриминга h264 потока с usb камеры. Тестировалось только на CubieBoard2 и mainline kernel 4.19

Оффлайн vash_sa

  • Посвященный
  • ***
  • Сообщений: 220
  • Лайков: 14
  • Карма: +0/-5
  • Orange Pi PC v 1.2
    • Просмотр профиля
Re: Аппаратный encoder h264 для Allwinner H3
« Ответ #17 : Январь 30, 2019, 12:04:00 pm »
На Н3 не удается скомпилировать модуль  :-[

root@orangepipcplus:~/sunxi-cedar-mainline# make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- KDIR="/lib/modules/4.19.13-sunxi" -f Makefile.linux
make -C /lib/modules/4.19.13-sunxi MAKEFILES=/root/sunxi-cedar-mainline/.config SUBDIRS=`pwd` DRMSRCDIR=`pwd` modules
make[1]: Entering directory '/lib/modules/4.19.13-sunxi'
make[1]: *** No rule to make target 'modules'.  Stop.
make[1]: Leaving directory '/lib/modules/4.19.13-sunxi'
Makefile.linux:137: recipe for target 'modules' failed
make: *** [modules] Error 2
root@orangepipcplus:~/sunxi-cedar-mainline#

Оффлайн ua3nbw

Re: Аппаратный encoder h264 для Allwinner H3
« Ответ #18 : Январь 30, 2019, 12:41:08 pm »
а, так?
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- KDIR=/lib/modules/$(uname -r)/build -f Makefile.linux
и для компиляции модуля нужны хидеры ядра
wget https://apt.armbian.com/pool/main/l/linux-4.19.13-sunxi/linux-headers-next-sunxi_5.70_armhf.deb
dpkg -i linux-headers-next-sunxi_5.70_armhf.deb

Оффлайн vash_sa

  • Посвященный
  • ***
  • Сообщений: 220
  • Лайков: 14
  • Карма: +0/-5
  • Orange Pi PC v 1.2
    • Просмотр профиля
Re: Аппаратный encoder h264 для Allwinner H3
« Ответ #19 : Январь 30, 2019, 01:55:00 pm »
Спасибо! Вроде модуль появился!!

root@orangepipcplus:~# lsmod | grep "sunxi_cedar"
sunxi_cedar            20480  0
root@orangepipcplus:~#

Но нужен, наверное, еще ffmpeg с его подключением? Или он подгрузится в стандартный, который с motion идет?

Оффлайн ua3nbw

Re: Аппаратный encoder h264 для Allwinner H3
« Ответ #20 : Январь 30, 2019, 03:21:08 pm »
тут автор ubobrov подробно расписал:https://github.com/uboborov/uvc_h264_lb_allwinner

Оффлайн ubobrov

Re: Аппаратный encoder h264 для Allwinner H3
« Ответ #21 : Февраль 05, 2019, 10:38:16 am »
На Н3 не удается скомпилировать модуль  :-[
Я никогда не собираю на целевой платформе. Всё делаю на хост машине.
Цитировать
Но нужен, наверное, еще ffmpeg с его подключением? Или он подгрузится в стандартный, который с motion идет?
Ничего не нужно. Это приложение создаёт виртуальные видео устройства (лупбэки) с разными разрешениями и выходными форматами. Любое другое приложение может брать фреймы с этих лупбэков для своих нужд.
Что касается драйвера cedar_dev, то это просто драйвер кодека. Можите написать свой энкодер или декодер используя этот драйвер.

Оффлайн vash_sa

  • Посвященный
  • ***
  • Сообщений: 220
  • Лайков: 14
  • Карма: +0/-5
  • Orange Pi PC v 1.2
    • Просмотр профиля
Re: Аппаратный encoder h264 для Allwinner H3
« Ответ #22 : Февраль 26, 2019, 11:05:08 am »
Добрый день! Прошу совета по следующей проблеме. Есть ip камера, отдает поток по rtsp. Нужно вставить видео на сайт в формате html страницы. Пробовал связку ffmpeg + ffserver для преобразования из rtsp в mjpeg и последующим выводом видео на сайт. Но проблема в большой загрузке процессора, которое приводит к частому сбрасыванию интернет соединения и отключению полностью ssh. Восстановление только через аппаратную перезагрузку по питанию.
Вопрос как снизить нагрузку на процессор? Ядро 4.19.20. Просмотрел https://ua3nbw.ru/all/ffmpeg-cedrus-h-264-codec-on-h3/ но там речь идет о web камере. Так и не могу определиться, можно ли снизить загрузку ffmpeg процессора какими-нибудь драйверами? И как это сделать?

Оффлайн ua3nbw

Re: Аппаратный encoder h264 для Allwinner H3
« Ответ #23 : Февраль 26, 2019, 03:53:53 pm »
Вставить видео на сайт можно с помощью nginx https://github.com/arut/nginx-rtmp-module/wiki/Getting-started-with-nginx-rtmp
nginx компилируйте с модулем nginx-rtmp, FFmpeg и x264 естественно необходимы.
поток по IP - rtsp video(H264) транслировал с другого  сайта, с наложением даты,время - загрузку процессора не помню, но тормозов не было, перегрева тоже.

Оффлайн spectre.spc

Re: Аппаратный encoder h264 для Allwinner H3
« Ответ #24 : Февраль 27, 2019, 11:10:52 am »
Что касается драйвера cedar_dev, то это просто драйвер кодека. Можите написать свой энкодер или декодер используя этот драйвер.
А удалось драйвер собрать для ядра 4.20? На данный момент в армбиане последнее 4.20.12.
Я пробовал, даже собралось, даже загрузилось, но устройства в /dev/cedar_dev так и не появилось. В dts этого ядра вроде ve включен.

Оффлайн vash_sa

  • Посвященный
  • ***
  • Сообщений: 220
  • Лайков: 14
  • Карма: +0/-5
  • Orange Pi PC v 1.2
    • Просмотр профиля
Re: Аппаратный encoder h264 для Allwinner H3
« Ответ #25 : Февраль 27, 2019, 03:21:27 pm »
Вставить видео на сайт можно с помощью nginx https://github.com/arut/nginx-rtmp-module/wiki/Getting-started-with-nginx-rtmp
nginx компилируйте с модулем nginx-rtmp, FFmpeg и x264 естественно необходимы.
поток по IP - rtsp video(H264) транслировал с другого  сайта, с наложением даты,время - загрузку процессора не помню, но тормозов не было, перегрева тоже.
Спасибо, попробую. Если получится нормально, отпишусь.

Оффлайн vash_sa

  • Посвященный
  • ***
  • Сообщений: 220
  • Лайков: 14
  • Карма: +0/-5
  • Orange Pi PC v 1.2
    • Просмотр профиля
Re: Аппаратный encoder h264 для Allwinner H3
« Ответ #26 : Февраль 27, 2019, 06:54:47 pm »
Вставить видео на сайт можно с помощью nginx https://github.com/arut/nginx-rtmp-module/wiki/Getting-started-with-nginx-rtmp
nginx компилируйте с модулем nginx-rtmp, FFmpeg и x264 естественно необходимы.
поток по IP - rtsp video(H264) транслировал с другого  сайта, с наложением даты,время - загрузку процессора не помню, но тормозов не было, перегрева тоже.

Поток rtmp я получил. В VLC просматриваю. Задержек нет, проц не грузится, температура нормальная.
Вопрос следующий как Вы вставляли в сайт? Если можно сбросьте ссылку на инструкцию. Я нашел с помощью флеш, но не уверен что у меня получится. Можете помочь в этом?

Я вставлял в mjpeg там напрямую идет. А rtmp браузером не поддерживается((
« Последнее редактирование: Февраль 27, 2019, 06:56:39 pm от vash_sa »

Оффлайн ua3nbw

Re: Аппаратный encoder h264 для Allwinner H3
« Ответ #27 : Февраль 27, 2019, 09:08:31 pm »
использовал Flowplayer , javaScript  вставляется в html код отдаваемой на веб-странице. примеров в сети много.
тут, ещё есть примеры: 7 способов отобразить видео с RTSP IP-камеры на веб-странице https://habr.com/ru/company/flashphoner/blog/329108/

Оффлайн vash_sa

  • Посвященный
  • ***
  • Сообщений: 220
  • Лайков: 14
  • Карма: +0/-5
  • Orange Pi PC v 1.2
    • Просмотр профиля
Re: Аппаратный encoder h264 для Allwinner H3
« Ответ #28 : Февраль 28, 2019, 10:24:50 am »
<script type='text/javascript'>
  var so = new SWFObject('player.swf','mpl','800','600','9');
  so.addParam('allowfullscreen','true');
  so.addParam('allowscriptaccess','always');
  so.addParam('wmode','opaque');
  so.addVariable('file','1280.mp4');
  so.addVariable('streamer','rtmp://localhost/myapp/mystream');
  so.write('mediaspace');
</script>

Не могу понять. Флеш файл проигрывает, а streamer  пишет что не верный адрес rtmp://localhost/myapp/mystream? Хотя vlc rtmp://192.168.1.185/myapp/mystream   показывает. Не подскажите, какой адрес брать для стрима, чтобы его нашла флэш?
Server not found rtmp://localhost/myapp/mystream    - Ответ player
« Последнее редактирование: Февраль 28, 2019, 10:56:51 am от vash_sa »

Оффлайн vash_sa

  • Посвященный
  • ***
  • Сообщений: 220
  • Лайков: 14
  • Карма: +0/-5
  • Orange Pi PC v 1.2
    • Просмотр профиля
Re: Аппаратный encoder h264 для Allwinner H3
« Ответ #29 : Февраль 28, 2019, 01:26:20 pm »
Нашел уже в документации тестовые примеры.
<b>Play</b> | <a href="record.html">Record</a>
<br/>
<script type="text/javascript" src="/jwplayer/jwplayer.js"></script>

<div id="container">Loading the player ...</div>
    <script type="text/javascript">
        jwplayer("container").setup({
        sources: [
            {
                file: "rtmp://localhost/myapp?carg=1/mystream?sarg=2"
            }
        ],
        image: "bg.jpg",
        autostart: false,
        width: 640,
        height: 480,
        primary: "flash"
});
</script>


Флеш запускается, но и она не видит сервера!!!  Что за таинственный сервер, как вы могли его просмотреть на сайте? Не понимаю.