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

Wim Taymans wim.taymans at gmail.com
Wed Jun 3 07:01:02 PDT 2009


On Wed, 2009-06-03 at 19:28 +0530, Mehta, Neel wrote:
> Hi Wim,
> 
> Thanks for the reply. I will look into the TI encoder plugin and make the appropriate changes.
> 
> Any suggestion for me to go ahead with the RTSP???

uh? if you fix the encoder/payloader the rtsp server will work as
expected.

Wim
> 
> Sorry, I forgot to attach the files last time.
> 
> Thanks.
> 
> Regards,
> Neel.
> 
> -----Original Message-----
> From: Wim Taymans [mailto:wim.taymans at gmail.com] 
> Sent: Wednesday, June 03, 2009 7:22 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 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