GNOME Bugzilla – Bug 771869
the PPS not found problem in using h264parse
Last modified: 2016-09-27 07:02:29 UTC
hello, i use gstreamer-android by playbin to playing a rtsp stream from IPC camera. here is the main info "gsth264parser.c:2122:gst_h264_parser_parse_slice_hdr couldn't find associated picture parameter set with id: 1" the pps id 0 is saved in gstreamer, but the IDR frame need pps id =1, so the gstreamer can't decode but vlc can decode and play the same rtp stream, athough it show "non-existing PPS 1 referenced, decode_slice_header error ; no frame!" repeatly thanks!
Please capture a sample stream as you feed it into h264parse with ... ! gdppay ! filesink location=h264.gdp and attach it to this bug so we can reproduce this locally, thanks!
Created attachment 336244 [details] h264.gdp the h264.gdp file size is too big , please download from http://pan.baidu.com/s/1pLKXxBt thanks!
the gstreamer pipe is like this: rtspsrc location=rtsp://192.168.21.23 ! rtpjitterbuffer ! rtph264depay ! gdppay ! filesink location=/sdcard/h264.gdp
This works fine for me: gst-launch-1.0 filesrc location= /home/tpm/samples/misc/771869-h264.gdp ! gdpdepay ! decodebin ! xvimagesink on a Linux desktop, with ffmpeg logging every now and then: ERROR libav :0:: non-existing PPS 1 referenced ERROR libav :0:: decode_slice_header error so I'm guessing that the Android video decoder is less forgiving and you may need to use the ffmpeg/libav decoder to make this work instead of the hardware decoder.
thanks, your information is is very useful! the ffmpeg libav can only use the soft decode in gstreamer? i also want to use the hardware decode, so ,do you have any best way to deal with this problem