Giter Club home page Giter Club logo

v4l2rtspserver's Introduction

Release Build status Coverity Scan Build Status Coverage Status

v4l2rtspserver

This is an streamer feed from an Video4Linux device that support H264/JPEG or VP8 capture.

The RTSP server support :

  • RTP/UDP unicast
  • RTP/UDP multicast
  • RTP/TCP
  • RTP/RTSP/HTTP

The HTTP server support :

  • HLS
  • MPEG-DASH

License

Domain public

Dependencies

Usage

./v4l2rtspserver [-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] \
		       [-r] [-s] [-W width] [-H height] [-F fps] [device1] [device2]
	 -v       : verbose
	 -vv      : very verbose
	 -Q length: Number of frame queue  (default 10)
	 -O output: Copy captured frame to a file or a V4L2 device
	 RTSP options :
	 -I addr  : RTSP interface (default autodetect)
	 -P port  : RTSP port (default 8554)
	 -p port  : RTSP over HTTP port (default 0)
	 -u url   : unicast url (default unicast)
	 -m url   : multicast url (default multicast)
	 -M addr  : multicast group:port (default is random_address:20000)
	 -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)
	 V4L2 options :
	 -r       : V4L2 capture using read interface (default use memory mapped buffers)
	 -w       : V4L2 capture using write interface (default use memory mapped buffers)
	 -s       : V4L2 capture using live555 mainloop (default use a separated reading thread)
	 -f       : V4L2 capture using current capture format (-W,-H are ignored)
	 -fformat : V4L2 capture using format (-W,-H are used)
	 -W width : V4L2 capture width (default 640)
	 -H height: V4L2 capture height (default 480)
	 -F fps   : V4L2 capture framerate (default 25, 0 disable setting framerate)
	 device   : V4L2 capture device (default /dev/video0)

Build

  • Before build
    The build try to install live555 package using apt-get, however in order to install live555 disabling check of port reuse, you can proceed like this:

      wget http://www.live555.com/liveMedia/public/live555-latest.tar.gz -O - | tar xvzf -
      cd live
      ./genMakefiles linux
      sudo make CPPFLAGS=-DALLOW_RTSP_SERVER_PORT_REUSE=1 install
    
  • Build

      cmake . && make
    

    If it fails you will need to install liblivemedia-dev liblog4cpp5-dev.
    If it still not work you will need to read Makefile.

  • Install

      make install
    
  • Packaging

      cpack .
    

Using Raspberry Pi Camera

This RTSP server works using Raspberry Pi camera with :

Using with v4l2loopback

For camera providing uncompress format v4l2tools can compress the video to an intermediate virtual V4L2 device v4l2loopback:

/dev/video0 (camera device)-> v4l2compress_h264 -> /dev/video10 (v4l2loopback device) -> v4l2rtspserver

This workflow could be set using :

modprobe v4l2loopback video_nr=10
v4l2compress_h264 /dev/video0 /dev/video10 &
v4l2rtspserver /dev/video10 &

Receiving HTTP streams

When v4l2rtspserver is started with '-S' arguments it give access to streams through HTTP. These streams could be reveced :

* for MPEG-DASH with :   
       MP4Client http://..../unicast.mpd   
* for HLS with :  
       vlc http://..../unicast.m3u8  
       gstreamer-launch-1.0 playbin uri=http://.../unicast.m3u8  

v4l2rtspserver's People

Contributors

mpromonet avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.