HLS stream playback is not smooth with 1.11.2 (vlc, ffplay ok)

lucky chou luckychsj at gmail.com
Wed Mar 15 07:32:14 UTC 2017


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.








--
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-tp4682224.html
Sent from the GStreamer-devel mailing list archive at Nabble.com.


More information about the gstreamer-devel mailing list