потоковое аудио из браузера в приложение WebRT C C ++ - PullRequest
0 голосов
/ 14 января 2020

Мне удалось запустить пример peerconnection WebRT C, но он не работает в браузере. Я пытаюсь найти способ для потоковой передачи видео и аудио из браузера в мою родную программу.

Есть ли способ?

1 Ответ

0 голосов
/ 17 января 2020

Это можно сделать. WebRT C предназначен для одноранговой работы между двумя агентами WebRT C (обычно веб-браузером). Ваша нативная программа должна стать вторым узлом.

Если вам нужно полагаться на компоненты с открытым исходным кодом, хорошей отправной точкой будет:

  • OpenSSL для обмена ключами DTLS.
  • libsrtp для шифрования пакетов RTP.
  • ffmpeg для декодирования звука PCM из браузера (libvpx, если вам нужно сделать видео).

Вам также потребуется обрабатывать согласование ICE, которое требует обработки сообщений STUN. Также извлеките мультимедийные данные из пакетов RTP. Все эти шаги также выполняются после того, как вы определили метод сигнализации для обмена предложением и ответом SDP между вашим приложением и браузером.

Как вы, вероятно, поняли, начинать с нуля - это важная задача. Вероятно, есть некоторые коммерческие библиотеки, которые выполнят эту работу и избавят вас от многих трудностей.

Если это вас не пугает, и вы все еще хотите попробовать использовать компоненты с открытым исходным кодом, этот пример «может» помочь. В примере выполняется обратное тому, что вы просили, и отправляется видеопоток на Chrome, а не принимается аудиопоток. Полезным аспектом является согласование соединения. Пример программы позволяет получать пакеты RTP, что часто является основной проблемой.

В примере также используется Windows Media Foundation, значение которого Windows указано c. Он также имеет множество ярлыков, особенно при обработке пакетов RTP и STUN.

...