HLS Playback Issues after bandwidth switch

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

HLS Playback Issues after bandwidth switch

DeepakRohan
Hi,

     I am currently working on HLS streaming.
Now the thing is I am streaming a http (m3u8) link, which internally has
multiple m3u8 links - each supporting streaming playlists for different
resolution.

Example (Just for understanding):
Master m3u8: http://myplaylist.m3u8

http://myplaylist.m3u8 - This contains:
http://first.m3u8
http://second.m3u8
http://third.m3u8
http://fourth.m3u8
Here first supports say 1Mbps bitrate,
second supports say 2Mbps bitrate,
third supports say 4Mbps bitrate and
fourth supports say 8Mbps bitrate.
Each of the above 4 links contain 15 playlist each from playlist0.ts to
playlist14.ts


Now in the beginning it plays from http://first.m3u8 links playlist0.ts as I
have set connection-speed of hlsdemux to be 0 (UNKNOWN).
hence when fetching next fragment it checks the available bitrate and
switches to say http://third.m3u8 playlist's playlist1.ts.
When it switches, I am removing all the elements after hlsdemux
(multiqueue0, tsdemux, audio-video multiqueue, input-selectors and
decodebin) apart from the audio-video sinks.

Then when I receive a new pad-added for hls after it switches, I re-create
the elements and I see that my pipeline has gone to play state.

The issue is it plays the playlist0.ts file properly, But whenever there is
a switch in playlist due to change in the bandwidth, I always get 20 second
delay and then my playback starts from 11th second (both audio-video).

After few analysis I found out that when it switches, my pipeline creation
and going to playing state is completed and audio-video multiqueues have
buffered from 11-25 seconds of data (15seconds is the max-size-time set on
the MultiQueue's).
After this I get the data to the next element (that is the decoders) after
20 seconds and playbacks starts.


Can someone suggest what to look into as the playback starts with 1-2 second
delay (which is OK), but whenever bandwidth switches, I always have the "20
second delay" and amazingly audio-video sinks play them without any drops
after 20 seconds.

Sorry if the issue was too elaborative.


Thank You in Advance



--
Sent from: http://gstreamer-devel.966125.n4.nabble.com/
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel