Подтвердить что ты не робот

Можно ли использовать WebRTC для потоковой передачи видео с сервера на клиент?

В WebRTC я всегда вижу реализацию однорангового обмена и как получать потоковое видео от одного клиента к другому клиенту. Как насчет сервера для клиента?

Возможно ли, чтобы WebRTC транслировал видеофайл с сервера на клиент? (Я думаю об использовании API-интерфейса WebRTC Native С++ для создания моего собственного серверного приложения для подключения к текущей версии на клиентском приложении Chrome или браузера Firefox).

Хорошо, если это возможно, будет ли оно быстрее, чем многие текущие службы потоковой передачи видео?

4b9b3361

Ответ 1

Да, возможно, поскольку сервер может быть одним из сверстников в этом одноранговом сеансе. Если вы уважаете протоколы и отправляете видео в SRTP-пакетах с использованием VP8, браузер будет воспроизводить его. Чтобы помочь вам собрать эти компоненты на других приложениях или серверах, вы можете проверить эту страницу и этот проект как руководство.

Теперь, сравнивая WebRTC с другими потоковыми службами... Это будет зависеть от нескольких переменных, таких как кодек или протокол. Но, например, сравнение WebRTC (SRTP через UDP с кодеком VP8) против Flash (RTMP через TCP с кодеком H264), я бы сказал, что выигрывает WebRTC.

  • Игрок будет Flash Player против тэга <video>.
  • Транспорт будет TCP против UDP.

Но, конечно, все зависит от того, что вы отправляете клиенту.

Ответ 3

Я начал с WebRTC Native С++ для примера потокового видео браузера, но он больше не строится с фактическим Собственный код WebRTC.

Затем я вносил изменения в единый процесс:

  • управление peerConnection (peerconnection_server)
  • доступ к захвату Video4Linux (peerconnection_client).

Удаление потока из браузера на клиентский интерфейс WebRTC Native С++ дает простое решение для доступа через браузер WebRTC к устройству Video4Linux, доступному из GitHub webrtc-streamer.

Live Demo

Ответ 4

Мы пытаемся заменить MJPEG на Webrtc для нашего серверного программного обеспечения и иметь прототип модуля для этого, используя небольшое количество компонентов, связанных с проектом Openwebrtc. Это был абсолютный медведь, и у нас есть частые ошибки согласования ICE (даже в простой локальной сети), но в основном это работает.

Мы также создали прототип с модулем Google Webrtc, но у него было много зависимостей. Мне легче работать с модулями Openwebrtc, потому что материал Google настолько тесно связан с общими одноранговыми сценариями в браузере.

Я скомпилировал следующее:

libnice 0.1.14 gstreamer-sctp-1.0 usrsctp

Затем мне нужно напрямую взаимодействовать с libnice, чтобы собрать кандидатов. Также необходимо записывать файлы SDP вручную. Но количество контроля - возможность контролировать источник трубопровода - делает его целесообразным. Полученный конвейер (с двумя клиентами с одного сервера) ниже:

результат webrtc конвейер

Ответ 5

Конечно. Я пишу программу, использующую собственный WebRTC api, который может присоединиться к конференции как одноранговый узел и записывать как видео, так и аудио.

см.: Как передать аудио из браузера в собственное приложение С++ для WebRTC

и вы можете определенно передавать потоковое мультимедиа из собственного приложения.

Я уверен, что вы можете использовать dummy_audio_file для потоковой передачи звука из локального файла, и вы можете найти способ получить доступ к потоку передачи видео по своему усмотрению.

Ответ 6

Да, это. Мы разработали инструмент нагрузочного тестирования для публикации и воспроизведения для Ant Media Server. Этот инструмент может транслировать медиа файл. Мы использовали ту же нативную библиотеку WebRTC, что и Ant Media Server.