Broadcast rt video to android device, and display it side by side on terminal

Potoman lepotoman at msn.com
Mon Dec 15 11:36:19 PST 2014


Hey everybody ! I repost cause nobody have answer the first time, so I try to
better explain my problem but by advance, sorry for my Engmish ^^


~~~~


I'm working on gstreamer with an android device.

The goal of my work is to place, side by side, the same video. I do that
work successfully with this kind of pipeline:

[1]
*gst-launch videotestsrc ! video/x-raw-rgb,width=400,height=480 !
ffmpegcolorspace ! tee name=t videomixer name=mix sink_0::xpos=0
sink_0::ypos=0 sink_0::zorder=0 sink_1::xpos=0 sink_1::ypos=0
sink_1::zorder=1 sink_2::xpos=400 sink_2::ypos=0 sink_2::zorder=2 !
ffmpegcolorspace ! autovideosink videotestsrc pattern=\"black\" !
video/x-raw-rgb,width=800,height=480 ! mix.sink_0 t. ! queue ! mix.sink_1 t.
! queue ! mix.sink_2*

It's work fine.



Now, I want to replace the videotestsrc by a udpsrc plugin. The video is
pass by raw format.

I do this broadcaster :

[2]
*gst-launch-1.0 videotestsrc ! video/x-raw, format=RGB, framerate=25/1,
width=400,height=480 ! videoconvert ! rtpvrawpay ! udpsink host=127.0.0.1
port=5000
*

With this receiver :

[3]
*gst-launch udpsrc port=5000 caps=\"application/x-rtp, media=(string)video,
clock-rate=(int)90000, encoding-name=(string)RAW, sampling=(string)RGB,
depth=(string)8, width=(string)400, height=(string)480, payload=(int)96\" !
rtpvrawdepay ! ffmpegcolorspace ! autovideosink*

And it's work fine.



But, when I replace in my [1] pipeline the terms :
*videotestsrc ! video/x-raw-rgb,width=400,height=480*

By this :
*gst-launch udpsrc port=5000 caps=\"application/x-rtp, media=(string)video,
clock-rate=(int)90000, encoding-name=(string)RAW, sampling=(string)RGB,
depth=(string)8, width=(string)400, height=(string)480, payload=(int)96\" !
rtpvrawdepay*

So my final pipeline is :

[4]
*gst-launch udpsrc port=5000 caps=\"application/x-rtp, media=(string)video,
clock-rate=(int)90000, encoding-name=(string)RAW, sampling=(string)RGB,
depth=(string)8, width=(string)400, height=(string)480, payload=(int)96\" !
rtpvrawdepay ! ffmpegcolorspace ! tee name=t videomixer name=mix
sink_0::xpos=0 sink_0::ypos=0 sink_0::zorder=0 sink_1::xpos=0 sink_1::ypos=0
sink_1::zorder=1 sink_2::xpos=400 sink_2::ypos=0 sink_2::zorder=2 !
ffmpegcolorspace ! autovideosink videotestsrc pattern=\"black\" !
video/x-raw-rgb,width=800,height=480 ! mix.sink_0 t. ! queue ! mix.sink_1 t.
! queue ! mix.sink_2*


I got this error message :

gstbin.c:2399:gst_bin_do_latency_func:<pipeline0> falied to query latency


More further, I have discover that if I run my emetter before my receiver,
my receiver display only the first frame.

I don't know why !



If someone have see an error in my reasoning...

Thank :)





--
View this message in context: http://gstreamer-devel.966125.n4.nabble.com/Broadcast-rt-video-to-android-device-and-display-it-side-by-side-on-terminal-tp4669933.html
Sent from the GStreamer-devel mailing list archive at Nabble.com.


More information about the gstreamer-devel mailing list