This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

DM365 DVR + TI gstreamer

Other Parts Discussed in Thread: TVP5158

Hi all. Well, I have a few problems with gstreamer. I have successfully compiled TI gstreamer for DM365 DVR. But when I try to start an example piplines a have a lot of problems. For example:

 

1) gst-launch -v v4l2src always-copy=FALSE input-src=composite ! TIDmaiVideoSink videoStd=D1_NTSC videoOutput=composite contiguousInputFrame=TRUE sync=false

(gst-launch-0.10:963): GStreamer-WARNING **: Failed to load plugin '/opt/gstreamer/lib/gstreamer-0.10/libgstalsa.so': libasound.so.2: cannot open shared object file: No such file or directory

(gst-launch-0.10:963): GStreamer-WARNING **: Failed to load plugin '/opt/gstreamer/lib/gstreamer-0.10/libgstmad.so': /opt/gstreamer/lib/libid3tag.so.0: undefined symbol: id3_frametype_obsolete
Setting pipeline to PAUSED ...
ERROR: Pipeline doesn't want to pause.
ERROR: from element /GstPipeline:pipeline0/GstV4l2Src:v4l2src0: Could not open device '/dev/video0' for reading and writing.
Additional debug info:
v4l2_calls.c(498): gst_v4l2_open (): /GstPipeline:pipeline0/GstV4l2Src:v4l2src0:
system error: Invalid argument
Setting pipeline to NULL ...
Freeing pipeline ...
2) gst-launch -v filesrc location=/dvr/data/sdda/slava/CH00_0000_352x288.264 ! TIViddec2 codecName=h264dec engineName=decode numOutputBufs=18 ! TIDmaiVideoSink videoStd=D1_NTSC videoOutput=composite sync=false

(gst-launch-0.10:1190): GStreamer-WARNING **: Failed to load plugin '/opt/gstreamer/lib/gstreamer-0.10/libgstalsa.so': libasound.so.2: cannot open shared object file: No such file or directory

(gst-launch-0.10:1190): GStreamer-WARNING **: Failed to load plugin '/opt/gstreamer/lib/gstreamer-0.10/libgstmad.so': /opt/gstreamer/lib/libid3tag.so.0: undefined symbol: id3_frametype_obsolete
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
/GstPipeline:pipeline0/GstTIViddec2:tividdec20.GstPad:src: caps = video/x-raw-yuv, format=(fourcc)NV12, framerate=(fraction)30000/1001, width=(int)352, height=(int)288
/GstPipeline:pipeline0/GstTIDmaiVideoSink:tidmaivideosink0.GstPad:sink: caps = video/x-raw-yuv, format=(fourcc)NV12, framerate=(fraction)30000/1001, width=(int)352, height=(int)288
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock

 

 

3) gst-launch -v videotestsrc ! TIVidenc1 codecName=mpeg4enc engineName=encode contiguousInputFrame=TRUE ! rtpmp4vpay pt=96 ! udpsink host=127.0.0.1 port=5000

(gst-launch-0.10:1096): GStreamer-WARNING **: Failed to load plugin '/opt/gstreamer/lib/gstreamer-0.10/libgstalsa.so': libasound.so.2: cannot open shared object file: No such file or directory

(gst-launch-0.10:1096): GStreamer-WARNING **: Failed to load plugin '/opt/gstreamer/lib/gstreamer-0.10/libgstmad.so': /opt/gstreamer/lib/libid3tag.so.0: undefined symbol: id3_frametype_obsolete
Setting pipeline to PAUSED ...
/GstPipeline:pipeline0/GstVideoTestSrc:videotestsrc0.GstPad:src: caps = video/x-raw-yuv, format=(fourcc)UYVY, width=(int)320, height=(int)240, framerate=(fraction)30/1
Pipeline is PREROLLING ...
/GstPipeline:pipeline0/GstTIVidenc1:tividenc10.GstPad:sink: caps = video/x-raw-yuv, format=(fourcc)UYVY, width=(int)320, height=(int)240, framerate=(fraction)30/1
/GstPipeline:pipeline0/GstTIVidenc1:tividenc10.GstPad:src: caps = video/mpeg, mpegversion=(int)4, framerate=(fraction)30/1, width=(int)320, height=(int)240
/GstPipeline:pipeline0/GstRtpMP4VPay:rtpmp4vpay0.GstPad:sink: caps = video/mpeg, mpegversion=(int)4, framerate=(fraction)30/1, width=(int)320, height=(int)240
/GstPipeline:pipeline0/GstRtpMP4VPay:rtpmp4vpay0.GstPad:src: caps = application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)MP4V-ES, profile-level-id=(string)1, config=(string)000001010000012000845d4c285020f0a21f, payload=(int)96, ssrc=(guint)2508755463, clock-base=(guint)713889073, seqnum-base=(guint)40336
/GstPipeline:pipeline0/GstUDPSink:udpsink0.GstPad:sink: caps = application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)MP4V-ES, profile-level-id=(string)1, config=(string)000001010000012000845d4c285020f0a21f, payload=(int)96, ssrc=(guint)2508755463, clock-base=(guint)713889073, seqnum-base=(guint)40336
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock

4) gst-launch -v videotestsrc ! TIDmaiVideoSink videoStd=D1_NTSC videoOutput=composite accelFrameCopy=FALSE sync=false
(gst-launch-0.10:1170): GStreamer-WARNING **: Failed to load plugin '/opt/gstreamer/lib/gstreamer-0.10/libgstalsa.so': libasound.so.2: cannot open shared object file: No such file or directory

(gst-launch-0.10:1170): GStreamer-WARNING **: Failed to load plugin '/opt/gstreamer/lib/gstreamer-0.10/libgstmad.so': /opt/gstreamer/lib/libid3tag.so.0: undefined symbol: id3_frametype_obsolete
Setting pipeline to PAUSED ...
/GstPipeline:pipeline0/GstVideoTestSrc:videotestsrc0.GstPad:src: caps = video/x-raw-yuv, format=(fourcc)UYVY, width=(int)320, height=(int)240, framerate=(fraction)30/1
Pipeline is PREROLLING ...
/GstPipeline:pipeline0/GstTIDmaiVideoSink:tidmaivideosink0.GstPad:sink: caps = video/x-raw-yuv, format=(fourcc)UYVY, width=(int)320, height=(int)240, framerate=(fraction)30/1
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock

And I have a questions. This dm365 dvr support TI gstreamer? if support, how i can solve this problems?
 I know about MCVIP and a want to know, are there any gstreamer pipelines to use this interface? This board support v4l ?
My main aim is stream video by gstreamer via rtsp. Input would be udp socket(if v4l,mcvip not support).
 It's a real on this board? 

Thanks

  • Maxim Sarafanov said:
    And I have a questions. This dm365 dvr support TI gstreamer? if support, how i can solve this problems?
     I know about MCVIP and a want to know, are there any gstreamer pipelines to use this interface? This board support v4l ?

    DM36x DVR does not work on GStreamer framework. It has its own av_server framework which is tuned for DVR/IP camera application. It does not use V4L interface for the capture device. Although the MCVIP interface is very similar to V4L2. You can refer to MCVIP Software user guide to get the comparison between MCVIP driver and V4L2 interface.

    Maxim Sarafanov said:
    My main aim is stream video by gstreamer via rtsp. Input would be udp socket(if v4l,mcvip not support).
     It's a real on this board? 

     The DVR software does not support GStreamer. But if you have software with GStreamer implemented on any other hardware platform, then you can use it on DVR hardware also. Ofcourse, you would need to use MCVIP driver to get the captured data from the TVP5158.

    Regards,

    Anshuman

    PS: Please mark this post as verified, if you think it has answered your question. Thanks.

  • Thanks for fast answer! But why gstreamer can't stream via rtsp local files(not using different interfaces)? It's a dm365 board :) Or this hardware platform have a lot of differences(I don't mean any adds like multistream support) ?

  • Hi,

    As i said, we do not have support for GStreamer in the software stack of DM36x DVR. There is no reason why you cannot use gstreamer to stream rtsp. One needs to modify the software anr put the gstreamer along with the DVR software or develop their own software on GStreamer framework to create pipes for DVR usecase. DVR is a DM365 hardware board, ofcourse with the basic changes like GPIO and other I/O interfaces. So any software valid to work on DM365 can run on this hardware also, but you need to implement that software.

    If you want GStreamer only for streaming, you can surely add that and get the source (encoded stream) from writerThr.c or from the local harddisk.

    Hope the above explaination helps. Let me know if you need any more information.

    Regards,

    Anshuman

    PS: Please mark this post as verified, if you think it has answered your questions. Thanks.

     

  • Thanks.

    One more question. I have installed rtsp-server. But he give some errors.  

    "Element doesn't implement handling of this stream. Please file a bug."

    "subclass did not specify clock-rate"

    All dm365 evm users to solve this problem use x264enc. but my board doesn't support this codec. I have an example av_capture software, it capture video into .264 file . but when i choose this file in "filesrc location="  gstreamer show  "Element doesn't implement handling of this stream. Please file a bug." "subclass did not specify clock-rate" 

     

    Any ideas?

  • I solve 1 problem. Now I can stream .264 files via rtsp-server. But when VLC start playing, video stop after 2-3sec. Although rtsp-server don't have any errors and continue streaming video. If I reconnect it bug repeat!

    Debug log:

    ** Message: listening on port 8554

    ** Message: added new client 0x12ec0 ip 192.168.1.102:6097

    ** Message: attaching to context 0x13220

    RTSP request message 0xb6128

     request line:

       method: 'OPTIONS'

       uri:    'rtsp://192.168.1.200:8554/test'

       version: '1.0'

     headers:

       key: 'CSeq', value: '56'

       key: 'User-Agent', value: 'LibVLC/1.1.0 (LIVE555 Streaming Media v2010.03.16)'

     body:

    ** Message: client 0x12ec0: received a request

    RTSP response message 0xbec76a10

     status line:

       code:   '200'

       reason: 'OK'

       version: '1.0'

     headers:

       key: 'CSeq', value: '56'

       key: 'Public', value: 'OPTIONS, DESCRIBE, GET_PARAMETER, PAUSE, PLAY, SETUP, SET_PARAMETER, TEARDOWN'

       key: 'Server', value: 'GStreamer RTSP server'

     body: length 0

    RTSP request message 0xb6128

     request line:

       method: 'DESCRIBE'

       uri:    'rtsp://192.168.1.200:8554/test'

       version: '1.0'

     headers:

       key: 'CSeq', value: '57'

       key: 'Accept', value: 'application/sdp'

       key: 'User-Agent', value: 'LibVLC/1.1.0 (LIVE555 Streaming Media v2010.03.16)'

     body:

    ** Message: client 0x12ec0: received a request

    ** Message: found media 0xa6f60 for url abspath /test

    ** Message: found stream 0 with payloader 0xc5048

    ** Message: constructed media 0xc4800 for url /test

    ** Message: preparing media 0xc4800

    ** Message: enter mainloop

    ** Message: stream 0xc46b8 received caps 0x1024c0, application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264, sprop-parameter-sets=(string)J2QAHqy0CwSy, ssrc=(uint)2786742984, payload=(int)96, clock-base=(uint)3496479949, seqnum-base=(uint)48889

    ** Message: 0xc4800: 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 0xc4800 is prerolled

    RTSP response message 0xbec769f4

     status line:

       code:   '200'

       reason: 'OK'

       version: '1.0'

     headers:

       key: 'CSeq', value: '57'

       key: 'Content-Type', value: 'application/sdp'

       key: 'Content-Base', value: 'rtsp://192.168.1.200:8554/test/'

       key: 'Server', value: 'GStreamer RTSP server'

     body: length 301

    00000000 (0x103e68): 76 3d 30 0d 0a 6f 3d 2d 20 31 31 38 38 33 34 30  v=0..o=- 1188340

    00000010 (0x103e78): 36 35 36 31 38 30 38 38 33 20 31 20 49 4e 20 49  656180883 1 IN I

    00000020 (0x103e88): 50 34 20 31 32 37 2e 30 2e 30 2e 31 0d 0a 73 3d  P4 127.0.0.1..s=

    00000030 (0x103e98): 53 65 73 73 69 6f 6e 20 73 74 72 65 61 6d 65 64  Session streamed

    00000040 (0x103ea8): 20 77 69 74 68 20 47 53 74 72 65 61 6d 65 72 0d   with GStreamer.

    00000050 (0x103eb8): 0a 69 3d 72 74 73 70 2d 73 65 72 76 65 72 0d 0a  .i=rtsp-server..

    00000060 (0x103ec8): 65 3d 4e 4f 4e 45 0d 0a 74 3d 30 20 30 0d 0a 61  e=NONE..t=0 0..a

    00000070 (0x103ed8): 3d 74 6f 6f 6c 3a 47 53 74 72 65 61 6d 65 72 0d  =tool:GStreamer.

    00000080 (0x103ee8): 0a 61 3d 74 79 70 65 3a 62 72 6f 61 64 63 61 73  .a=type:broadcas

    00000090 (0x103ef8): 74 0d 0a 61 3d 72 61 6e 67 65 3a 6e 70 74 3d 30  t..a=range:npt=0

    000000a0 (0x103f08): 2e 30 30 30 30 30 30 2d 0d 0a 6d 3d 76 69 64 65  .000000-..m=vide

    000000b0 (0x103f18): 6f 20 30 20 52 54 50 2f 41 56 50 20 39 36 0d 0a  o 0 RTP/AVP 96..

    000000c0 (0x103f28): 63 3d 49 4e 20 49 50 34 20 31 32 37 2e 30 2e 30  c=IN IP4 127.0.0

    000000d0 (0x103f38): 2e 31 0d 0a 61 3d 72 74 70 6d 61 70 3a 39 36 20  .1..a=rtpmap:96

    000000e0 (0x103f48): 48 32 36 34 2f 39 30 30 30 30 0d 0a 61 3d 63 6f  H264/90000..a=co

    000000f0 (0x103f58): 6e 74 72 6f 6c 3a 73 74 72 65 61 6d 3d 30 0d 0a  ntrol:stream=0..

    00000100 (0x103f68): 61 3d 66 6d 74 70 3a 39 36 20 73 70 72 6f 70 2d  a=fmtp:96 sprop-

    00000110 (0x103f78): 70 61 72 61 6d 65 74 65 72 2d 73 65 74 73 3d 4a  parameter-sets=J

    00000120 (0x103f88): 32 51 41 48 71 79 30 43 77 53 79 0d 0a           2QAHqy0CwSy..

    RTSP request message 0xb6128

     request line:

       method: 'SETUP'

       uri:    'rtsp://192.168.1.200:8554/test/stream=0'

       version: '1.0'

     headers:

       key: 'CSeq', value: '58'

       key: 'Transport', value: 'RTP/AVP;unicast;client_port=62030-62031'

       key: 'User-Agent', value: 'LibVLC/1.1.0 (LIVE555 Streaming Media v2010.03.16)'

     body:

    ** Message: client 0x12ec0: received a request

    ** Message: reusing cached media 0xc4800

    ** Message: manage new media 0xc4800 in session 0x102bb8

    RTSP response message 0xbec769d8

     status line:

       code:   '200'

       reason: 'OK'

       version: '1.0'

     headers:

       key: 'CSeq', value: '58'

       key: 'Transport', value: 'RTP/AVP;unicast;client_port=62030-62031;server_port=2048-2049;mode="PLAY"'

       key: 'Server', value: 'GStreamer RTSP server'

       key: 'Session', value: 'udgchlalkalyiphm'

     body: length 0

    RTSP request message 0xb6128

     request line:

       method: 'PLAY'

       uri:    'rtsp://192.168.1.200:8554/test/'

       version: '1.0'

     headers:

       key: 'CSeq', value: '59'

       key: 'Session', value: 'udgchlalkalyiphm'

       key: 'Range', value: 'npt=0.000-'

       key: 'User-Agent', value: 'LibVLC/1.1.0 (LIVE555 Streaming Media v2010.03.16)'

     body:

    ** Message: client 0x12ec0: received a request

    ** Message: watching session 0x16590

    ** Message: no seek needed

    RTSP response message 0xbec769bc

     status line:

       code:   '200'

       reason: 'OK'

       version: '1.0'

     headers:

       key: 'CSeq', value: '59'

       key: 'RTP-Info', value: 'url=rtsp://192.168.1.200:8554/test/stream=0;seq=48889;rtptime=3496479949'

       key: 'Range', value: 'npt=0.000000-'

       key: 'Server', value: 'GStreamer RTSP server'

       key: 'Session', value: 'udgchlalkalyiphm'

     body: length 0

    ** Message: going to state PLAYING media 0xc4800

    ** Message: adding 192.168.1.102:62030-62031

    ** Message: active 1 media 0xc4800

    ** Message: state PLAYING media 0xc4800

    ** Message: 0xc4800: got message type new-clock

    ** Message: stream 0xc46b8 received caps 0x102680, application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264, sprop-parameter-sets=(string)"J2QAHqy0CwSy\,KO48sA\=\=", ssrc=(uint)2786742984, payload=(int)96, clock-base=(uint)3496479949, seqnum-base=(uint)48889

    RTSP request message 0xb6128

     request line:

       method: 'GET_PARAMETER'

       uri:    'rtsp://192.168.1.200:8554/test/'

       version: '1.0'

     headers:

       key: 'CSeq', value: '60'

       key: 'Session', value: 'udgchlalkalyiphm'

       key: 'User-Agent', value: 'LibVLC/1.1.0 (LIVE555 Streaming Media v2010.03.16)'

     body:

    ** Message: client 0x12ec0: received a request

    RTSP response message 0xbec768f4

     status line:

       code:   '200'

       reason: 'OK'

       version: '1.0'

     headers:

       key: 'CSeq', value: '60'

       key: 'Server', value: 'GStreamer RTSP server'

     body: length 0

    ** Message: 0xc46b8: new source 0xee840

    ** Message: structure: application/x-rtp-source-stats, ssrc=(uint)2147483689, internal=(boolean)false, validated=(boolean)false, received-bye=(boolean)false, is-csrc=(boolean)false, is-sender=(boolean)false, rtcp-from=(string)192.168.1.102:62031, have-rb=(boolean)false, rb-fractionlost=(uint)0, rb-packetslost=(int)0, rb-exthighestseq=(uint)0, rb-jitter=(uint)0, rb-lsr=(uint)0, rb-dlsr=(uint)0, rb-round-trip=(uint)0;

    ** Message: finding 192.168.1.102:62031

    ** Message: 0xc46b8: found transport 0xfeb50 for source  0xee840

    ** Message: 0xc46b8: source 0xee840 in transport 0xfeb50 is active

    ** Message: keep session 0x16590 alive

    ** Message: 0xc46b8: new SDES 0xee840

    ** Message: 0xc46b8: source 0xee840 in transport 0xfeb50 is active

    ** Message: keep session 0x16590 alive

    ** Message: 0xc46b8: source 0xee840 in transport 0xfeb50 is active

    ** Message: keep session 0x16590 alive

    ** Message: 0xc46b8: source 0xee840 in transport 0xfeb50 is active

    ** Message: keep session 0x16590 alive

    ** Message: 0xc46b8: source 0xee840 in transport 0xfeb50 is active

    ** Message: keep session 0x16590 alive

    ** Message: 0xc46b8: source 0xee840 in transport 0xfeb50 is active

    ** Message: keep session 0x16590 alive

     

    Thanks