是否支持rstp / rtmp视频播放器?

时间:2018-05-30 19:08:58

标签: video flutter

我在IOS中找到了基于AVPlayer的flutter video_player,它不支持rtsp url。 任何人都可以帮助我知道如何使用' rstp / rtmp'等格式播放视频在扑腾?

2 个答案:

答案 0 :(得分:0)

Flutter Vlc播放​​器程序包可以处理rtsp流。

flutter_vlc_player

这是自述文件部分的示例,更改源地址的“ 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