Множественный транспорт для передачи потоков VP9 и VP8 (Mediasoup) .

#android #flutter #dart #webrtc #mediasoup

Вопрос:

Мы пытаемся создать простое приложение для конференц-связи с кодеком VP9 и сталкиваемся со следующей проблемой.

1> android не может создавать потоки Vp9. Я даже пытаюсь подключить SDP к vp9, но не смог создать VP9 streams.it переключается на потоки 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>Во время потребления я получаю данные как о потоках 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 могли обрабатывать потоки.