Управляем чем угодно откуда угодно

Долгожданное обновление SDK с тестовой поддержкой видео

Обсуждение линуксовой части и софта на борту виртурилки

Re: Долгожданное обновление SDK с тестовой поддержкой видео

Сообщение orangeudav » 01 окт 2013, 15:48

krupoderov писал(а):только не понятно почему такое темное изображение с камеры. даже китайские фоскамы более светлую дают картинку. (

отклеить транспортировочную пленку с камеры?
orangeudav
 
Сообщения: 152
Зарегистрирован: 04 сен 2013, 15:35

Re: Долгожданное обновление SDK с тестовой поддержкой видео

Сообщение CHERTS » 01 окт 2013, 15:54

orangeudav писал(а):!udpsink <- тут пробел между ! и udpsink должен быть)


точно, в пробеле ело, все заработало, камера показывает! спасибо.
CHERTS
 
Сообщения: 20
Зарегистрирован: 30 сен 2013, 12:01

Re: Долгожданное обновление SDK с тестовой поддержкой видео

Сообщение CHERTS » 01 окт 2013, 16:42

booter писал(а):Поковырял вопрос: rtsp по умолчанию только клиент, сервер нужно собирать отдельно -
http://gstreamer.freedesktop.org/src/gst-rtsp-server/


можно ли его будет включить в sdk ? мне больше нужен rtsp-сервер, чем клиент. заранее спасибо.
CHERTS
 
Сообщения: 20
Зарегистрирован: 30 сен 2013, 12:01

Re: Долгожданное обновление SDK с тестовой поддержкой видео

Сообщение Smit » 01 окт 2013, 17:10

CHERTS писал(а):
booter писал(а):Поковырял вопрос: rtsp по умолчанию только клиент, сервер нужно собирать отдельно -
http://gstreamer.freedesktop.org/src/gst-rtsp-server/


можно ли его будет включить в sdk ? мне больше нужен rtsp-сервер, чем клиент. заранее спасибо.

live555 там есть изначально.
Smit
 
Сообщения: 126
Зарегистрирован: 07 сен 2013, 00:53

Re: Долгожданное обновление SDK с тестовой поддержкой видео

Сообщение krupoderov » 01 окт 2013, 19:59

orangeudav писал(а):
krupoderov писал(а):только не понятно почему такое темное изображение с камеры. даже китайские фоскамы более светлую дают картинку. (

отклеить транспортировочную пленку с камеры?


отклеил сразу. если светить ей на мониторы или в солнечную погоду, то отлично. а если в комнату где включен верхний свет - лишь темные силуэты.
krupoderov
 
Сообщения: 12
Зарегистрирован: 05 сен 2013, 09:45

Re: Долгожданное обновление SDK с тестовой поддержкой видео

Сообщение muzhig » 01 окт 2013, 20:29

У меня с искуственным освещением все было ок. Может брак?
muzhig
 
Сообщения: 65
Зарегистрирован: 14 сен 2013, 19:47

Re: Долгожданное обновление SDK с тестовой поддержкой видео

Сообщение CHERTS » 02 окт 2013, 07:04

Smit писал(а):
CHERTS писал(а):live555 там есть изначально.


У live555 непонятная лицензия, судя по всему не GPL, так что не вариант.
Нужно что то открытое, gst-rtsp-server - само то.
CHERTS
 
Сообщения: 20
Зарегистрирован: 30 сен 2013, 12:01

Re: Долгожданное обновление SDK с тестовой поддержкой видео

Сообщение Smit » 02 окт 2013, 08:43

CHERTS писал(а):
Smit писал(а):
CHERTS писал(а):live555 там есть изначально.


У live555 непонятная лицензия, судя по всему не GPL, так что не вариант.
Нужно что то открытое, gst-rtsp-server - само то.

Вообще то там написано чётко. LGPL.
Smit
 
Сообщения: 126
Зарегистрирован: 07 сен 2013, 00:53

Re: Долгожданное обновление SDK с тестовой поддержкой видео

Сообщение booter » 02 окт 2013, 10:42

CHERTS писал(а):можно ли его будет включить в sdk ? мне больше нужен rtsp-сервер, чем клиент. заранее спасибо.

Можно. Это уже сделано, но еще не проверено и не проброшено в систему контроля версий. Думаю, к выходным получится.
Аватара пользователя
booter
virt2real team
 
Сообщения: 47
Зарегистрирован: 08 авг 2012, 19:52
Откуда: Россия, Тула

Re: Долгожданное обновление SDK с тестовой поддержкой видео

Сообщение CHERTS » 03 окт 2013, 13:24

Мои 5 копеек в автоматизацию по трансляции видео через gstreamer.

Задача: Обеспечить трансляцию видеопотока с Виртурилки на ПК через wi-fi (wlan0), если wi-fi рушится, то транслировать через usb0

Что есть:
ПК с wi-fi адаптером с адресом 192.168.1.100
Виртурилка подключена к ПК по usb, стоят драйвера rndis, адрес интерфейса 192.168.2.1
Адрес Виртурилки через wi-fi будет 192.168.1.200
Адрес Виртурилки через usb будет 192.168.2.2

Решение:
Привожу конфиги Виртурилки (моя прошивка собрана с ftp-сервером vsftpd, поэтому в autostart.sh присутствует его запуск):

Файл /etc/wpa_supplicant.conf

Код: Выделить всё
ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=root

#eapol_version=2
ap_scan=1
#fast_reauth=1
#update_config=1

network={
    ssid="MYSID"
    scan_ssid=1
    key_mgmt=WPA-PSK
    group=TKIP CCMP
    pairwise=TKIP CCMP
    proto=WPA RSN
    psk="MYPASSWORD"
    priority=50
}


MYSID и MYPASSWORD меняем на свои.

Файл /etc/network/interfaces

Код: Выделить всё
# Configure Loopback
auto lo
iface lo inet loopback

# Wired interface
#auto eth0
#iface eth0 inet static
#  address 192.168.1.127
#  netmask 255.255.0.0
#  gateway 192.168.1.1

# Wireless interface
auto wlan0
iface wlan0 inet static
  address 192.168.1.200
  netmask 255.255.255.0
  gateway 192.168.1.1
  dns-nameservers 192.168.1.1

auto usb0
iface usb0 inet static
  address 192.168.2.2
  netmask 255.255.255.0


Файл /etc/virt2real/autostart.sh

Код: Выделить всё
#!/bin/sh

# mount debugfs
mount -t debugfs debugfs /sys/kernel/debug

# start 1-wire modules
#modprobe wire.ko
#modprobe w1-gpio.ko
#modprobe w1_therm.ko

# path for NodeJS global modules
export NODE_PATH=/usr/lib/node_modules

ifconfig usb0 192.168.2.2
ifconfig usb0 up

/usr/sbin/vsftpd >/dev/null 2>&1

DEVICE='wlan0'
TEST_IF=`/sbin/ip link show dev $DEVICE 2> /dev/null`
if [ "$TEST_IF" == "" ] ; then
  route add default gw 192.168.2.1 usb0
  /etc/virt2real/camera-usb.sh &
else
  # turn on wi-fi don't sleep script
  /etc/virt2real/dontsleep.sh &
fi


Тут все просто, если интерфейса wlan0 нет, то есть модуль wi-fi физически не подключен, то запускаем трансляцию на адрес указанный в /etc/virt2real/camera-usb.sh
Если интерфейс wlan0 есть, то запускаем скрипт /etc/virt2real/dontsleep.sh, для того чтобы wi-fi не заснул и не отвалился

Файл /etc/virt2real/wlan.sh

Код: Выделить всё
#!/bin/sh
modprobe libertas
modprobe libertas_sdio
sleep 5
/usr/sbin/wpa_supplicant -Dwext -iwlan0 -c /etc/wpa_supplicant.conf -B
/usr/sbin/wpa_cli -B -a /etc/virt2real/wlanchanged.sh

ifconfig wlan0 192.168.1.200
ifconfig wlan0 up


Файл /etc/virt2real/wlanchanged.sh

Код: Выделить всё
#!/bin/sh

echo "WI-FI: " $1 $2

case "$2" in
DISCONNECTED)
        /etc/virt2real/setlight.sh red off
        killall gst-launch-0.10
        route del default
        route add default gw 192.168.2.1 usb0
        /etc/virt2real/camera-usb.sh &
;;

CONNECTED)
        #ifup $1
        /etc/virt2real/setlight.sh red on
        killall gst-launch-0.10
        route del default
        route add default gw 192.168.1.1 wlan0
        /etc/virt2real/camera.sh &
;;
esac


Тут тоже все довольно понятно:
Если соединение во wi-fi установилось, то прибиваем gst-launch-0.10, включаем красный светодиод, удаляем старый маршрут по-умолчанию, добавляем новый через wlan0, выполняем /etc/virt2real/camera.sh в котором запускаем трансляцию на адрес 192.168.1.100 по wi-fi сети.
Если соединение во wi-fi упало, то прибиваем gst-launch-0.10, выключаем красный светодиод, удаляем старый маршрут по-умолчанию, добавляем новый через usb0, выполняем /etc/virt2real/camera-usb.sh в котором запускаем трансляцию на адрес 192.168.2.1 через интерфейс usb0.

Файл /etc/virt2real/camera.sh

Код: Выделить всё
#!/bin/sh

gst-launch v4l2src always-copy=false chain-ipipe=true ! video/x-raw-yuv,format='(fourcc)'NV12, width=640, height=480, framerate='(fraction)'30/1 ! dmaiaccel ! dmaienc_h264 ddrbuf=true rcalgo=0 bytestream=true encodingpreset=2 ratecontrol=1 intraframeinterval=46 idrinterval=46 targetbitrate=1000000 ! rtph264pay ! udpsink port=3000 host=192.168.1.100 sync=false enable-last-buffer=false >/dev/null 2>&1


Собственно трансляция на адрес 192.168.1.100

Файл /etc/virt2real/camera-usb.sh

Код: Выделить всё
#!/bin/sh

gst-launch v4l2src always-copy=false chain-ipipe=true ! video/x-raw-yuv,format='(fourcc)'NV12, width=640, height=480, framerate='(fraction)'30/1 ! dmaiaccel ! dmaienc_h264 ddrbuf=true rcalgo=0 bytestream=true encodingpreset=2 ratecontrol=1 intraframeinterval=46 idrinterval=46 targetbitrate=1000000 ! rtph264pay ! udpsink port=3000 host=192.168.2.1 sync=false enable-last-buffer=false >/dev/null 2>&1


Трансляция на адрес 192.168.2.1

P.S. Все работает, проверено на 2 виртурилках ;)
CHERTS
 
Сообщения: 20
Зарегистрирован: 30 сен 2013, 12:01

Пред.След.

Вернуться в Софт на виртурилке - SDK, Linux, Github, программирование (C/C++ и др.)

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0

cron