Putting together a complex gstreamer command line...
Robin A. Jensen
RAJensen at youmail.dk
Sun Apr 3 13:40:44 UTC 2016
Don't know so much about G-Streamer, but i did have a little fight with
videomixer. (I won)
Now i've got trouble with a tcpclientsrc & Python....
But I think that your Pipeline is incomplete regarding to your mixer.
First of all: I'm quite sure that it needs that your src use
do-timestamp=true and some where down the pipeline, some Caps must be
provided and some queue might help on roll.
Also importent: Mixer needs to know where to put mixed sources on
display. Like sink_0::xpos=0 sink_0::ypos=0 and display size must match
your 2 x stream width.
Consider to use a videotestsrc as a background with the width,
height,format,framerate and feed it to mixer and then mix your sources.
And use videoconvert to your sources.
I have a Rpi with tcpserversink streaming to a Win7 tcpclientsrc and can
mix 2 streams.
I set Caps according to my video before streams go out and a
videotestsrc as background for the mixer
I've not used v4l2src but raspivid and fdsrc.
Best regards Robin.
Den 03-04-2016 kl. 14:30 skrev nicko:
> For the sake of completeness, here is the question - I would really
> appreciate help on this as I'm completely stuck:
> I have a Raspberry Pi Compute Module with 2 cameras. I'm trying to use
> gstreamer with v4l2src selecting /dev/video0 & /dev/video1 to continually
> run at about 20FPS and use videomixer to combine the images side-by-side
> then output H.264 over RTP to a UDP port (read by another host). Somewhere
> in the comand line, I'm going to need to include glshader to apply some
> distortion to each image before the merge...
> The default (current) RPi v4l2src driver does not support two cameras, but
> as of today a beta is available that does, however it requires the beta
> 4.4.6 kernel.
> The problem I'm having is in getting the mixer connected.
> #!/bin/bash -x
> # Script to start RPi Compute Module streaming over RTP (RFC3984)
> # from both cameras
> FPS=20 # Frames per second
> WIDTH=640 # Image width
> HEIGHT=480 # Image height
> UPLINK_HOST=192.168.1.73 # Receiving host
> PORT=5200 # UDP port
> # TESTING WITH ONE CAMERA ONLY FOR THE MOMENT
> function start_streaming
> gst-launch-1.0 -ve videomixer name=mixer \
> ! x264enc \
> ! h264parse \
> ! rtph264pay config-interval=10 pt=96 \
> ! udpsink host=$UPLINK_HOST port=$PORT \
> v4l2src device=/dev/video0 \
> ! video/x-raw,format=AYUV,width=$WIDTH,height=$HEIGHT,framerate=$FPS/1 \
> ! mixer.
> # Start streaming on both cameras simultaneously
> echo Image size: $WIDTH x $HEIGHT
> echo Frame rate: $FPS
> echo Starting cameras 0 and 1 streaming to $UPLINK_HOST:$PORT
> # Wait until everything has finished
> exit 0
> # end
> What I'm getting is the rather useless (to me) message:
> WARNING: erroneous pipeline: could not link v4l2src0 to mixer
> I've fiddled about rather a lot and got nowhere - it's probably something
> trivial, but be blowed if I can see it !
> Many thanks
> View this message in context: http://gstreamer-devel.966125.n4.nabble.com/Putting-together-a-complex-gstreamer-command-line-tp4676713p4676714.html
> Sent from the GStreamer-devel mailing list archive at Nabble.com.
> gstreamer-devel mailing list
> gstreamer-devel at lists.freedesktop.org
More information about the gstreamer-devel