Video streaming from one LeopardBoard to another

Video streaming from one LeopardBoard to another

  • I have now successfully streamed video from a LeopardBoard to an Ubuntu host PC by running

    gst-launch -v v4l2src always-copy=FALSE ! dmaiaccel ! queue ! dmaienc_mpeg4 ! rtpmp4vpay pt=96 ! udpsink host=192.168.1.10 port=5000

    on the LeopardBoard (192.168.1.10 being the IP address of the Ubuntu host PC)

    and running

    gst-launch -v udpsrc port=5000 caps="application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)MP4V-ES, profile-level-id=(string)0, config=(string)000001010000012000845d4c28a021e0a21f" ! rtpmp4vdepay ! ffdec_mpeg4 ! ffmpegcolorspace ! xvimagesink

    on the host PC... all good so far :)

    Now, I'd like to substitute the host PC for another LeopardBoard I have.  So, as far as this second board is concerned, it needs to receive the video stream, decode it, and direct it to its composite output.

    I have tried (Guessed at)

    gst-launch -v udpsrc port=5000 caps="application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)MP4V-ES, profile-level-id=(string)0, config=(string)000001010000012000845d4c28a021e0a21f" ! rtpmp4vdepay ! dmaidec_mpeg4! TIDmaiVideoSink sync=false displayStd=v4l2 displayDevice=/dev/video2

    But this doesn't seem to work.

    Can anyone help?

  • Just to add, when I run the command on the second LeopardBoard, the command is accepted, but no output is seen out of the composite output.

    gst-launch -v udpsrc port=5000 caps="application/x-rtp, media=(string)video,

    clock-rate=(int)90000, encoding-name=(string)MP4V-ES, profile-level-id=(string)

    0, config=(string)000001010000012000845d4c28a021e0a21f" ! rtpmp4vdepay ! dmaidec

    _mpeg4! TIDmaiVideoSink sync=false displayStd=v4l2 displayDevice=/dev/video2    

    Setting pipeline to PAUSED ...                                                  

    /GstPipeline:pipeline0/GstUDPSrc:udpsrc0.GstPad:src: caps = application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)MP4V-ES, profile-level-id=(string)0, 6

    Pipeline is live and does not need PREROLL ...

    Setting pipeline to PLAYING ...

    New clock: GstSystemClock

  • Paul,

    Can you do live preview and see the video on the screen?

    gst-launch -e v4l2src always-copy=false ! dmaiaccel ! TIDmaiVideoSink sync=false displayStd=v4l2 displayDevice=/dev/video2

    Perhaps you need to disable fb

    fbset -disable

    Regards,

    Cristina

    Cristina Murillo

    Embedded Software Engineer, RidgeRun

  • Hi Cristina,

    Yes, I can do local live preview (as you describe above).  And I can also stream from a LeopardBoard and view with gstreamer on an Ubuntu host PC.  What I'm having trouble with is streaming from one LeopardBoard to another.  One board is configured to stream video out, but I cannot work out how to configure the second board to receive the stream and send it to its composite output.  Any ideas?

  • Hi,

    What is the pipeline that you are using in the Leopard for receiving the video. Can you post the output?.

    -- 
    Miguel Aguilar
    Embedded Software Engineer
    RidgeRun Embedded Solutions
  • Hi Paul,

    using your pipelines i have a problem: in the pc i OFTEN see only the first frame of the video (it's like to receive a picture, not a video). I said OFTEN because using the same pipelines sometimes i receive the correct video.

    What do you think about?

    Regards.

    Lorenzo.

  • Hi Lorenzo

    We ran the test from a Leopard Board to an Ubuntu 9.10 install, which was running as a VM (VMWare).  We did have many dropped frames, which was as a result of the VM running too slowly to process all frames.  The result was periodic image updates, which sounds similar to what you are seeing.  Are you running your Linux host as a VM?  If so, you could try setting up a dedicated PC.

  • Hi Miguel,

    The pipeline and output is shown below.  Have you managed to stream video from one board to another?  If so, what commands did you use?  Many thanks!

    gst-launch -v udpsrc port=5000 caps="application/x-rtp, media=(string)video,

    clock-rate=(int)90000, encoding-name=(string)MP4V-ES, profile-level-id=(string)

    0, config=(string)000001010000012000845d4c28a021e0a21f" ! rtpmp4vdepay ! dmaidec

    _mpeg4! TIDmaiVideoSink sync=false displayStd=v4l2 displayDevice=/dev/video2    

    Setting pipeline to PAUSED ...                                                  

    /GstPipeline:pipeline0/GstUDPSrc:udpsrc0.GstPad:src: caps = application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)MP4V-ES, profile-level-id=(string)0, 6

    Pipeline is live and does not need PREROLL ...

    Setting pipeline to PLAYING ...

    New clock: GstSystemClock

  • Hi Paul,

    thank you for your suggestions...you are right. I was running in a VM. Now in a dedicated PC (more powerful) goes better (the frame rate is still low, about 2 fps). Do you try to implement an RTSP communication? I think that it is better than RTP, but i can't cross-compile Darwin Streaming Server for my leopard.

    Thank a lot

    Best regards

    Lorenzo

  • Hi Lorenzo,

    What errors are you getting when you try to cross-compile DSS?

    Regards,

    Cristina

    Cristina Murillo

    Embedded Software Engineer, RidgeRun

  • Hi Cristina,

    I downloaded 6.03 version of DSS, and I followed the procedure suggested in

    http://blog.toxa.de/archives/3

    for add the patch.

    Then I tried to modify the "Buildit" file changing the cross-compiler commands :

    i'm using Ubuntu, and i change the cross compilers of i686 architecture in this way:

    **********************************************************************************************

    Linux.i686)

           echo "Configuring for the "$OSNAME" "$HARDWARENAME" platform"

    CPLUS=/opt/arm-linux-gnueabi/bin/arm-linux-gnueabi-g++

    CCOMP=/opt/arm-linux-gnueabi/bin/arm-linux-gnueabi-gcc

    LINKER='/opt/arm-linux-gnueabi/bin/arm-linux-gnueabi-g++'

    MAKE=make

    ***********************************************************************************************

    Finally,  i give the command ./Buildit install.

    It gives this error.

    ***********************************************************

    ....

    make: *** [StreamingLoadTool.o] Errore 2

    DarwinStreamingServer failed to build!

    Buildit Failed. Exiting!

    ********************************************************************

    I'm not an expert, i don't know if the procedure is correct...

    Regards

    Lorenzo

  • Hi,

    I'm also interested in using a Leopard board to receive video using GStream, has anybody successfully done this yet?

    Many thanks,

    Richard

  • Hi.

    Can you tell me how to get the dmaidec_mpeg4 plugin?

    Thanks

  • Hi,

    If you are using RR SDK, the dmaidec_mpeg4 plugin is already included in the dvsdk.

    You can take a look at:

    gstreamer.ti.com/.../scmsvn

    Cristina Murillo

    Embedded Software Engineer, RidgeRun