自适应HLS流媒体-Flutter视频播放器

4

我正在开发一款新的原生应用程序,我选择使用Flutter(而不是React Native)进行开发。在这个应用程序中,将有一个视频流部分,并且这些视频将具有HLS流。

我正在使用Flutter中的video_player包。我能够成功播放视频,但是没有更改画质(1080p、720p等)的选项。如何在video_player包中实现视频画质选择?另外,video_player是否支持HLS的自适应比特率流?


你是如何在Flutter中为iOS播放HLS的? - shahana kareen
找到任何解决方案了吗? - kitta
3个回答

2

您可以使用堆叠小部件添加视频播放器和按钮。单击按钮后,您可以将视频的URL从1080p更改为720p。


1
好的,我明白了。但是视频播放器会选择什么默认值呢?有些播放器是自适应的,如果我们给它们包含所有流数据的“playlist.m3u8”文件,它们会根据网络连接自适应地选择默认值。我想知道video_player中是否存在这样的功能?我使用videojs包在Web上播放相同的视频,它的效果很好。 - Raghav Aggiwal
1
@RaghavAggiwal 我建议你阅读pub.dev中video_plugin的文档,其中写明它使用Android和iOS的本地视频播放器。 - Islomkhuja Akhrarov
@RaghavAggiwal 你好,你找到解决方案了吗? - Xgh05t

1

有一个软件包可以用来将画质从1080p改为720p,这是软件包的链接:yoyo_player


1
对于那些可能在这里寻找解决方案的人,使用默认的video_player或者yoyo player是一个非常简单的解决方案。只需要在URL前面添加所需的文件格式类型即可。例如,对于HLS,只需添加“.m3u8”,对于dash,则添加“.mpd”,视频将正常工作并仍然具有自适应功能。
因此,您的完整URL应该像这样:
对于HLS https://itvnnowoptimised-sano1.streaming.media.azure.net/3c0ecaef-002f-461f-854a-2397449d351f/thestoryofjoseph.ism/manifest(format=m3u8-aapl).m3u8 对于破折号 https://itvnnowoptimised-sano1.streaming.media.azure.net/3c0ecaef-002f-461f-854a-2397449d351f/thestoryofjoseph.ism/manifest(format=mpd-time-cmaf).mpd

这是使用Azure媒体服务。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接