#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 могли обрабатывать потоки.