Tonight I am trying to use i.MX53 QSB to play RTSP media from Darwin Streaming Server (DSS version 6.0.3). I worked in following steps:
1. Setup DSS server in one X86 PC. (ubuntu 10.04 version; IP address: 192.168.1.102)
2. Store one H264-code and hinted video file 1.mp4 in the DSS server media folder.
3. Try to render the RTSP media using gstreamer command line on another X86 PC.
sudo gst-launch -v \
rtspsrc latency=300 location=rtsp://192.168.1.102:554/1.mp4 name=s ! \
rtph264depay ! queue ! ffdec_h264 ! xvimagesink
The media was rendered successfully
4. Let QSB to render the media file locally using totem player and gstreamer command line. Both worked well.
sudo gst-launch -v \
filesrc location=/home/lucid/1.mp4 ! decodebin ! mfw_v4lsink
5. Try to render the RTSP media on QSB using similar gstreamer command line.
sudo gst-launch -v \
rtspsrc latency=300 location=rtsp://192.168.1.102:554/1.mp4 name=s ! \
rtph264depay ! queue ! mfw_h264decoder ! mfw_v4lsink
Failed. Log told that " mfw_gst_h264dec_info_t0: fatal error "
lucid@lucid-desktop:~$ sudo gst-launch -v rtspsrc latency=300 location=rtsp://192.168.1.102:554/1.mp4 name=s ! rtph264depay ! queue ! mfw_h264decoder ! mfw_v4lsink
H264D_ARM11_02.06.01 build on Dec 21 2010 09:28:37.
MFW_GST_H264_DECODER_PLUGIN 1.9.7-1 build on Jan 28 2011 13:31:21.
MFW_GST_V4LSINK_PLUGIN 1.9.7-1 build on Jan 28 2011 13:35:23.
Setting pipeline to PAUSED ...
/GstPipeline:pipeline0/GstRTSPSrc:s/GstRtpBin:rtpbin0: latency = 300
/GstPipeline:pipeline0/GstRTSPSrc:s/GstUDPSrc:udpsrc1: timeout = 5000000
/GstPipeline:pipeline0/GstRTSPSrc:s/GstUDPSrc:udpsrc3: timeout = 5000000
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
/GstPipeline:pipeline0/GstRTSPSrc:s/GstUDPSrc:udpsrc1: timeout = 0
/GstPipeline:pipeline0/GstRTSPSrc:s/GstUDPSrc:udpsrc3: timeout = 0
/GstPipeline:pipeline0/GstRTSPSrc:s/GstRtpBin:rtpbin0/GstRtpSession:rtpsession1.GstPad:sync_src: caps = application/x-rtcp
/GstPipeline:pipeline0/GstRTSPSrc:s/GstRtpBin:rtpbin0/GstRtpSsrcDemux:rtpssrcdemux1.GstPad:rtcp_sink: caps = application/x-rtcp
/GstPipeline:pipeline0/GstRTSPSrc:s/GstRtpBin:rtpbin0/GstRtpSession:rtpsession0.GstPad:sync_src: caps = application/x-rtcp
/GstPipeline:pipeline0/GstRTSPSrc:s/GstRtpBin:rtpbin0/GstRtpSsrcDemux:rtpssrcdemux0.GstPad:rtcp_sink: caps = application/x-rtcp
New clock: GstSystemClock
/GstPipeline:pipeline0/GstRTSPSrc:s/GstRtpBin:rtpbin0/GstRtpSsrcDemux:rtpssrcdemux0.GstPad:rtcp_src_182795788: caps = application/x-rtcp
/GstPipeline:pipeline0/GstRTSPSrc:s/GstRtpBin:rtpbin0/GstRtpJitterBuffer:rtpjitterbuffer1.GstPad:sink_rtcp: caps = application/x-rtcp
/GstPipeline:pipeline0/GstRTSPSrc:s/GstRtpBin:rtpbin0/GstRtpJitterBuffer:rtpjitterbuffer0.GstPad:sink_rtcp: caps = application/x-rtcp
/GstPipeline:pipeline0/GstRtpH264Depay:rtph264depay0.GstPad:src: caps = video/x-h264
/GstPipeline:pipeline0/GstRtpH264Depay:rtph264depay0.GstPad:sink: caps = application/x-rtp, media=(string)video, payload=(int)96, clock-rate=(int)90000, encoding-name=(string)H264, profile-level-id=(string)64001E, packetization-mode=(string)1, sprop-parameter-sets=(string)\"Z2QAHqzsC0Em/8AEAAPEAAADAAQAAAMAyjxYtOA\\=\\,aOrssiw\\=\", x-copyright=(string)\"\\ MP4/3GP\\ File\\ hinted\\ with\\ GPAC\\ 0.4.6-DEV-rev\\ \\(C\\)2000-2005\\ -\\ http://gpac.sourceforge.net\", a-3GPP-Adaptation-Support=(string)1, a-framesize=(string)\"96\\ 720-576\", clock-base=(guint)23480902, seqnum-base=(guint)9237, npt-start=(guint64)0, npt-stop=(guint64)473679992675, play-speed=(double)1, play-scale=(double)1
/GstPipeline:pipeline0/GstRTSPSrc:s.GstGhostPad:recv_rtp_src_0_182795788_96: caps = application/x-rtp, media=(string)video, payload=(int)96, clock-rate=(int)90000, encoding-name=(string)H264, profile-level-id=(string)64001E, packetization-mode=(string)1, sprop-parameter-sets=(string)\"Z2QAHqzsC0Em/8AEAAPEAAADAAQAAAMAyjxYtOA\\=\\,aOrssiw\\=\", x-copyright=(string)\"\\ MP4/3GP\\ File\\ hinted\\ with\\ GPAC\\ 0.4.6-DEV-rev\\ \\(C\\)2000-2005\\ -\\ http://gpac.sourceforge.net\", a-3GPP-Adaptation-Support=(string)1, a-framesize=(string)\"96\\ 720-576\", clock-base=(guint)23480902, seqnum-base=(guint)9237, npt-start=(guint64)0, npt-stop=(guint64)473679992675, play-speed=(double)1, play-scale=(double)1
/GstPipeline:pipeline0/GstRTSPSrc:s.GstGhostPad:recv_rtp_src_0_182795788_96.GstProxyPad:proxypad7: caps = application/x-rtp, media=(string)video, payload=(int)96, clock-rate=(int)90000, encoding-name=(string)H264, profile-level-id=(string)64001E, packetization-mode=(string)1, sprop-parameter-sets=(string)\"Z2QAHqzsC0Em/8AEAAPEAAADAAQAAAMAyjxYtOA\\=\\,aOrssiw\\=\", x-copyright=(string)\"\\ MP4/3GP\\ File\\ hinted\\ with\\ GPAC\\ 0.4.6-DEV-rev\\ \\(C\\)2000-2005\\ -\\ http://gpac.sourceforge.net\", a-3GPP-Adaptation-Support=(string)1, a-framesize=(string)\"96\\ 720-576\", clock-base=(guint)23480902, seqnum-base=(guint)9237, npt-start=(guint64)0, npt-stop=(guint64)473679992675, play-speed=(double)1, play-scale=(double)1
/GstPipeline:pipeline0/GstRTSPSrc:s/GstRtpBin:rtpbin0.GstGhostPad:recv_rtp_src_0_182795788_96.GstProxyPad:proxypad6: caps = application/x-rtp, media=(string)video, payload=(int)96, clock-rate=(int)90000, encoding-name=(string)H264, profile-level-id=(string)64001E, packetization-mode=(string)1, sprop-parameter-sets=(string)\"Z2QAHqzsC0Em/8AEAAPEAAADAAQAAAMAyjxYtOA\\=\\,aOrssiw\\=\", x-copyright=(string)\"\\ MP4/3GP\\ File\\ hinted\\ with\\ GPAC\\ 0.4.6-DEV-rev\\ \\(C\\)2000-2005\\ -\\ http://gpac.sourceforge.net\", a-3GPP-Adaptation-Support=(string)1, a-framesize=(string)\"96\\ 720-576\", clock-base=(guint)23480902, seqnum-base=(guint)9237, npt-start=(guint64)0, npt-stop=(guint64)473679992675, play-speed=(double)1, play-scale=(double)1
/GstPipeline:pipeline0/GstQueue:queue0.GstPad:sink: caps = video/x-h264
/GstPipeline:pipeline0/GstQueue:queue0.GstPad:src: caps = video/x-h264
/GstPipeline:pipeline0/MFW_GST_H264DEC_INFO_T:mfw_gst_h264dec_info_t0.GstPad:sink: caps = video/x-h264
ERROR: from element /GstPipeline:pipeline0/MFW_GST_H264DEC_INFO_T:mfw_gst_h264dec_info_t0: fatal error
Additional debug info:
non recoverable error while decoding the H.264 Data
Execution ended after 42604221 ns.
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
/GstPipeline:pipeline0/MFW_GST_H264DEC_INFO_T:mfw_gst_h264dec_info_t0.GstPad:sink: caps = NULL
/GstPipeline:pipeline0/GstQueue:queue0.GstPad:src: caps = NULL
/GstPipeline:pipeline0/GstQueue:queue0.GstPad:sink: caps = NULL
/GstPipeline:pipeline0/GstRtpH264Depay:rtph264depay0.GstPad:src: caps = NULL
/GstPipeline:pipeline0/GstRtpH264Depay:rtph264depay0.GstPad:sink: caps = NULL
/GstPipeline:pipeline0/GstRTSPSrc:s.GstGhostPad:recv_rtp_src_0_182795788_96: caps = NULL
/GstPipeline:pipeline0/GstRTSPSrc:s/GstRtpBin:rtpbin0.GstGhostPad:recv_rtp_src_0_182795788_96: caps = NULL
/GstPipeline:pipeline0/GstRTSPSrc:s/GstRtpBin:rtpbin0/GstRtpPtDemux:rtpptdemux1.GstPad:src_96: caps = NULL
/GstPipeline:pipeline0/GstRTSPSrc:s/GstRtpBin:rtpbin0/GstRtpJitterBuffer:rtpjitterbuffer1.GstPad:sink_rtcp: caps = NULL
/GstPipeline:pipeline0/GstRTSPSrc:s/GstRtpBin:rtpbin0/GstRtpSsrcDemux:rtpssrcdemux0.GstPad:rtcp_src_182795788: caps = NULL
/GstPipeline:pipeline0/GstRTSPSrc:s/GstRtpBin:rtpbin0/GstRtpSsrcDemux:rtpssrcdemux0.GstPad:rtcp_sink: caps = NULL
/GstPipeline:pipeline0/GstRTSPSrc:s/GstRtpBin:rtpbin0/GstRtpJitterBuffer:rtpjitterbuffer0.GstPad:sink_rtcp: caps = NULL
/GstPipeline:pipeline0/GstRTSPSrc:s/GstRtpBin:rtpbin0/GstRtpSsrcDemux:rtpssrcdemux1.GstPad:rtcp_src_415793068: caps = NULL
/GstPipeline:pipeline0/GstRTSPSrc:s/GstRtpBin:rtpbin0/GstRtpSsrcDemux:rtpssrcdemux1.GstPad:rtcp_sink: caps = NULL
/GstPipeline:pipeline0/GstRTSPSrc:s/GstRtpBin:rtpbin0/GstRtpSession:rtpsession1.GstPad:sync_src: caps = NULL
/GstPipeline:pipeline0/GstRTSPSrc:s/GstRtpBin:rtpbin0/GstRtpSession:rtpsession0.GstPad:sync_src: caps = NULL
Setting pipeline to NULL ...
Total rendered:0
Freeing pipeline ...
>>V4L finalize: class finalized.
lucid@lucid-desktop:~$
5. Try to render the RTSP media on QSB using totem player. Error came up also.
Anyone have idea about that? Thank you!
Sorry to ask an opposite question but has anyone installed gstreamer on the IMX?
http://imxcommunity.org/forum/topics/darwin-streaming-server
Right now, from my perspective. The streaming audio has a problem with the alsasink interface to their hardware. I'm decoding a DVB-H type signal (DVB-T datagram using RTP for audio/video). The video is working fine, but there is no audio. The video is h264 and the audio is AAC-LC. It seems the audio does not like a "push" type data flow, but works fine for "pull". If I record the faad output to a file and play it back into alsasink it works. Unfortunately, I plan on using this for a broadcast reception receiver, so it needs to work for data provided by the service provider and output by our channel decoder.
Paul Ruan said:
yes, I think there is some format incompatible between darwin streaming server packeting and the mfw_h264decoder. I had some progress. Using mpeg4 movie files instead of h264 movie files, and using the module mfw_mpeg4aspdecoder, the QSB can decode the video and display it successfully. But audio still failed. And If movie is 720X576 resolution, the video quality is ok. If the resolution is 1920x1080, many wrong in the video quailty.
All the test video can be played well by QSB if it is located in local instead of by RTSP.
Glenn Walker said:try mfw_vpudecoder instead of mfw_h264decoder. I doing an RTP and had a similar error, but found the vpudecoder worked.
yes, I think there is some format incompatible between darwin streaming server packeting and the mfw_h264decoder. I had some progress. Using mpeg4 movie files instead of h264 movie files, and using the module mfw_mpeg4aspdecoder, the QSB can decode the video and display it successfully. But audio still failed. And If movie is 720X576 resolution, the video quality is ok. If the resolution is 1920x1080, many wrong in the video quailty.
All the test video can be played well by QSB if it is located in local instead of by RTSP.
Glenn Walker said:
try mfw_vpudecoder instead of mfw_h264decoder. I doing an RTP and had a similar error, but found the vpudecoder worked.
try mfw_vpudecoder instead of mfw_h264decoder. I doing an RTP and had a similar error, but found the vpudecoder worked.