v4l2rtspserver/README.md

110 lines
4.0 KiB
Markdown
Raw Normal View History

2016-05-18 17:09:47 +00:00
[![Build status](https://travis-ci.org/mpromonet/v4l2rtspserver.png)](https://travis-ci.org/mpromonet/v4l2rtspserver)
2015-03-25 21:46:11 +00:00
[![Coverity Scan Build Status](https://scan.coverity.com/projects/4644/badge.svg)](https://scan.coverity.com/projects/4644)
2016-05-18 17:09:47 +00:00
[![Coverage Status](https://coveralls.io/repos/github/mpromonet/v4l2rtspserver/badge.svg?branch=master)](https://coveralls.io/github/mpromonet/v4l2rtspserver?branch=master)
2016-01-31 10:11:25 +00:00
2014-09-12 22:51:38 +00:00
2016-05-18 17:09:47 +00:00
v4l2rtspserver
2013-11-09 23:08:44 +00:00
====================
2013-11-09 23:34:56 +00:00
2016-05-18 17:09:47 +00:00
This is an streamer feed from an Video4Linux device that support H264/JPEG or VP8 capture.
2013-11-09 23:34:56 +00:00
The RTSP server support :
- RTP/UDP unicast
- RTP/UDP multicast
- RTP/TCP
- RTP/RTSP/HTTP
2016-05-18 17:09:47 +00:00
The HTTP server support :
- HLS
- MPEG-DASH
2013-11-09 23:44:03 +00:00
License
2014-08-18 21:35:23 +00:00
------------
2013-11-09 23:44:03 +00:00
Domain public
2014-11-22 14:35:59 +00:00
Dependencies
2014-09-13 15:33:45 +00:00
------------
- liblivemedia-dev [License LGPL](http://www.live555.com/liveMedia/) > live.2012.01.07 (need StreamReplicator)
- liblog4cpp5-dev [License LGPL](http://log4cpp.sourceforge.net/#license)
Download
--------
[Latest build](https://github.com/mpromonet/h264_v4l2_rtspserver/releases/latest/)
2014-09-13 15:33:45 +00:00
2013-11-09 23:44:03 +00:00
Build
2014-08-18 21:35:23 +00:00
-------
cmake . && make
2014-08-15 22:33:02 +00:00
2016-03-05 16:27:54 +00:00
If it fails you will need to install liblivemedia-dev liblog4cpp5-dev.
2014-08-15 22:33:02 +00:00
If it still not work you will need to read Makefile.
2013-11-10 14:41:05 +00:00
2016-05-18 17:09:47 +00:00
In order to build live555 disabling check of port reuse, you can proceed like this:
2016-05-29 20:52:22 +00:00
wget http://www.live555.com/liveMedia/public/live555-latest.tar.gz -O - | tar xvzf -
2016-05-18 17:09:47 +00:00
cd live
./genMakefile linux
sudo make CPPFLAGS=-DALLOW_RTSP_SERVER_PORT_REUSE=1 install
2014-08-18 21:35:23 +00:00
Install
---------
2015-09-05 16:09:13 +00:00
make install
Build Package
-------------
2014-08-18 21:35:23 +00:00
cpack .
dpkg -i h264_v4l2_rtspserver*.deb
Using Raspberry Pi Camera
-------------------------
This RTSP server works using Raspberry Pi camera with :
2014-08-18 21:35:23 +00:00
- the unofficial V4L2 driver for the Raspberry Pi Camera Module http://www.linux-projects.org/modules/sections/index.php?op=viewarticle&artid=14
2015-01-22 21:37:35 +00:00
2015-01-22 21:30:27 +00:00
sudo uv4l --driver raspicam --auto-video_nr --encoding h264
2014-08-18 21:35:23 +00:00
- the official V4L2 driver bcm2835-v4l2
2015-01-22 21:37:35 +00:00
2015-01-22 21:30:27 +00:00
sudo modprobe -v bcm2835-v4l2
2013-11-09 23:44:03 +00:00
Using with v4l2loopback
-----------------------
For camera providing uncompress format [v4l2tools](https://github.com/mpromonet/v4l2tools) can compress the video to an intermediate virtual V4L2 device [v4l2loopback](https://github.com/umlaeute/v4l2loopback):
/dev/video0 (camera device)-> v4l2compress_h264 -> /dev/video10 (v4l2loopback device) -> h264_v4l2_rtspserver
This workflow could be set using :
modprobe v4l2loopback video_nr=10
v4l2compress_h264 /dev/video0 /dev/video10 &
h264_v4l2_rtspserver /dev/video10 &
2013-11-09 23:45:40 +00:00
Usage
-----
2015-09-05 16:09:13 +00:00
./h264_v4l2_rtspserver [-v[v]] [-Q queueSize] [-O file] \
[-I interface] [-P RTSP port] [-p RTSP/HTTP port] [-m multicast url] [-u unicast url] [-M multicast addr] [-c] [-t timeout] \
2015-09-05 16:09:13 +00:00
[-r] [-s] [-W width] [-H height] [-F fps] [device1] [device2]
2015-01-22 21:30:27 +00:00
-v : verbose
-vv : very verbose
2013-11-09 23:49:18 +00:00
-Q length: Number of frame queue (default 10)
2015-01-22 21:30:27 +00:00
-O output: Copy captured frame to a file or a V4L2 device
2014-08-18 21:35:23 +00:00
RTSP options :
-I addr : RTSP interface (default autodetect)
2013-11-09 23:49:18 +00:00
-P port : RTSP port (default 8554)
-p port : RTSP over HTTP port (default 0)
2015-08-01 16:39:46 +00:00
-u url : unicast url (default unicast)
-m url : multicast url (default multicast)
2015-09-06 18:15:19 +00:00
-M addr : multicast group:port (default is random_address:20000)
2015-08-01 16:39:46 +00:00
-c : don't repeat config (default repeat config before IDR frame)
-t secs : RTCP expiration timeout (default 65)
-T : send Transport Stream instead of elementary Stream
-S secs : HTTP segment duration (enable HLS & MPEG-DASH)
2014-08-18 21:35:23 +00:00
V4L2 options :
2015-03-14 16:37:26 +00:00
-r : V4L2 capture using read interface (default use memory mapped buffers)
-w : V4L2 capture using write interface (default use memory mapped buffers)
2015-03-14 16:37:26 +00:00
-s : V4L2 capture using live555 mainloop (default use a separated reading thread)
-f : V4L2 capture using current capture format (-W,-H,-F are ignored)
-fformat : V4L2 capture using format (-W,-H,-F are used)
2013-11-09 23:49:18 +00:00
-W width : V4L2 capture width (default 640)
-H height: V4L2 capture height (default 480)
2015-09-05 16:09:13 +00:00
-F fps : V4L2 capture framerate (default 25)
2013-11-09 23:49:18 +00:00
device : V4L2 capture device (default /dev/video0)