0

我们正在尝试使用 VP9 编解码器创建一个简单的会议应用程序并遇到以下问题。

1> android 无法生成 Vp9 流。我什至尝试将 SDP 转换为 vp9,但无法生成 VP9 流。它切换到 VP8 流

RtpCodecCapability? codec = _mediasoupDevice!.rtpCapabilities.codecs.firstWhere(
                  (RtpCodecCapability c) =>
                      c.mimeType.toLowerCase() == 'video/vp9',
                  orElse: () =>
                      throw 'desired vp9 codec+configuration is not supported');
          codec.parameters = {
            "profile-id": 0,
            "x-google-start-bitrate": 1000
          };
android is switching VP8
m=video 7 UDP/TLS/RTP/SAVPF 96 97
I/flutter (28516): c=IN IP4 127.0.0.1
I/flutter (28516): a=rtpmap:96 VP8/90000
I/flutter (28516): a=rtpmap:97 rtx/90000
I/flutter (28516): a=fmtp:96 x-google-start-bitrate=1000
I/flutter (28516): a=fmtp:97 apt=96

2>在消费时,我从 Web 获取 VP9 的数据,从移动设备获取 VP8 流的数据。当我使用流时,我得到 vp9 轨道视频高度和宽度 = 0 或 vp8 轨道视频高度和宽度 = 0。因此我只能将网络或移动和其他轨道作为黑屏流式传输。尝试播放和暂停黑色视频,但没有奏效。

3> 为了处理上述问题,我为 VP9 和另一个为 VP8 创建了两个传输,并尝试使用流。仍然,我得到 vp9 轨道视频高度和宽度 = 0 或 vp8 轨道视频高度和宽度 = 0。

4>我创建了两个媒体汤设备来处理两个流,但问题仍然存在。

我们将服务器的编解码器从 VP9 更改为 Vp8,然后我就可以流式传输所有视频了。但我们想使用 VP9 作为默认编解码器。

问题 1- android 是否支持 VP9。如果它确实如何使其成为默认编解码器。2-我们可以使用 Mediasoup 服务器将 VP9 流转换为 VP8,以便所有 android 设备都可以处理流。

4

0 回答 0