Ник:
Пароль:

Контакты

E-mail: info@starterkit.ru
тел.: +7 922 680-21-73
тел.: +7 922 680-21-74
Телеграм: t.me/starterkit_ru

Способы оплаты

User Info


Добро пожаловать,
Guest

Регистрация или входРегистрация или вход
Потеряли пароль?Потеряли пароль?

Ник:
Пароль:

ПользователейПользователей:0
Поисковых ботовПоисковых ботов:2
ГостейГостей:1

ОбновитьПодробнееВсегоВсего:3
Форум » starterkit.ru » Embedded Linux
IP camera
soldatic
Добавлено 20.01.2016 15:52
0
Сообщение: 1
soldatic
4

Пункты: 3394
Регистрация: 28.10.2015
Добрый день!
Модуль SK-iMX6S-SODIMM-Ind необходимо по запросу в виджете выводить видео с IP камеры в приложении qt.
Тестирую пока с консоли pipeline
# gst-launch rtspsrc location=rtsp://x.x.x.x:554/v01 ! rtph264depay ! h264parse ! ffdec_h264 ! ffmpegcolorspace ! autovideosink
Картинку получаю кадр/минуту с предупреждением:
# There may be a timestamping problem, or this computer is too slow.
Подскажите, пожалуйста,
1) как выстроить pipeline для ускорения
2) что лучше использовать в приложении (gst ffmpeg vlc).

Буду очень признательна.
Спуститься к концу Подняться к началу
Персональная информация
soldatic
Добавлено 20.01.2016 17:40 Сообщение: 2
soldatic
4

Пункты: 3394
Регистрация: 28.10.2015
Продолжение ..
Подчистила pipeline

#gst-launch rtspsrc location=rtsp://x.x.x.x:554/v01 latency=0 ! decodebin ! autovideosink

теперь кадр/сек
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 21.01.2016 00:41 Редактировалось 21.01.2016 02:41 Сообщение: 3
sasamy
4.71

Пункты: 83603
Регистрация: 14.08.2009
rtsp не тестировался - так что не могу ничего подсказать. В ближайшее время выложу новый буилдрут там будет gstreamer1.0 с плагинами gstreamer-imx - там клиент и сервер должны работать

http://trac.gateworks.com/wiki/Yocto/gstreamer

Тестировал на такой связке:

1) Хост - imx6q + tw6869, композитная сцена из 4 каналов 1280x720 -> кодирование h264 -> rtsp server

gst-variable-rtsp-server -u \
"imxv4l2videosrc device=/dev/video0 queue-size=24 imx-capture-mode=2 ! queue2 ! c.sink_0 \
imxv4l2videosrc device=/dev/video1 queue-size=24 imx-capture-mode=2 ! queue2 ! c.sink_1 \
imxv4l2videosrc device=/dev/video2 queue-size=24 imx-capture-mode=2 ! queue2 ! c.sink_2 \
imxv4l2videosrc device=/dev/video3 queue-size=24 imx-capture-mode=2 ! queue2 ! c.sink_3 \
imxg2dcompositor name=c background-color=0xffffff keep-aspect-ratio=0 \
sink_0::xpos=0 sink_0::ypos=0 sink_0::width=640 sink_0::height=360 sink_0::fill_color=0x00000000 \
sink_1::xpos=640 sink_1::ypos=0 sink_1::width=640 sink_1::height=360 sink_1::fill_color=0x00000000 \
sink_2::xpos=0 sink_2::ypos=360 sink_2::width=640 sink_2::height=360 sink_2::fill_color=0x00000000 \
sink_3::xpos=640 sink_3::ypos=360 sink_3::width=640 sink_3::height=360 sink_3::fill_color=0x00000000 \
! queue2 ! video/x-raw, width=1280, height=720 ! imxipuvideotransform ! queue2 \
! imxvpuenc_h264 bitrate=10000 ! queue2 ! rtph264pay name=pay0 pt=96"

2) клиент - Hola Dual

qmlscene v1.qml

Цитата

# cat v1.qml
import QtQuick 2.0
import QtMultimedia 5.4

Item {
Rectangle {
width: parent.width
height: parent.height

MediaPlayer {
id: player0
source: "rtsp://192.168.1.36:9099/stream"
autoPlay: true
}

VideoOutput {
source: player0
fillMode: VideoOutput.Stretch
anchors.fill: parent
}
}
}


Цитата

Mem: 257224K used, 772400K free, 188K shrd, 2476K buff, 47492K cached
CPU: 5% usr 1% sys 0% nic 93% idle 0% io 0% irq 0% sirq
Load average: 0.32 0.21 0.11 2/78 319
PID PPID USER STAT VSZ %VSZ %CPU COMMAND
304 225 root S 361m 36% 6% qmlscene v1.qml
92 2 root SW 0 0% 0% [galcore daemon ]
319 272 root R 3496 0% 0% top
271 220 root S 1940 0% 0% /usr/sbin/dropbear -R
29 2 root SW 0 0% 0% [kworker/0:1]
87 2 root SW 0 0% 0% [kworker/1:1]
31 2 root SW 0 0% 0% [cfinteractive]
225 224 root S 3496 0% 0% -sh
272 271 root S 3496 0% 0% -sh
119 1 root S 2608 0% 0% /sbin/udevd -d
169 1 dbus S 2140 0% 0% dbus-daemon --system
224 220 root S 1940 0% 0% /usr/sbin/dropbear -R
220 1 root S 1840 0% 0% /usr/sbin/dropbear -R
222 1 root S 1824 0% 0% /sbin/getty -L ttymxc0 115200 vt100
223 1 root S 1824 0% 0% /sbin/getty 38400 tty1 linux


3) клиент SK-iMX6S-SODIMM

Цитата

Mem: 248284K used, 261540K free, 220K shrd, 2804K buff, 39012K cached
CPU: 12% usr 5% sys 0% nic 77% idle 0% io 0% irq 3% sirq
Load average: 0.54 0.26 0.10 1/77 298
PID PPID USER STAT VSZ %VSZ %CPU COMMAND
278 264 root S 361m 73% 19% qmlscene v1.qml
275 2 root DW 0 0% 2% [kworker/u4:3]
97 2 root SW 0 0% 0% [galcore daemon ]
298 294 root R 3496 1% 0% top
31 2 root SW 0 0% 0% [kworker/0:1]
293 262 root S 1940 0% 0% /usr/sbin/dropbear -R
33 2 root SW 0 0% 0% [cfinteractive]
3 2 root SW 0 0% 0% [ksoftirqd/0]
264 1 root S 3496 1% 0% -sh
294 293 root S 3496 1% 0% -sh
128 1 root S 2616 1% 0% /sbin/udevd -d
209 1 dbus S 2140 0% 0% dbus-daemon --system
262 1 root S 1840 0% 0% /usr/sbin/dropbear -R
265 1 root S 1824 0% 0% /sbin/getty 38400 tty1 linux
1 0 root S 1820 0% 0% init
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 21.01.2016 12:58 Редактировалось 21.01.2016 13:05 Сообщение: 4
sasamy
4.71

Пункты: 83603
Регистрация: 14.08.2009
Цитата

Подскажите, пожалуйста,
1) как выстроить pipeline для ускорения
2) что лучше использовать в приложении (gst ffmpeg vlc).


1) в /root в корневой если собирали штатным buildroot начитная с версии 3.10.17 есть тестовые скрипты для различных сценариев использования ускорителей

2) gstreamer без вариантов если нужно аппаратное ускорение

Обновленный buildroot:

http://www.starterkit.ru/html/index.php?name=forum&op=view&id=25861&last#0
Спуститься к концу Подняться к началу
Персональная информация
soldatic
Добавлено 21.01.2016 15:35 Сообщение: 5
soldatic
4

Пункты: 3394
Регистрация: 28.10.2015
Спасибо. Буду смотреть.
Вставила буферизацию, сейчас с pipeline

#gst-launch-0.10 rtspsrc location=rtsp://x.x.x.x:554/v01 num-buffers=10 ! decodebin ! autovideosink

идет в нормальном темпе, но с задержкой реакции около 2 сек
Спуститься к концу Подняться к началу
Персональная информация
macr0s
Добавлено 24.03.2016 00:50 Сообщение: 6
macr0s
0

Пункты: 770
Регистрация: 30.10.2014
Как вы заставили его работать?

Почему эта вот конструкция работает и показывает настроечную таблицу, как ей и положено
Код
# gst-launch-1.0 videotestsrc ! imxeglvivsink

А вот эта вызывает моргание экрана при запуске и все
Код
# gst-launch-1.0 rtspsrc location="rtsp://xxx:554/cam" ! imxvpudec ! imxeglvivsink

Где я рукожоп?
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 24.03.2016 08:13 Сообщение: 7
sasamy
4.71

Пункты: 83603
Регистрация: 14.08.2009
Цитата

Где я рукожоп?


используйте decodebin вместо imxvpudec - он автоматом добавит недостающие плагины в конвеер, imxvpudec аппаратный декодер имеет приоритет над софтовыми декодерами так что он тоже будет автоматом использован.

http://www.starterkit.ru/html/index.php?name=forum&op=view&id=25855&last#25866
Спуститься к концу Подняться к началу
Персональная информация
Prm
Добавлено 24.03.2016 10:24 Сообщение: 8
Prm
0

Пункты: 295
Регистрация: 22.05.2009
После rtspsrc нужeн rtpXXXdepay (rtph264depay в случае H264)
Спуститься к концу Подняться к началу
Персональная информация
macr0s
Добавлено 24.03.2016 11:50 Сообщение: 9
macr0s
0

Пункты: 770
Регистрация: 30.10.2014
Спасибо за ответы, сегодня вечером буду попробовать.
Получается что с кодеком проблема?
Я пока тыркался вчера пробовал вставлять в папплайн rtph264depay и autovideosink - не дало эффекта, а в первом случае вообще выругался, что после depay не хватает чего-то.
Кстати если мои конструкции запустить на компе - все ок. Вот это мне совсем непонятно.
Спуститься к концу Подняться к началу
Персональная информация
macr0s
Добавлено 24.03.2016 21:37 Сообщение: 10
macr0s
0

Пункты: 770
Регистрация: 30.10.2014
decodebin помогло однако... а как-то можно посмотреть что он добавил в пайплайн?
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Embedded Linux