Trouble with basic RTP raw video pipelines

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Trouble with basic RTP raw video pipelines

Ward, David - 0663 - MITLL
I am using gstreamer 0.10.29 and gstreamer-plugins-good 0.10.23.  I have
really been struggling to get any type of RTP pipeline to work correctly
on both the sending and receiving side (first trying Theora, now just
raw video).  I'm issuing both of these commands on the same host -- this
is as basic as I think I can get:

# Generate test video and send to port 5000
gst-launch --gst-debug=3 \
gstrtpsession name=session \
videotestsrc ! rtpvrawpay ! session.send_rtp_sink \
session.send_rtp_src ! udpsink port=5000

# Receive video from port 5000 and display on screen
gst-launch --gst-debug=3 \
gstrtpsession name=session \
udpsrc port=5000 caps="application/x-rtp, media=(string)video, \
    clock-rate=(int)90000, encoding-name=(string)RAW, \
    sampling=(string)YCbCr-4:2:2, depth=(string)8, \
    width=(string)320, height=(string)240, \
    colorimetry=(string)SMPTE240M" ! session.recv_rtp_sink \
session. ! rtpvrawdepay ! xvimagesink


I can observe traffic on port 5000 of the loopback interface using
Wireshark.  However the receiving pipeline never displays any video.

The caps on the udpsrc were obtained by copying them from the debugging
output on the sending side.  A simple pipeline that does not involve RTP
works fine for displaying the video locally, such as this:

gst-launch videotestsrc ! xvimagesink


First, is there anything I am obviously doing wrong in the setup of my
pipelines?

Also, here are some excerpts from the debug log on the receiving side
that I am not quite sure about:


GST_PIPELINE ./grammar.y:568:gst_parse_perform_link: linking
udpsrc0:(any) to session:session (0/1) with caps "(NULL)"
     => what is "session:session"?  shouldn't that be
"session:recv_rtp_sink"?
     => why are caps NULL?  I think I am setting them explicitly for the
udpsrc


bin gstbin.c:2315:gst_bin_do_latency_func:<pipeline0> failed to query
latency
     => is this significant?


I have tried to follow any documentation and examples I can find with
gstrtpbin/gstrtpsession, but unfortunately many of the specific examples
are for patented codecs (I am in the United States).  Ultimately I plan
to add Theora encoding/decoding to this pipeline and to use the
gstrtpbin element and RTCP, but I think I first need to understand why
this example doesn't work before I can hope to make the other work.


Thanks in advance for any help,

David


------------------------------------------------------------------------------
ThinkGeek and WIRED's GeekDad team up for the Ultimate
GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the
lucky parental unit.  See the prize list and enter to win:
http://p.sf.net/sfu/thinkgeek-promo
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel

smime.p7s (7K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Trouble with basic RTP raw video pipelines

Ward, David - 0663 - MITLL
I solved my own problem, although I'd classify this as a bug?

udpsink port=5000
    => uses IPv6

udpsrc port=5000
    => uses IPv4

Apparently "localhost" (the default value for the "host" parameter of
udpsink) maps to both IPv6 and IPv4 addresses in Fedora 13.  It is also
this way under Ubuntu 10.04.  So could the default value of "host" for
udpsrc be changed to "127.0.0.1", or the default value of
"multicast-group" be changed to "::0", just so that the same address
family is used for both udpsink and udpsrc by default?

Or at least mention this in the documentation?

David


------------------------------------------------------------------------------
ThinkGeek and WIRED's GeekDad team up for the Ultimate
GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the
lucky parental unit.  See the prize list and enter to win:
http://p.sf.net/sfu/thinkgeek-promo
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel

smime.p7s (7K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Trouble with basic RTP raw video pipelines

Tristan Matthews-2
2010/6/13 Ward, David - 0663 - MITLL <[hidden email]>
I solved my own problem, although I'd classify this as a bug?

udpsink port=5000
  => uses IPv6

udpsrc port=5000
  => uses IPv4

Apparently "localhost" (the default value for the "host" parameter of udpsink) maps to both IPv6 and IPv4 addresses in Fedora 13.  It is also this way under Ubuntu 10.04.  So could the default value of "host" for udpsrc be changed to "127.0.0.1", or the default value of "multicast-group" be changed to "::0", just so that the same address family is used for both udpsink and udpsrc by default?

Or at least mention this in the documentation?

David


------------------------------------------------------------------------------
ThinkGeek and WIRED's GeekDad team up for the Ultimate
GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the
lucky parental unit.  See the prize list and enter to win:
http://p.sf.net/sfu/thinkgeek-promo
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel




--
Tristan Matthews
email: [hidden email]
web: http://tristanswork.blogspot.com

------------------------------------------------------------------------------
ThinkGeek and WIRED's GeekDad team up for the Ultimate
GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the
lucky parental unit.  See the prize list and enter to win:
http://p.sf.net/sfu/thinkgeek-promo
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel