Note: This is no ready-made solution yet, just a list of pointers.
You can use “gst-inspect | less” to get a list of the current capabilities of gstreamer and it’s plugins.
To start, you should be able to see live video using this:
gst-launch v4l2src device=/dev/video1 ! jpegdec ! autovideosink
The manpage of gst-launch has an example for “network streaming”, but it doesn’t work here.
But you would have to do something similar like this:
gst-launch v4l2src ! jpegdec ! videoscale ! video/x-raw-yuv, width=320, height=240 ! ffmpegcolorspace ! ffenc_h263 ! video/x-h263 ! rtph263ppay pt=96 ! udpsink host=127.0.0.1 port=8800 sync=false
This does not work yet:
WARNING: Faulty connection: Could not connect ffenc_h2630 with rtph263ppay0
The reason seems to be that jpegdec does not serve the format declared as “video/x-raw-yuv”, and this is detected when trying to connect to RTP payloader. We need an additional encoder here.
The following commands show that the camera servers jpgeg:
$ gst-launch v4l2src ! filesink location=Desktop/test.file $ gst-typefind test.file test.file - image/jpeg
Additional useful things that can be used in the pipelines: r263depayloader, gconfv4l2src
The best solution will than be to combine this with the VLC multimedia player and server, to stream it. See:
vlc --longhelp --advanced