Help needed for decoding of a H264 stream...
Guetcho Guetchev
getcho.getchev at gmail.com
Wed Jan 9 16:19:31 PST 2013
Hello guys.
I constructed a transmission pipeline. Although I can play it with Quicktime (Mac OS, Windows) and Totem (Ubuntu, Debian) I am unable to decode that stream with the following pipelines:
/usr/local/bin/gst-launch-1.0 rtspsrc location=rtsp://bbs.darktech.org:1935/live/iphone.sdp ! capsfilter name=c1 caps=application/x-rtp,media=video,payload=97,clock-rate=90000,encoding-name=H264 ! rtph264depay ! h264parse ! capsfilter name=c2 caps=video/x-h264,alignment=au ! avdec_h264 ! capsfilter name=c3 caps=video/x-raw,format=I420 ! avenc_tiff ! multifilesink location=./tiff_file_%05d
/usr/local/bin/gst-launch-1.0 rtspsrc location=rtsp://bbs.darktech.org:1935/live/iphone.sdp ! capsfilter name=c1 caps=application/x-rtp,media=video,payload=97,clock-rate=90000,encoding-name=H264 ! rtph264depay ! avdec_h264 ! avenc_tiff ! multifilesink location=./tiff_file_%05d
At both of the pipelines I observe the following results:
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
0:00:02.483934362 2917 0xb4b02580 ERROR libav :0:: get_buffer() failed (-1 2 (nil))
0:00:02.484005089 2917 0xb4b02580 ERROR libav :0:: decode_slice_header error
0:00:02.484015246 2917 0xb4b02580 ERROR libav :0:: mmco: unref short failure
0:00:04.647398217 2917 0xb4b02580 ERROR libav :0:: get_buffer() failed (-1 2 (nil))
0:00:04.647434178 2917 0xb4b02580 ERROR libav :0:: decode_slice_header error
0:00:04.647443756 2917 0xb4b02580 ERROR libav :0:: mmco: unref short failure
0:00:07.091243587 2917 0xb4b02580 ERROR libav :0:: Invalid level prefix
0:00:07.091389668 2917 0xb4b02580 ERROR libav :0:: error while decoding MB 18 37
And no valid tiff files are produced.
The same behaviour is seen even if I replace all the elements after avdec_h264 (excluding it) with fakesink.
Please, can anyone point me what I am doing wrong?
REMARKS:
The used version of gstreamer is 1.0.5
To start the stream, use the executable built on the code stored here: https://github.com/ggetchev/gst_test
The actual C-file that runs the transmission pipeline is named gsttest2.c
Just execute make and run the executable in that manner:
./gsttest <file> --no-reception
Where <file> is the un-bzip2-ed file 1.movie.bz2 from the git repository mentioned above.
Regards,
Getcho
More information about the gstreamer-devel
mailing list