no video with rtpjpegpay and udpsink

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

no video with rtpjpegpay and udpsink

john oliver-5
Hi there,

I have been having trouble trying to rtp any type of encoded video.  Whenever I add a payload to an already encoded video file, I can never see anything at the receiver. I'd appreciate it if anybody could take a quick look at the elements in my pipline. I've also tried this using just gst-launch as a server and both client on the same host, using a video test source..

Client ..


      gst-launch udpsrc port=1234 ! rtpjpegdepay ! filesink location=xx.jpeg

Server ..



     gst-launch videotestsrc ! ffenc_mjpeg ! rtpjpegpay ! rtpbin localport=5000 destinations=127.0.0.1:1234


When I start the server the client says .. 'Not RTP format was negotiated'

Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
ERROR: from element /GstPipeline:pipeline0/GstRtpJPEGDepay:rtpjpegdepay0: Internal GStreamer error: negotiation problem.  Please file a bug at http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer.
Additional debug info:
gstbasertpdepayload.c(360): gst_base_rtp_depayload_chain (): /GstPipeline:pipeline0/GstRtpJPEGDepay:rtpjpegdepay0:
Not RTP format was negotiated
Execution ended after 2704325327 ns.
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
Setting pipeline to NULL ...
Freeing pipeline ...

Meanwhile the server has said ..

gst-launch videotestsrc ! ffenc_mjpeg ! rtpjpegpay ! rtpbin localport=5000 destinations=127.0.0.1:1234
Setting pipeline to PAUSED ...
/GstPipeline:pipeline0/GstVideoTestSrc:videotestsrc0.GstPad:src: caps = video/x-raw-yuv, format=(fourcc)I420, width=(int)320, height=(int)240, framerate=(fraction)30/1
Pipeline is PREROLLING ...
/GstPipeline:pipeline0/ffenc_mjpeg:ffenc_mjpeg0.GstPad:src: caps = image/jpeg, width=(int)320, height=(int)240, framerate=(fraction)30/1
/GstPipeline:pipeline0/ffenc_mjpeg:ffenc_mjpeg0.GstPad:sink: caps = video/x-raw-yuv, format=(fourcc)I420, width=(int)320, height=(int)240, framerate=(fraction)30/1
/GstPipeline:pipeline0/GstRtpJPEGPay:rtpjpegpay0.GstPad:src: caps = application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)JPEG, payload=(int)96, ssrc=(guint)32682654, clock-base=(guint)3519935330, seqnum-base=(guint)25630
/GstPipeline:pipeline0/GstRtpJPEGPay:rtpjpegpay0.GstPad:sink: caps = image/jpeg, width=(int)320, height=(int)240, framerate=(fraction)30/1
/GstPipeline:pipeline0/GstRTPBin:rtpbin0/GstRTPSend:rtpsend0.GstPad:datasink: caps = application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)JPEG, payload=(int)96, ssrc=(guint)32682654, clock-base=(guint)3519935330, seqnum-base=(guint)25630
/GstPipeline:pipeline0/GstRTPBin:rtpbin0.GstGhostPad:sink: caps = application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)JPEG, payload=(int)96, ssrc=(guint)32682654, clock-base=(guint)3519935330, seqnum-base=(guint)25630
/GstPipeline:pipeline0/GstRTPBin:rtpbin0.GstGhostPad:sink: caps = application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)JPEG, payload=(int)96, ssrc=(guint)32682654, clock-base=(guint)3519935330, seqnum-base=(guint)25630
/GstPipeline:pipeline0/GstRTPBin:rtpbin0.GstGhostPad:sink.GstProxyPad:proxypad0: caps = application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)JPEG, payload=(int)96, ssrc=(guint)32682654, clock-base=(guint)3519935330, seqnum-base=(guint)25630
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
 

..and continues to roll

I might move onto gstrtpbin later, but I'd like to make sure I can get the basics working first.

-John





------------------------------------------------------------------------------
Crystal Reports - New Free Runtime and 30 Day Trial
Check out the new simplified licensing option that enables unlimited
royalty-free distribution of the report engine for externally facing
server and web deployment.
http://p.sf.net/sfu/businessobjects
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: no video with rtpjpegpay and udpsink

Wim Taymans
On Thu, 2009-06-11 at 18:09 +0100, john oliver wrote:
> Hi there,
>
> I have been having trouble trying to rtp any type of encoded video.
> Whenever I add a payload to an already encoded video file, I can never
> see anything at the receiver. I'd appreciate it if anybody could take
> a quick look at the elements in my pipline. I've also tried this using
> just gst-launch as a server and both client on the same host, using a
> video test source..
>

You need to tell the receiver what it will receive (using caps on
udpsrc). This document explains things:

http://cgit.freedesktop.org/gstreamer/gst-plugins-good/tree/gst/rtp/README

Wim

> Client ..
>
>
>       gst-launch udpsrc port=1234 ! rtpjpegdepay ! filesink
> location=xx.jpeg
>
> Server ..
>
>
>
>      gst-launch videotestsrc ! ffenc_mjpeg ! rtpjpegpay ! rtpbin
> localport=5000 destinations=127.0.0.1:1234
>
>
> When I start the server the client says .. 'Not RTP format was
> negotiated'
>
> Setting pipeline to PAUSED ...
> Pipeline is live and does not need PREROLL ...
> Setting pipeline to PLAYING ...
> New clock: GstSystemClock
> ERROR: from
> element /GstPipeline:pipeline0/GstRtpJPEGDepay:rtpjpegdepay0: Internal
> GStreamer error: negotiation problem.  Please file a bug at
> http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer.
> Additional debug info:
> gstbasertpdepayload.c(360): gst_base_rtp_depayload_chain
> (): /GstPipeline:pipeline0/GstRtpJPEGDepay:rtpjpegdepay0:
> Not RTP format was negotiated
> Execution ended after 2704325327 ns.
> Setting pipeline to PAUSED ...
> Setting pipeline to READY ...
> Setting pipeline to NULL ...
> Freeing pipeline ...
>
> Meanwhile the server has said ..
>
> gst-launch videotestsrc ! ffenc_mjpeg ! rtpjpegpay ! rtpbin
> localport=5000 destinations=127.0.0.1:1234
> Setting pipeline to PAUSED ...
> /GstPipeline:pipeline0/GstVideoTestSrc:videotestsrc0.GstPad:src: caps
> = video/x-raw-yuv, format=(fourcc)I420, width=(int)320,
> height=(int)240, framerate=(fraction)30/1
> Pipeline is PREROLLING ...
> /GstPipeline:pipeline0/ffenc_mjpeg:ffenc_mjpeg0.GstPad:src: caps =
> image/jpeg, width=(int)320, height=(int)240, framerate=(fraction)30/1
> /GstPipeline:pipeline0/ffenc_mjpeg:ffenc_mjpeg0.GstPad:sink: caps =
> video/x-raw-yuv, format=(fourcc)I420, width=(int)320, height=(int)240,
> framerate=(fraction)30/1
> /GstPipeline:pipeline0/GstRtpJPEGPay:rtpjpegpay0.GstPad:src: caps =
> application/x-rtp, media=(string)video, clock-rate=(int)90000,
> encoding-name=(string)JPEG, payload=(int)96, ssrc=(guint)32682654,
> clock-base=(guint)3519935330, seqnum-base=(guint)25630
> /GstPipeline:pipeline0/GstRtpJPEGPay:rtpjpegpay0.GstPad:sink: caps =
> image/jpeg, width=(int)320, height=(int)240, framerate=(fraction)30/1
> /GstPipeline:pipeline0/GstRTPBin:rtpbin0/GstRTPSend:rtpsend0.GstPad:datasink: caps = application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)JPEG, payload=(int)96, ssrc=(guint)32682654, clock-base=(guint)3519935330, seqnum-base=(guint)25630
> /GstPipeline:pipeline0/GstRTPBin:rtpbin0.GstGhostPad:sink: caps =
> application/x-rtp, media=(string)video, clock-rate=(int)90000,
> encoding-name=(string)JPEG, payload=(int)96, ssrc=(guint)32682654,
> clock-base=(guint)3519935330, seqnum-base=(guint)25630
> /GstPipeline:pipeline0/GstRTPBin:rtpbin0.GstGhostPad:sink: caps =
> application/x-rtp, media=(string)video, clock-rate=(int)90000,
> encoding-name=(string)JPEG, payload=(int)96, ssrc=(guint)32682654,
> clock-base=(guint)3519935330, seqnum-base=(guint)25630
> /GstPipeline:pipeline0/GstRTPBin:rtpbin0.GstGhostPad:sink.GstProxyPad:proxypad0: caps = application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)JPEG, payload=(int)96, ssrc=(guint)32682654, clock-base=(guint)3519935330, seqnum-base=(guint)25630
> Pipeline is PREROLLED ...
> Setting pipeline to PLAYING ...
> New clock: GstSystemClock
>  
>
> ..and continues to roll
>
> I might move onto gstrtpbin later, but I'd like to make sure I can get
> the basics working first.
>
> -John
>
>
>
>
> ------------------------------------------------------------------------------
> Crystal Reports - New Free Runtime and 30 Day Trial
> Check out the new simplified licensing option that enables unlimited
> royalty-free distribution of the report engine for externally facing
> server and web deployment.
> http://p.sf.net/sfu/businessobjects
> _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/gstreamer-devel


------------------------------------------------------------------------------
Crystal Reports - New Free Runtime and 30 Day Trial
Check out the new simplified licensing option that enables unlimited
royalty-free distribution of the report engine for externally facing
server and web deployment.
http://p.sf.net/sfu/businessobjects
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: no video with rtpjpegpay and udpsink

john oliver-5
> From: [hidden email]

> To: [hidden email]
> Date: Thu, 11 Jun 2009 21:37:50 +0200
> Subject: Re: [gst-devel] no video with rtpjpegpay and udpsink
>
> On Thu, 2009-06-11 at 18:09 +0100, john oliver wrote:
> > Hi there,
> >
> > I have been having trouble trying to rtp any type of encoded video.
> > Whenever I add a payload to an already encoded video file, I can never
> > see anything at the receiver. I'd appreciate it if anybody could take
> > a quick look at the elements in my pipline. I've also tried this using
> > just gst-launch as a server and both client on the same host, using a
> > video test source..
> >
>
> You need to tell the receiver what it will receive (using caps on
> udpsrc). This document explains things:
>
> http://cgit.freedesktop.org/gstreamer/gst-plugins-good/tree/gst/rtp/README
>

That README is great .. exactly what I need. Thanks Wim.

------------------------------------------------------------------------------
Crystal Reports - New Free Runtime and 30 Day Trial
Check out the new simplified licensing option that enables unlimited
royalty-free distribution of the report engine for externally facing
server and web deployment.
http://p.sf.net/sfu/businessobjects
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: no video with rtpjpegpay and udpsink

Thabelo Mmbengeni-2
Hi I am also working on the similar thing but it seems I have a problem that I cannot Identify.

I am trying to link gstrtpbin to rtptheoradepay on the Client side
I am now on the recieving side of the gstrtobin

heres my link:
--------------------------------------------------------------------------------------------------------------------------------------------------------
static void pad_added_cb (GstElement * rtpbin, GstPad * new_pad, GstElement * depay)
{
      GstPad *sinkpad;
      GstPadLinkReturn lres;

      g_print ("new payload on pad: %s\n", GST_PAD_NAME (new_pad));

      sinkpad = gst_element_get_static_pad (depay, "sink");
      g_assert (sinkpad);

      lres = gst_pad_link (new_pad, sinkpad);
      g_assert (lres == GST_PAD_LINK_OK);
      gst_object_unref (sinkpad);
}

and I call it using:
g_signal_connect (rtpbin, "pad-added", G_CALLBACK (pad_added_cb), videodepay);

--------------------------------------------------------------------------------------------------------------------------------------------------------

and the error i get:
~bash$ ./client_video_stream
(client_video_stream:26694): GStreamer-CRITICAL **: gst_pad_link: assertion `GST_IS_PAD (srcpad)' failed
**
ERROR:client_video_stream.c:148:main: assertion failed: (lres == GST_PAD_LINK_OK)
Aborted
~bash $

------------------------------------------------------------------------------------------------------------------------------------------------------
caps are: g_object_set (G_OBJECT (rtpsrc), "caps", gst_caps_new_simple("application/x-rtp",
                           "media", G_TYPE_STRING, "video",
                           "payload", G_TYPE_INT, "96",
                           "clock-rate", G_TYPE_INT, "90000",
                           "encoding-name",G_TYPE_STRING,"THEORA",
                            "delivery-method",G_TYPE_STRING,"inline",
                            NULL), NULL);
--------------------------------------------------------------------------------------------------------------------------------------------------------
I will appreciate your help


------------------------------------------------------------------------------
Crystal Reports - New Free Runtime and 30 Day Trial
Check out the new simplified licensing option that enables unlimited
royalty-free distribution of the report engine for externally facing
server and web deployment.
http://p.sf.net/sfu/businessobjects
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: no video with rtpjpegpay and udpsink

Edward Hervey
Administrator
Don't 'hijack' a thread if you're asking a new question. Post a fresh
new post to the group next time.

  Not only will it stop bothering people that dislike that kind of
hijacking but it will also increase the likeliness of actually getting a
reply to your questions

  Edward

On Fri, 2009-06-12 at 15:50 +0200, Thabelo Mmbengeni wrote:

> Hi I am also working on the similar thing but it seems I have a
> problem that I cannot Identify.
>
> I am trying to link gstrtpbin to rtptheoradepay on the Client side
> I am now on the recieving side of the gstrtobin
>
> heres my link:
> --------------------------------------------------------------------------------------------------------------------------------------------------------
> static void pad_added_cb (GstElement * rtpbin, GstPad * new_pad,
> GstElement * depay)
> {
>       GstPad *sinkpad;
>       GstPadLinkReturn lres;
>
>       g_print ("new payload on pad: %s\n", GST_PAD_NAME (new_pad));
>
>       sinkpad = gst_element_get_static_pad (depay, "sink");
>       g_assert (sinkpad);
>
>       lres = gst_pad_link (new_pad, sinkpad);
>       g_assert (lres == GST_PAD_LINK_OK);
>       gst_object_unref (sinkpad);
> }
>
> and I call it using:
> g_signal_connect (rtpbin, "pad-added", G_CALLBACK (pad_added_cb),
> videodepay);
>
> --------------------------------------------------------------------------------------------------------------------------------------------------------
>
> and the error i get:
> ~bash$ ./client_video_stream
> (client_video_stream:26694): GStreamer-CRITICAL **: gst_pad_link:
> assertion `GST_IS_PAD (srcpad)' failed
> **
> ERROR:client_video_stream.c:148:main: assertion failed: (lres ==
> GST_PAD_LINK_OK)
> Aborted
> ~bash $
>
> ------------------------------------------------------------------------------------------------------------------------------------------------------
> caps are: g_object_set (G_OBJECT (rtpsrc), "caps",
> gst_caps_new_simple("application/x-rtp",
>                            "media", G_TYPE_STRING, "video",
>                            "payload", G_TYPE_INT, "96",
>                            "clock-rate", G_TYPE_INT, "90000",
>                            "encoding-name",G_TYPE_STRING,"THEORA",
>                             "delivery-method",G_TYPE_STRING,"inline",
>                             NULL), NULL);
> --------------------------------------------------------------------------------------------------------------------------------------------------------
> I will appreciate your help
>
> ------------------------------------------------------------------------------
> Crystal Reports - New Free Runtime and 30 Day Trial
> Check out the new simplified licensing option that enables unlimited
> royalty-free distribution of the report engine for externally facing
> server and web deployment.
> http://p.sf.net/sfu/businessobjects
> _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/gstreamer-devel


------------------------------------------------------------------------------
Crystal Reports - New Free Runtime and 30 Day Trial
Check out the new simplified licensing option that enables unlimited
royalty-free distribution of the report engine for externally facing
server and web deployment.
http://p.sf.net/sfu/businessobjects
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

problems multipart jpeg to vlc

john oliver-5
In reply to this post by Wim Taymans
Hi there,

I'm having trouble streaming a multipart jpeg encoded file to VLC, using a gst app spawned from an RTSP/SDP process.

The gst-launch pipeline works ok ..

sender
gst-launch-0.10 -v filesrc location=~/Videos/POTC.mjpg ! multipartdemux ! rtpjpegpay ! udpsink port=1234 host=127.0.0.1

receiver
gst-launch-0.10 -v udpsrc uri=udp://127.0.0.1:1234   caps="application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)JPEG, payload=(int)96, ssrc=(guint)1538011841, clock-base=(guint)924217442, seqnum-base=(guint)30638"  ! rtpjpegdepay ! jpegdec   !   videoscale ! xvimagesink


However, using VLC to connect to an rtsp process which spawns off an application which builds the above pipeline, things don't quite work. In wireshark I can see the rtsp session ( and it species the caps shown above), and it seems to be working ok. And I can see the MJPEG packets being sent to the VLC host, however VLC doesn't display them as they are received. Whenever I terminate both the rtp and rtsp applications on the sender host (using kill -15) VLC finally wakes up and displays a short burstr of frames from the start of the clip.

I'd appreciate it if anybody can give me any clues. I have the same issues when I put the use a jpeg in other containers as well.

John

------------------------------------------------------------------------------

_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: problems multipart jpeg to vlc

john oliver-5

 >>From: [hidden email]
>>To: [hidden email]
>>Date: Wed, 22 Jul 2009 17:13:38 +0100
>>Subject: [gst-devel] problems multipart jpeg to vlc
>>
>>I'm having trouble streaming a multipart jpeg encoded file to VLC, using a gst app spawned from an RTSP/SDP process.
>>
>>However, using VLC to connect to an rtsp process which spawns off an application which builds the above pipeline, things don't quite work. In wireshark I >>can see the rtsp session ( and it species the caps shown above), and it seems to be working ok. And I can see the MJPEG packets being sent to the VLC >>host, however VLC doesn't display them as they are received. Whenever I terminate both the rtp and rtsp applications on the sender host (using kill -15) >>VLC finally wakes up and displays a short burstr of frames from the start of the clip.

 
I resolved this, in case anybody is interested in the future. My RTP gstreamer app was fine. The problem was actually with my RTSP session - I had been terminating the SDP part of my DESCRIVE response with an extra '\r\n'. Took this out and it worked. Beforehand, the live555 part of vlc and smplayer were still waiting on further input over the rtsp connection and not watching out for incoming rtp packets.
 
John

------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel