I have been trying to reproduce a live streaming file provided from Azure Media Services but without success.

How I initialize my controller

I'm using a dash file in order to play it in Chrome since I'm developing a web app. I know that manifest files are really easy to reproduce in an Html5 tag.

I have also checked this previous question Found this in stackoverflow


Solution 1: johndeu

That's a difficult one for us to answer. The way that the Flutter Video Player API package appears to work from reading this documentation - https://pub.dev/packages/video_player

... is that it completely relies on the underlying OS version runtime to play back the content. Meaning it will vary by OEM device, iOS, Android, and browser version on each operating system. It probably does not contain any code to do the actual HLS or DASH streaming. It seems to just pass the URL off to the OS player of choice and hope for the best.

You can see that mentioned in the docs here:

Supported Formats

  • On iOS, the backing player is AVPlayer. The supported formats vary depending on the version of iOS, AVURLAsset class has audiovisualTypes that you can query for supported av formats.
  • On Android, the backing player is ExoPlayer, please refer here for list of supported formats.
  • On Web, available formats depend on your users' browsers (vendor and version). Check package:video_player_web for more specific information.

I assume on iOS it would need the URL for HLS with CMAF, so you would use (format=m3u8-cmaf) when on iOS devices to provide HLS.

On Exoplayer with Android - you can probably also use HLS with CMAF since it is listed as supported there - so also pass down (format=m3u8-cmaf)

On web browsers, it will differ, but you can try HLS (format=m3u8-cmaf) and DASH (format=mpd-time-cmaf) to see what works for you scenarios.