Flutter WebRTC 从服务器流式传输视频

Posted

技术标签:

【中文标题】Flutter WebRTC 从服务器流式传输视频【英文标题】:Flutter WebRTC streaming video from server 【发布时间】:2019-02-25 19:31:46 【问题描述】:

我正在使用 WebRTC 从服务器流式传输视频。用于 Flutter 的 WebRTC 刚刚发布,没有太多文档。我想知道的是如何检测 iceCandidate 是否开启且不为空。如何检查 iceConnectionState == 是否已连接?

stream() async
    Map<String,dynamic> configuration = 
      "iceServers" : []
    ;

    final Map<String, dynamic> constraints = 
      "mandatory": ,
      "optional": [ "DtlsSrtpKeyAgreement": false, ],
    ;

    peerConnection = await createPeerConnection(configuration, constraints);
    print('ok');
    peerConnection.onIceCandidate = gotIceCandidate;
    peerConnection.onIceConnectionState = onIceState;
  

  void gotIceCandidate(RTCIceCandidate iceCandidate)
    if (iceCandidate.candidate != null)
      print("onIceCandidate");
    
 

  void onIceState(RTCIceConnectionState iceConnectionState)
    if (iceConnectionState.index == 3)//CONNECTED
      print("connected");
    else if(iceConnectionState.index == 5)//FAILED
      print("failed");
    
  

这个颤振插件上没有onconnectedstatechange。并且没有 onTrack 从服务器流式传输视频。任何帮助将不胜感激!

【问题讨论】:

您提到您正在使用 Flutter 插件,您能否提供您正在使用的插件和a minimal, complete and verifiable example。另外,我注意到有一个可用的插件。你指的是这个plugin吗? 【参考方案1】:

flutter_webrtc 具有RTCPeerConnection().iceConnectionState 属性,您可以按照docs 中的说明使用该属性。同样,onTrack 也是available on the same class。

【讨论】:

以上是关于Flutter WebRTC 从服务器流式传输视频的主要内容,如果未能解决你的问题,请参考以下文章

Flutter 直播

仅使用视频标签实时流式传输到 HTML5(没有 webrtc)

Android - 在使用WebRTC发送到Wowza Streaming Engine之前旋转视频帧

WebRTC 中的呼叫组视频

将 getUserMedia 流式传输到 Icecast 服务器?

查看 janus webrtc 视频流时出现问题