RTSP сервер — различия между версиями

Материал из virt2real wiki
Перейти к: навигация, поиск
(Видео и аудио)
 
Строка 99: Строка 99:
 
  PATH=/video
 
  PATH=/video
 
  BITRATE=1000000
 
  BITRATE=1000000
  /usr/bin/rtsp-server $PORT $PATH "( v4l2src queue-size=2 always-copy=false chain-ipipe=true ! video/x-raw-yuv,width=1280,height=720 ! queue ! dmaiaccel ! dmaienc_h264 ddrbuf=false copyOutput=false outputBufferSize=1500000 targetbitrate=$BITRATE encodingpreset=2 ratecontrol=1 intraframeinterval=23 idrinterval=46 level=41 qpintra=25 qpinter=25 bytestream=true ! rtph264pay pt=96 name=pay0 config-interval=0 perfect-rtptime=false scan-mode=1 ! sync=false enable-last-buffer=false alsasrc buffer-time=800000 latency-time=30000 ! audio/x-raw-int,rate=22050 ! dmaienc_aac outputBufferSize=3131072 bitrate=128000 enable-last-buffer=true sync=true outputformat=1 ! queue ! rtpmp4apay name=pay1 pt=97 )"
+
  /usr/bin/rtsp-server $PORT $PATH "( v4l2src queue-size=2 always-copy=false chain-ipipe=true ! video/x-raw-yuv,width=1280,height=720 ! queue ! dmaiaccel ! dmaienc_h264 ddrbuf=false copyOutput=false outputBufferSize=1500000 targetbitrate=$BITRATE encodingpreset=2 ratecontrol=1 intraframeinterval=23 idrinterval=46 level=41 qpintra=25 qpinter=25 bytestream=true ! rtph264pay pt=96 name=pay0 config-interval=0 perfect-rtptime=false scan-mode=1 ! sync=false enable-last-buffer=false alsasrc latency-time=10000 slave-method=0 ! audio/x-raw-int, channels=1, rate=16000, endianness=1234, signed=true, width=16, depth=16 ! dmaienc_aac tns=false copyOutput=true outputBufferSize=90000 bitrate=64000 sync=true outputformat=2 ! queue ! rtpmp4apay name=pay1 pt=97 )"
  
 
== Полезные ссылки ==
 
== Полезные ссылки ==

Текущая версия на 22:51, 13 октября 2014

Содержание

Вступление

Потоковый протокол реального времени (Real Time Streaming Protocol, RTSP), обычно используется для передачи аудио-видео в IP камерах.

Программная реализация RTSP сервера на Виртурилке существует в двух вариантах:

На базе отдельного приложения (которое использует GStreamer для формирования видеопотока и библиотеку RTSP-сервера для GStreamer) и на базе выходного элемента rtspsink для GStreamer.


rtsp-server

Приложение rtsp-server.


rtspsink

gst-rr-rtsp-sink


Работа с RTSP сервером

Установка

Всё необходимое для работы RTSP сервера входит в состав прошивок, начиная с версии начиная с версии от 03.06.2014. Но, в случае надобности, можно установить через пакетную систему, командами

opkg-cl update
opkg-cl install rtsp-server

Помимо бинарного файла /usr/bin/rtsp-server, будут установлены скрипты /etc/virt2real/rtsp_server.sh и /etc/init.d.sample/S92rtspserver

S92rtspserver используется для автозапуска RTSP сервера. Для автозапуска достаточно переместить этот скрипт из каталога /etc/init.d.sample в /etc/init.d. Сделать можно это в веб-интерфейсе (админке), в разделе Настройки -> Автозапуск.


Запуск в консоли

/etc/virt2real/rtsp_server.sh <start|stop> [port] [path] [bitrate] [version]


Параметр Значение
start запустить сервер
stop остановить сервер
port порт, по умолчанию = 554
path путь, по умолчанию /video
bitrate битрейт видео, по умолчанию 1000000 бит/сек
version тип сервера, = 1 - использовать rtsp-server, = 2 - использовать rtspsink для GStreamer

Например, для запуска RTSP сервера, который будет доступен по адресу rtsp://<IP_адрес>:554/video надо запустить команду

/etc/virt2real/rtsp_server.sh start 544 /video 1000000 1

Тут все параметры указаны такими же, какие они будут установлены по умолчанию, т.е. равносильно запуску команды

/etc/virt2real/rtsp_server.sh start


Запуск в админке

Настройки и запуск RTSP сервера также можно произвести из админки, в разделе Видео -> RTSP.


Пример использования камеры в Videonet

Камера в Videonet8


Настройка камеры в Videonet8


Цепочки GStresmeer-а

Только видео

Вариант с отдельным приложением:

PORT=554
PATH=/video
BITRATE=1000000
/usr/bin/rtsp-server $PORT $PATH "( v4l2src queue-size=2 always-copy=false chain-ipipe=true ! video/x-raw-yuv,width=1280,height=720 ! queue ! dmaiaccel ! dmaienc_h264 ddrbuf=false copyOutput=false outputBufferSize=1500000 targetbitrate=$BITRATE encodingpreset=2 ratecontrol=1 intraframeinterval=23 idrinterval=46 level=41 qpintra=25 qpinter=25 bytestream=true ! rtph264pay pt=96 name=pay0 mtu=3000  config-interval=0 perfect-rtptime=false scan-mode=1 )" 

Вариант с gst-launch

PORT=554
PATH=/video
BITRATE=1000000
/usr/bin/gst-launch v4l2src queue-size=2 always-copy=false chain-ipipe=true ! video/x-raw-yuv,format='(fourcc)'NV12, width=1280, height=720, framerate='(fraction)'30/1 ! queue ! dmaiaccel ! dmaienc_h264 ddrbuf=false copyOutput=false outputBufferSize=9000000 targetbitrate=$BITRATE encodingpreset=2 ratecontrol=2 intraframeinterval=10 idrinterval=20 level=41 ! queue ! rtspsink mapping="$PATH" service="$PORT"


Видео и аудио

PORT=554
PATH=/video
BITRATE=1000000
/usr/bin/rtsp-server $PORT $PATH "( v4l2src queue-size=2 always-copy=false chain-ipipe=true ! video/x-raw-yuv,width=1280,height=720 ! queue ! dmaiaccel ! dmaienc_h264 ddrbuf=false copyOutput=false outputBufferSize=1500000 targetbitrate=$BITRATE encodingpreset=2 ratecontrol=1 intraframeinterval=23 idrinterval=46 level=41 qpintra=25 qpinter=25 bytestream=true ! rtph264pay pt=96 name=pay0 config-interval=0 perfect-rtptime=false scan-mode=1 ! sync=false enable-last-buffer=false alsasrc latency-time=10000 slave-method=0 ! audio/x-raw-int, channels=1, rate=16000, endianness=1234, signed=true, width=16, depth=16 ! dmaienc_aac tns=false copyOutput=true outputBufferSize=90000 bitrate=64000 sync=true outputformat=2 ! queue ! rtpmp4apay name=pay1 pt=97 )"

Полезные ссылки