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 AguilarEmbedded Software EngineerRidgeRun 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!
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?
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
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
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