FFmpeg в WebRTC через UDP и DataChannel для демонстрации экрана с малой задержкой

Я изучаю различные способы обеспечения совместного использования экрана с низкой задержкой с помощью WebRTC и сталкиваюсь с проблемой. Любая помощь приветствуется!

На данный момент я могу захватить/транслировать экран Mac OS на локальный хост с помощью FFmpeg, затем забрать поток и воспроизвести его на других компьютерах в моей сети.

Вот моя командная строка FFmpeg для захвата видео с рабочего стола:

ffmpeg -f avfoundation -framerate 60 -capture_cursor 1 -i "1" -c:v h264_videotoolbox -realtime 1 -vsync 2 -b:v 5000k out777777.mp4

Мне было интересно, есть ли способ использовать WebRTC (в идеале метод канала данных), чтобы удаленный компьютер мог получать и воспроизводить этот поток UDP моего рабочего стола, когда два одноранговых узла подключены через канал данных?

Благодарю вас!


person Josh Sterling    schedule 08.04.2020    source источник
comment
Пожалуйста, задайте конкретный вопрос, на который можно ответить. «Кому-нибудь повезло» далеко не расплывчато, самоуверенно и открыто для переполнения стека.   -  person szatmary    schedule 08.04.2020
comment
Понял - спасибо - поменял!   -  person Josh Sterling    schedule 09.04.2020


Ответы (1)


Сам по себе ffmpeg не может помочь вам с WebRTC, поэтому вам нужно будет либо сшить все вместе, либо использовать полную реализацию WebRTC.

Кто-то реализовал демонстрацию экрана с помощью libx264 под названием webrtc-remote-screen, это может быть полезно!

Если вы хотите построить свой собственный, вам понадобится

  • Реализация SDP (и сигнализация для ее транспортировки)

  • Агент ICE

  • Реализация DTLS

  • Реализация SCTP

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

person Sean DuBois    schedule 08.04.2020