我在IOS中找到了基于AVPlayer的flutter video_player,它不支持rtsp url。 任何人都可以帮助我知道如何使用' rstp / rtmp'等格式播放视频在扑腾?
答案 0 :(得分:0)
Flutter Vlc播放器程序包可以处理rtsp流。
这是自述文件部分的示例,更改源地址的“ urlToStreamVideo”值以进行测试。
import 'package:flutter/material.dart';
import 'package:flutter_vlc_player/flutter_vlc_player.dart';
class ExampleVideo extends StatefulWidget {
@override
_ExampleVideoState createState() => _ExampleVideoState();
}
class _ExampleVideoState extends State<ExampleVideo> {
final String urlToStreamVideo = 'http://distribution.bbb3d.renderfarming.net/video/mp4/bbb_sunflower_1080p_60fps_normal.mp4';
final VlcPlayerController controller = new VlcPlayerController(
// Start playing as soon as the video is loaded.
onInit: (){
controller.play();
}
);
final int playerWidth = 640;
final int playerHeight = 360;
@override
Widget build(BuildContext context) {
return Scaffold(
body: SizedBox(
height: playerHeight,
width: playerWidth,
child: new VlcPlayer(
aspectRatio: 16 / 9,
url: urlToStreamVideo,
controller: controller,
placeholder: Center(child: CircularProgressIndicator()),
)
)
);
}
}
答案 1 :(得分:0)
我有一个类似的要求,即必须以最小的延迟显示来自IP摄像机的流。我尝试了很多开源播放器,但没有一个能够以200ms左右的延迟流式播放。
在Internet上进行了彻底搜索,我发现了一些示例,这些示例涉及在Android上使用本机FFMPEG代码接收和解码RTSP流,并使用NativeWindow接口直接在SurfaceView上呈现它。之后,我能够以最小的延迟获得流。
在此之后,我在一个Flutter插件中介绍了当前的实现(虽然非常幼稚,但将有助于入门),该代码可在[Github] [1]上找到
如果我们可以进一步改进此插件并将其完美地用于生产版本,那就太好了。
PS:该插件当前仅支持Android,但我希望iOS版本可以在相似的行上开发。 [1]:https://github.com/oneeyedraven/flutter_rtsp_ffmpeg