是否可以使用 flutter 相机插件流式传输视频?

Is it possible to stream a video with flutter camera plugin?

我一直在玩相机插件,我知道有可能通过 CameraController 和函数 start/stopVideoRecording 捕捉视频,这些函数将采用文件路径作为输入。

我希望能够在录制视频的同时将其流式传输到服务器,是否可以通过相机插件的当前功能以某种方式实现?

您可以从 Dart 调用 Java/Kotlin 或 Objective-C/Swift 库。

我可以建议 Android、

的库

https://github.com/begeekmyfriend/yasea

https://github.com/ant-media/LiveVideoBroadcaster

您唯一需要做的就是为此类库开发一个 dart 接口。

看起来这是可能的,因为它是在 Flutter Live 上通过其中一个开发演示完成的。查看 YouTube video here 。在 24:17。 CameraController 上有一个名为 getByteStream 的方法。方法的要点如下所示。

void cameraBytesToDetector({@required CameraController camera}){
  camera.startByteStream( (image) {
    // do something with the image stream here
  });
}

但是我在任何地方都找不到参考,因为我也在寻找一种读取视频流的方法。

我不确定这是否能回答您的问题,但有一个名为 agora_rtc_engine 的软件包可以做到这一点。

Steve提到的startByteStream功能实际上并没有添加到插件中,因为它最初只是调用startByteStream,但实际上只提供图像。因此,在开发过程中,此功能已重命名为 startImageStream,如本 commit 所示。所以有一个 startImageStream,您可以在通过 web-rtc 将图像帧发送到后端后立即将其发送。那么,你可以尝试单独录制音频,然后也发送过来。

但是,startImageStream 不包含任何音频,并且性能可能不佳。添加字节流功能(包括音频)存在未决问题。 GitHub issue

截至目前,startByteStream 不存在于 code