Hi,I'm working with 1.11.2, when playing some HLS stream,
obviously can feel the playback is not smooth, it should be drop frame. ---- .... 01-01 08:04:00.591 944 5883 W [gstbasesink.c:2901] <basesink> warning: A lot of buffers are being dropped. .... 01-01 08:04:02.042 944 5881 V [gstvideodecoder.c:3121] <videodecoder> accepting buffer inside segment: 0:00:02.043000000 0:00:02.084708333 seg 0:00:00.000000000 to 99:99:99.999999999 time 0:00:00.000000000 01-01 08:04:02.042 944 5881 D [gstvideodecoder.c:3155] <videodecoder> Dropping frame due to QoS. start:0:00:02.043000000 deadline:0:00:02.043000000 earliest_time:0:00:05.011717403 ... ---- On Android, just drop frames, the screen gives a slight sense of jitter. On PC, more serious, after about 45s,video frame freezes/hangs... Here is one of the HLS stream: https://drive.google.com/drive/folders/0B8t5E5lSOxhHbU1ERndPN3lFLU0?usp=sharing Drop frames should not be performance-related, video specifications are as follows: ------ Duration: 00:03:22.00, start: 567.273000, bitrate: 0 kb/s Program 0 Metadata: variant_bitrate : 0 Stream #0:0: Video: h264 (High) ([27][0][0][0] / 0x001B), yuv420p(tv, bt709), 1200x504, 23.98 fps, 23.98 tbr, 90k tbn, 47.95 tbc Metadata: variant_bitrate : 0 Stream #0:1: Audio: aac (HE-AAC) ([15][0][0][0] / 0x000F), 44100 Hz, stereo, fltp Metadata: variant_bitrate : 0 ------ I extracted the source file audio pts with ffmpeg, the interval between the two frames are about 4000 ffprobe -show_frames -select_streams a:0 -i http://10.9.44.131/issures/iqiyi/index.m3u8 > ~/Desktop/audio.info ------ pts diff(PTS(n) - PTS(n-1)) pkt_pts 51057810 4230 pkt_pts 51062040 4140 pkt_pts 51066180 4230 pkt_pts 51070410 4140 pkt_pts 51074550 4140 pkt_pts 51078690 4230 pkt_pts 51082920 4140 pkt_pts 51087060 4230 pkt_pts 51091290 4140 pkt_pts 51095430 4230 pkt_pts 51099660 4140 pkt_pts 51103800 4140 pkt_pts 51107940 4230 pkt_pts 51112170 4140 pkt_pts 51116310 4230 pkt_pts 51120540 4140 pkt_pts 51124680 4230 pkt_pts 51128910 4140 pkt_pts 51133050 4230 pkt_pts 51137280 4140 pkt_pts 51141420 4140 pkt_pts 51145560 4230 pkt_pts 51149790 4140 pkt_pts 51153930 4230 pkt_pts 51158160 4140 pkt_pts 51162300 4230 pkt_pts 51166530 4140 pkt_pts 51170670 4230 pkt_pts 51174900 4140 .... ------- ,But gstreamer tsdemux.c gst_ts_demux_record_pts out of the pts is like this: ----- 01-02 01:18:21.227 4289 4863 tsdemux.c:1973] <tsdemux> pid 0x0101 raw pts:51153930 at offset 152092 01-02 01:18:21.403 4289 4863 tsdemux.c:1973] <tsdemux> pid 0x0101 raw pts:51229170 at offset 217892 <= diff= 51229170-51153930 = 75240 01-02 01:18:21.608 4289 4863 tsdemux.c:1973] <tsdemux> pid 0x0101 raw pts:51287670 at offset 280308 <= diff= 51287670 - 51229170 = 58500 01-02 01:18:21.649 4289 4863 tsdemux.c:1973] <tsdemux> pid 0x0101 raw pts:51316920 at offset 294220 <= diff = 51316920 - 51287670 = 29250 01-02 01:18:21.652 4289 4863 tsdemux.c:1973] <tsdemux> pid 0x0101 raw pts:51321150 at offset 294972 <= 51321150 - 51316920 = 4230 01-02 01:18:21.674 4289 4863 tsdemux.c:1973] <tsdemux> pid 0x0101 raw pts:51333660 at offset 304184 01-02 01:18:21.678 4289 4863 tsdemux.c:1973] <tsdemux> pid 0x0101 raw pts:51337890 at offset 305124 01-02 01:18:21.681 4289 4863 tsdemux.c:1973] <tsdemux> pid 0x0101 raw pts:51342030 at offset 305876 01-02 01:18:21.804 4289 4863 tsdemux.c:1973] <tsdemux> pid 0x0101 raw pts:51404760 at offset 352876 01-02 01:18:21.926 4289 4863 tsdemux.c:1973] <tsdemux> pid 0x0101 raw pts:51463260 at offset 392544 01-02 01:18:21.933 4289 4863 tsdemux.c:1973] <tsdemux> pid 0x0101 raw pts:51467400 at offset 393296 01-02 01:18:21.957 4289 4863 tsdemux.c:1973] <tsdemux> pid 0x0101 raw pts:51471630 at offset 400816 01-02 01:18:21.960 4289 4863 tsdemux.c:1973] <tsdemux> pid 0x0101 raw pts:51475770 at offset 401568 01-02 01:18:21.963 4289 4863 tsdemux.c:1973] <tsdemux> pid 0x0101 raw pts:51480000 at offset 402320 ----- Vlc and ffplay can smooth play, where is a problem gstreamer?May it be timestamp related? Or gstreamer can not properly handle EXT-X-DISCONTINUITY? Plz help me ,thinks. |
Ask some questions, in tsdemux, the calculation of the timestamp
is associated with the pcr, if the file itself pcr is not continuous, or the interval is too large, will lead to gstreamer A/V synchronization issure? [In https://drive.google.com/drive/folders/0B8t5E5lSOxhHbU1ERndPN3lFLU0?usp=sharing , Some ts file two adjacent pcr interval of 8s, which should be regarded as a problem well? 1. PCR:15314130000(00:09:27.190) PTS:51054570 DTS:51047100 2. PCR:15488685000(00:09:33.655) PTS:51636420 DTS:51628950 <= diff 6s 3. PCR:15713892000(00:09:41.996) PTS:52387200 DTS:52379640 <= diff 8s ... ] Is it possible, do not use pcr to recalculate timestamp, just rely on pts / dts in the file as a basis for handling synchronization? |
Hi,
Please file a bug about this with a sample stream at https://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer&component=gst-plugins-bad Also include information about in which version it was working before, if any. Thanks! On Fri, 2017-03-17 at 01:22 -0700, lucky chou wrote: > Ask some questions, in tsdemux, the calculation of the timestamp > is associated with the pcr, if the file itself pcr is not > continuous, > or the interval is too large, will lead to gstreamer A/V > synchronization > issure? > [In > https://drive.google.com/drive/folders/0B8t5E5lSOxhHbU1ERndPN3lFLU0?u > sp=sharing > , > Some ts file two adjacent pcr interval of 8s, which should be > regarded as a > problem well? > > 1. PCR:15314130000(00:09:27.190) PTS:51054570 DTS:51047100 > 2. PCR:15488685000(00:09:33.655) PTS:51636420 DTS:51628950 <= diff > 6s > 3. PCR:15713892000(00:09:41.996) PTS:52387200 DTS:52379640 <= diff > 8s > ... > > ] > > Is it possible, do not use pcr to recalculate timestamp, just rely on > pts / > dts in the > file as a basis for handling synchronization? > > > > > > > -- > View this message in context: http://gstreamer-devel.966125.n4.nabble > .com/HLS-stream-playback-is-not-smooth-with-1-11-2-vlc-ffplay-ok- > tp4682224p4682274.html > Sent from the GStreamer-devel mailing list archive at Nabble.com. > _______________________________________________ > gstreamer-devel mailing list > [hidden email] > https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel signature.asc (981 bytes) Download Attachment |
In reply to this post by Sebastian Dröge-3
On PC, Play this stream:
https://drive.google.com/drive/folders/0B8t5E5lSOxhHbU1ERndPN3lFLU0?usp=sharing , I got the following error message: --- ... 0:00:41.080701679 28909 0x7f59fc022aa0 ERROR libav :0:: no frame! Android using mediacodec, it will not appear this error,just playback is not smooth, audio and video slightly out of sync (fps = 23, can be clearly felt). But if we forced use of ffmpeg to decode on android, then there will be the same error: ----- 03-29 15:04:26.211 21013 21194 E [:0] <libav> no frame! 03-29 15:04:26.211 21013 21186 W[gstavviddec.c:1695] <libav> avdec_h264: decoding error (len: -1094995529, have_data: 0) |
Free forum by Nabble | Edit this page |