How to change HLS quality in ijkplayer for flutter or alternative solutions?

1.7k views Asked by At

Hi can anyone help me with this issue, we decided to use the flutter ijkplayer as it's the only player on flutter that supports the option to change playback speed, but it doesn't have the option to change the hls quality, and neither does any other player as per my findings, if anyone knows please share.

As for what I've tried, I download the file and split it into 4 files with each file having only one video and audio stream and use a button to change the file.

I also tried to look into changing the tracks from master with the player but while FFMpeg does support this, I'm not sure how to do that from flutter.

Currently it works, but the splitting is hardcoded and might need to be changed for different master m3u8(we use vimeo and expect the same file format for master m3u8 but they can change it down the road or we could change service for video), and it would be preferable to change streams from the player itself instead of using an external ui button which for example won't be available in full screen mode, which you would expect most people to watch the video in.

I'm trying to make the splitting part more generalized but would like to know how others handle this problem.

Edit I've made the splitting somewhat dynamic, but I just came across another issue, in ffmpeg(complied in the ijk player it is 4-5 years old not the latest version) I have to use format option - protocol_whitelist,'http, https, tls, file, crypto, tcp, udp, concat' so I can play local file, but the player by default sets the format option - fflags 'fastseek' to allow playing faster than 1, but for some reason that functionality breaks the fastseek, or in other words, if I play local file I can't use speeds greater than 1, which I can on files I play from the internet.

Using this version of flutter ijkplayer github

1

There are 1 answers

3
Mohit Suthar On

You can use better player for flutter its good to choose quality

Better Player Flutter