intgr / gst-v4l2loopback

a gstreamer element that allows to write to a v4l2-loopback (NOTE that newer versions of the "v4l2loopback" kernel-module are supposed to work with GStreamer's native "v4l2sink" element)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

v4l2loopback - gstreamer sink to write into v4l2 loopback devices
=================================================================

--- PREREQUISITES ---
you need a linux-kernel that has v4l2 support (anything >=2.6.0).

then you need the v4l2loopback kernel driver installed; get it from:
http://code.google.com/p/v4l2loopback/

and then you need gstreamer-0.10

--- INSTALL ---
you need autotools, a C-compiler (preferably gcc), gstreamer-headers and the
v4l2-headers (the latter should be available on any recent linux installation)

  $ ./autogen.sh
  $ make
  $ make install

see the INSTALL file for more detailed instructions

--- RUN ---

once installed, there is a new gstreamer element called "v4l2loopback";
you can inspect it using:
$  gst-inspect v4l2loopback

a simple pipeline using v4l2loopback would be:
$ gst-launch videotestsrc ! ffmpegcolorspace ! v4l2loopback

--- NOTES ---
the framesize is negotiated at runtime; virtually any framesize should be
possible

the colorspace is currently fixed to YUY2 (aka YUYV); LATER this might be
negotiated via caps as well...


--- FORKS ---
this code could be considered a fork from the "v4lsink" project
(http://code.google.com/p/v4lsink/).
here's the reasons for the fork (most important first)
- v4lsink uses hardcoded values
	v4lsink has both the loopback device hardcoded to /dev/video1 and the
	dimensions hardcoded to 640x480;
	first off, my loopback device is anything but /dev/video1, and i don't
	want to recompile everytime i this changes
	2nd, i don't know yet, but i guess i want variable dimensions as well
- v4lsink is written in vala
	i currently don't have the time to learn another language; i'm a
	C-hacker; given that vala generates C-code which is then compiled, i
	found myself staring at the generated C-code more often than at the
	actual source code. this is not how i think, programming should be done.
- v4lsink doesn't produce a gstreamer element, but rather a wrapper application
	i want to launch
	$ gst-launch videosrc ! v4l2loopback
	rather than
	$ v4l2sink 'videosrc ! V4l2Loopback'
	we already have a launcher, why do we need another one; and how to use
	the pipeline in other frameworks?
	note: this is mainly due to the way how everything compiles; if i knew
	more about vala (see above), it would certainly be possibly to generate
	a nice gst-element as well...

About

a gstreamer element that allows to write to a v4l2-loopback (NOTE that newer versions of the "v4l2loopback" kernel-module are supposed to work with GStreamer's native "v4l2sink" element)

License:GNU Lesser General Public License v3.0


Languages

Language:C 97.8%Language:Shell 2.2%