[gst-embedded] transfer of video via udp/rtp/rtsp

Wim Taymans wim.taymans at gmail.com
Wed Jun 3 06:52:05 PDT 2009


On Wed, 2009-06-03 at 19:15 +0530, Mehta, Neel wrote:
> Hi Wim
> 
>  
> 
> Thanks for the reply.
> 
>  
> 
> 1. UDP:
> 
> I executed the syntax you mentioned:
> 
>  
> 
> gst-launch-0.10 -v filesrc location=foreman_422_vga._swap.yuv !
> TIVidenc1 codecName=mpeg4enc engineName=encode
> contiguousInputFrame=FALSE iColorSpace=UYVY resolution=640x480 !
> rtpmp4vpay ! udpsink
> 
>  
> 
> The output is:
> 
>  
> 
> Setting pipeline to PAUSED ...
> 
> Pipeline is PREROLLING ...
> 
> /GstPipeline:pipeline0/GstTIVidenc1:tividenc10.GstPad:src: caps =
> video/mpeg, mpegversion=(int)4, framerate=(fraction)30000/1001,
> width=(int)640, height=(int)480
> 
> /GstPipeline:pipeline0/GstRtpMP4VPay:rtpmp4vpay0.GstPad:sink: caps =
> video/mpeg, mpegversion=(int)4, framerate=(fraction)30000/1001,
> width=(int)640, height=(int)480
> 
> Pipeline is PREROLLED ...
> 
> Setting pipeline to PLAYING ...
> 
> New clock: GstSystemClock
> 
>  
> 
> It seems to me that the problem lies with the rtpmp4vpay element. It
> seems it is unable to allocate proper caps for the source pad. 
> 

The payloader needs to find the profile and config string, which is
usually provided by the encoder. It seems the TI encoder does not
provide this config string and thus the payloader can not create output
caps.

We could probably fix the payloader to not output anything before the
config string was found. If you file a bug, I'll look into that.

Wim

> I have also attached the GST_DEBUG=3 output.
> 
> I am currently using gst-plugins-good version 0.10.10. Should I
> upgrade it??? 
> 
>  
> 
>  
> 
> 2. RTSP:
> 
> I used the updated version of gst-rtsp-server (with your today's
> patch), and I used the following syntax:
> 
>  
> 
> ./test-launch "( filesrc location=foreman_422_vga._swap.yuv !
> TIVidenc1 codecName=mpeg4enc engineName=encode
> contiguousInputFrame=FALSE iColorSpace=UYVY resolution=640x480 !
> rtpmp4vpay pt=96 name=pay0 )"
> 
>  
> 
> And I got this output (has errors):
> 
>  
> 
> ** Message: listening on port 8554
> 
> ** Message: added new client 0x16cf0 ip 172.24.136.232:28426
> 
> ** Message: attaching to context 0x13e18
> 
> RTSP request message 0x8e2b4
> 
>  request line:
> 
>    method: 'OPTIONS'
> 
>    uri:    'rtsp://172.24.190.40:8554/test'
> 
>    version: '1.0'
> 
>  headers:
> 
>    key: 'CSeq', value: '41'
> 
>    key: 'User-Agent', value: 'VLC media player (LIVE555 Streaming
> Media v2009.03.22)'
> 
>  body:
> 
> ** Message: client 0x16cf0: received a request
> 
> RTSP response message 0xbefff9f8
> 
>  status line:
> 
>    code:   '200'
> 
>    reason: 'OK'
> 
>    version: '1.0'
> 
>  headers:
> 
>    key: 'CSeq', value: '41'
> 
>    key: 'Public', value: 'OPTIONS, DESCRIBE, GET_PARAMETER, PAUSE,
> PLAY, SETUP, SET_PARAMETER, TEARDOWN'
> 
>    key: 'Server', value: 'GStreamer RTSP server'
> 
>  body: length 0
> 
> ** Message: client 0x16cf0: sent a message with cseq 41
> 
> RTSP request message 0x8e2b4
> 
>  request line:
> 
>    method: 'DESCRIBE'
> 
>    uri:    'rtsp://172.24.190.40:8554/test'
> 
>    version: '1.0'
> 
>  headers:
> 
>    key: 'CSeq', value: '42'
> 
>    key: 'Accept', value: 'application/sdp'
> 
>    key: 'User-Agent', value: 'VLC media player (LIVE555 Streaming
> Media v2009.03.22)'
> 
>  body:
> 
> ** Message: client 0x16cf0: received a request
> 
> ** Message: found media 0x3e7c0 for url abspath /test
> 
> ** Message: found stream 0 with payloader 0xce0d8
> 
> ** Message: constructed media 0xcd820 for url /test
> 
> ** Message: preparing media 0xcd820
> 
> ** Message: enter mainloop
> 
> ** Message: 0xcd820: got message type async-done
> 
> ** Message: position query failed
> 
> ** Message: duration query failed
> 
> ** Message: stats: position 0:00:00.000000000, duration
> 99:99:99.999999999
> 
> ** Message: object 0xcd820 is prerolled
> 
>  
> 
> ** (lt-test-launch:1173): WARNING **: ignoring stream 0 without media
> type
> 
> RTSP response message 0xbefff9d8
> 
>  status line:
> 
>    code:   '200'
> 
>    reason: 'OK'
> 
>    version: '1.0'
> 
>  headers:
> 
>    key: 'CSeq', value: '42'
> 
>    key: 'Content-Type', value: 'application/sdp'
> 
>    key: 'Content-Base', value: 'rtsp://172.24.190.40:8554/test/'
> 
>    key: 'Server', value: 'GStreamer RTSP server'
> 
>  body: length 170
> 
> 00000000 (0x107858): 76 3d 30 0d 0a 6f 3d 2d 20 31 31 38 38 33 34 30
> v=0..o=- 1188340
> 
> 00000010 (0x107868): 36 35 36 31 38 30 38 38 33 20 31 20 49 4e 20 49
> 656180883 1 IN I
> 
> 00000020 (0x107878): 50 34 20 31 32 37 2e 30 2e 30 2e 31 0d 0a 73 3d
> P4 127.0.0.1..s=
> 
> 00000030 (0x107888): 53 65 73 73 69 6f 6e 20 73 74 72 65 61 6d 65 64
> Session streamed
> 
> 00000040 (0x107898): 20 77 69 74 68 20 47 53 74 72 65 61 6d 65 72 0d
> with GStreamer.
> 
> 00000050 (0x1078a8): 0a 69 3d 72 74 73 70 2d 73 65 72 76 65 72 0d
> 0a  .i=rtsp-server..
> 
> 00000060 (0x1078b8): 65 3d 4e 4f 4e 45 0d 0a 74 3d 30 20 30 0d 0a 61
> e=NONE..t=0 0..a
> 
> 00000070 (0x1078c8): 3d 74 6f 6f 6c 3a 47 53 74 72 65 61 6d 65 72 0d
> =tool:GStreamer.
> 
> 00000080 (0x1078d8): 0a 61 3d 74 79 70 65 3a 62 72 6f 61 64 63 61
> 73  .a=type:broadcas
> 
> 00000090 (0x1078e8): 74 0d 0a 61 3d 72 61 6e 67 65 3a 6e 70 74 3d 30
> t..a=range:npt=0
> 
> 000000a0 (0x1078f8): 2e 30 30 30 30 30 30 2d 0d
> 0a                    .000000-..
> 
> ** Message: client 0x16cf0: sent a message with cseq 42
> 
> ** Message: added new client 0xe9350 ip 172.24.136.232:29194
> 
> ** Message: attaching to context 0x13e18
> 
> ** Message: client 0x16cf0: connection closed
> 
> ** Message: finalize client 0x16cf0
> 
> ** Message: finalize media 0xcd820
> 
> Segmentation fault
> 
>  
> 
> I have also attached the output corresponding to GST_DEBUG=2 and
> GST_DEBUG=3.
> 
> I think the error in both the case lies in the rtpmp4vpay. Am I
> right???
> 
>  
> 
> Thanks in advance.
> 
>  
> 
> Regards,
> 
> Neel.
> 
>  
> 
>  
> 
>  
> 
> -----Original Message-----
> From: Wim Taymans [mailto:wim.taymans at gmail.com] 
> Sent: Wednesday, June 03, 2009 3:49 PM
> To: Mehta, Neel
> Cc: gstreamer-embedded at lists.sourceforge.net
> Subject: Re: [gst-embedded] transfer of video via udp/rtp/rtsp
> 
>  
> 
> On Wed, 2009-06-03 at 15:15 +0530, Mehta, Neel wrote:
> 
> > Hi
> 
> > 
> 
> >  
> 
> > 
> 
> > I want to transfer a mpeg4 video from my TI’s dm355 evm (ARM) to my
> pc
> 
> > (see on vlc). I have tried:
> 
> > 
> 
> >  
> 
> > 
> 
> > 1. UDP: gst-launch-0.10 -v videotestsrc ! TIVidenc1
> codecName=mpeg4enc
> 
> > engineName=encode contiguousInputFrame=FALSE ! rtpmp4vpay ! udpsink
> 
> > port=1234
> 
> > 
> 
> >  
> 
> > 
> 
> > The pipeline works perfectly, but I am unable to see any video via
> 
> > vlc.
> 
> > 
> 
> >  
> 
> > 
> 
> > 2. RTSP: ./test-launch --gst-debug-no-color --gst-debug=0 "( filesrc
> 
> > location=foreman_422_vga._swap.yuv ! TIVidenc1 codecName=mpeg4enc
> 
> > engineName=encode contiguousInputFrame=FALSE iColorSpace=UYVY
> 
> > resolution=640x480 ! rtpmp4vpay pt=96 name=pay0 )"
> 
> > 
> 
>  
> 
> It seems like rtpmp4vpay could not set caps on the output pad. This is
> 
> likely because the encoder did not set proper caps on the output
> 
> buffers.
> 
>  
> 
> Check this:
> 
>  
> 
> gst-launch-0.10 -v filesrc location=foreman_422_vga._swap.yuv !
> 
> TIVidenc1 codecName=mpeg4enc engineName=encode
> 
> contiguousInputFrame=FALSE iColorSpace=UYVY resolution=640x480 !
> 
> rtpmp4vpay ! udpsink
> 
>  
> 
> And see what caps (if any) are set on udpsink.
> 
>  
> 
> also, I solved the warnings in the rtsp server by ignoring streams
> that
> 
> don't have a correct type.
> 
>  
> 
> Wim
> 
>  
> 
> >  
> 
> > 
> 
> > It gives me the following error:
> 
> > 
> 
> > ** Message: client 0x16cf0: received a request
> 
> > 
> 
> > ** Message: found media 0x52dc0 for url abspath /test
> 
> > 
> 
> >  
> 
> > 
> 
> > ** Message: constructed media 0x58c20 for url /test
> 
> > 
> 
> > ** Message: preparing media 0x58c20
> 
> > 
> 
> >  
> 
> > 
> 
> > ** Message: enter mainloop
> 
> > 
> 
> >  
> 
> > 
> 
> >  (lt-test-launch:1615): GStreamer-CRITICAL **: gst_debug_log_valist:
> 
> > assertion `category != NULL' failed
> 
> > 
> 
> >  
> 
> > 
> 
> > (lt-test-launch:1615): GStreamer-CRITICAL **: gst_debug_log_valist:
> 
> > assertion `category != NULL' failed
> 
> > 
> 
> > ** Message: 0x58c20: got message type async-done
> 
> > 
> 
> > ** Message: position query failed
> 
> > 
> 
> > ** Message: duration query failed
> 
> > 
> 
> > ** Message: stats: position 0:00:00.000000000, duration
> 
> > 99:99:99.999999999
> 
> > 
> 
> > ** Message: object 0x58c20 is prerolled
> 
> > 
> 
> >  
> 
> > 
> 
> > (lt-test-launch:1615): GStreamer-CRITICAL **:
> gst_caps_get_structure:
> 
> > assertion `GST_IS_CAPS (caps)' failed
> 
> > 
> 
> >  
> 
> > 
> 
> > (lt-test-launch:1615): GStreamer-CRITICAL **:
> 
> > gst_structure_get_string: assertion `structure != NULL' failed
> 
> > 
> 
> >  
> 
> > 
> 
> > (lt-test-launch:1615): GStreamer-CRITICAL **: gst_structure_get_int:
> 
> > assertion `structure != NULL' failed
> 
> > 
> 
> >  
> 
> > 
> 
> > (lt-test-launch:1615): GStreamer-CRITICAL **: gst_structure_get_int:
> 
> > assertion `structure != NULL' failed
> 
> > 
> 
> >  
> 
> > 
> 
> > (lt-test-launch:1615): GStreamer-CRITICAL **:
> 
> > gst_structure_get_string: assertion `structure != NULL' failed
> 
> > 
> 
> >  
> 
> > 
> 
> > (lt-test-launch:1615): GStreamer-CRITICAL **:
> 
> > gst_structure_get_string: assertion `structure != NULL' failed
> 
> > Segmentation fault
> 
> > 
> 
> >  
> 
> > 
> 
> > Can anyone help me in debugging? Or suggest some other way to
> 
> > implement the video transfer. My ultimate aim is to transfer the
> video
> 
> > and see on vlc, irrespective of the protocols used.
> 
> > 
> 
> >  
> 
> > 
> 
> > Thanks in advance.
> 
> > 
> 
> >  
> 
> > 
> 
> > Regards,
> 
> > 
> 
> > Neel.
> 
> > 
> 
> >  
> 
> > 
> 
> >  
> 
> > 
> 
> > 
> 
> >
> ------------------------------------------------------------------------------
> 
> > OpenSolaris 2009.06 is a cutting edge operating system for
> enterprises 
> 
> > looking to deploy the next generation of Solaris that includes the
> latest 
> 
> > innovations from Sun and the OpenSource community. Download a copy
> and 
> 
> > enjoy capabilities such as Networking, Storage and Virtualization. 
> 
> > Go to: http://p.sf.net/sfu/opensolaris-get
> 
> > _______________________________________________ Gstreamer-embedded
> mailing list Gstreamer-embedded at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/gstreamer-embedded
> 
> 





More information about the Gstreamer-embedded mailing list