如何在Flutter WEB中播放RTSP流

How to play RTSP streams in Flutter WEB

大家好, 我是 Flutter 的新手,我想显示来自我的网络摄像机的 RTSP 流。有什么办法可以在Flutter WEB中播放RTSP流吗

据我所知,目前还没有支持 RTSP 甚至 HLS 的视频播放器(用于网络)。即使是来自 flutter 开发团队的官方 video_player 包似乎也不支持在网络上使用它。不过我可以提供一个解决方法....

如果你实现了一个像样的 webrtc 包和一个媒体服务器,你可以绕过直接在你的客户端接收 RTSP 的需要。我通过 livekit_client 包使用 flutter_webrtc 包已经有一段时间了。 Livekit 有一个 SFU,可用于代理 RTSP 流以与启用 WebRTC 的客户端通信。 I've seen a lot of people use ant media server for that sort of thing as well,我很确定您可以免费使用 Ant 的社区版。

人们倾向于使用媒体服务器来聚合视频流,而不是 1 个客户端从各种来源订阅 15 个流,而是某个地方具有非常好的 Internet 连接和体面的硬件的媒体服务器订阅这些流,然后生成一个新的视频流(或多个流),这样您的 phone、平板电脑或笔记本电脑客户端在 4G 网络上的某个地方,只需要接收 (a) WebRTC 流,可以在服务器上以各种方式优化方式。

编辑:我有另一个想法,我不知道这是否会很好地工作,但您可以在 IFrame 和 use HTMLElementView 中动态生成一个 HTML 页面。这将允许您使用 JavaScript/HTML5 视频播放器来播放您的 RTSP 流,但是它会带来高昂的成本,并且您需要进行平台检查以确保您之前在网络上 运行使用它。