OpenVidu - платформа видеоконференций WebRTC с открытым исходным кодом, которую можно использовать в среде интрасети.
OpenVidu - платформа видеоконференций WebRTC с открытым исходным кодом, которую можно использовать в среде интрасети.

OpenVidu

1OpenVidu

OpenVidu[1] основан на Apache 2.0[2] Открытый исходный код протокола WebRTC Платформа видеоконференцсвязи, адрес основного склада: https://github.com/OpenVidu/openvidu 。

OpenVidu предоставляет набор простых, эффективных и простых в использовании интерфейсов API, которые инкапсулируют и защищают базовые операции WebRTC. Вам нужно только представить сервер и клиент OpenVidu для обработки медиапотоков. Он совместим с несколькими платформами. конечные и серверные платформы, а также оснащен обширной документацией, учебными пособиями и примерами приложений.

features

OpenVidu имеет три версии: CE, Pro и Enterprise. Версия CE имеет открытый исходный код, бесплатна и может использовать большинство важных функций OpenVidu:

editions

2Architecture[3]

Любое приложение OpenVidu состоит из трёх частей:

  1. OpenVidu развертывать(OpenVidu развертывание): Да OpenVidu CE、Pro、Enterprise Любую версию развернуть;
  2. Приложение «Служить» (сервер приложений): позвоните OpenVidu развертывать из REST API для обеспечения «Служить» для клиентов приложений;
  3. Клиент приложения (Приложение клиент): Это может быть браузер, мобильный терминал или настольное приложение. openvidu-browser.js SDK и OpenVidu развертыватькоммуникация。

architecture

OpenVidu поддерживает облачные платформы и оборудование самообслуживания.,Deploying OpenVidu CE on premises[4] Возможно развертывание производственных сред на собственном оборудовании. OpenVidu полная документация.

полный комплект OpenVidu Развертывание включает в себя к Вниз Служить[5]

  1. OpenVidu Server (openvidu-server):OpenVidu Платформа из мозга, отвечающая за сигнальную сторону;
  2. Kurento Media Server (kms):OpenVidu Сердце платформы отвечает за средства массовой информации;
  3. Coturn (coturn):Используется в некоторых специальных сетяхсерединапозволять СМИкоммуникацияиз Служитьустройство;
  4. Redis (redis): управлять Coturn База данных пользователей в Служить;
  5. Nginx (nginx): Конфигурация SSL-сертификатизобратный прокси,к Разрешить OpenVidu Server Приложения могут соответствовать стандартам https Порт (443) обеспечивает Служить;
  6. Videoconference Application (app): OpenVidu Call[6] Приложения или Другие приложения, необязательно.

Целью этой статьи является создание минимального полезного набора OpenVidu Испытайте среду и поддержите многосторонние видеоконференции,Таким образом, указанная выше полная развертывание сокращается. Coturn и Redis Услуги, использование включает в себя OpenVidu Server и Kurento Media Server образ одного контейнера openvidu/openvidu-dev:2.26.0[7] Развертывание и использование OpenVidu Call Заявка принята https://IP Наслаждайтесь многосторонними видеозвонками.

Используйте только localhost или 127.0.0.1 Локальную среду разработки можно использовать напрямую. HTTP, но необходимо передать IP или Доступ к доменному имени по сценарию, WebRTC Для работы требуется безопасное соединение, поэтому в структуру развертывания необходимо добавить компонент обратного прокси, который выглядит следующим образом: Изображение ниже[8] Показано:

proxy

3Развертывание

Затем следуйте рисунку выше, чтобы развернуть локальную среду взаимодействия.

OpenVidu deployment

Для доступа за пределы локальной среды OpenVidu Сервер, необходимо запускать при запуске обозначение IP адрес[9]

  • Linux:ip -4 -oneline route get 1.0.0.0 | grep -Po 'src \K\S+'
  • MacOS:ipconfig getifaddr "

к MacOS Взяв в качестве примера среду, вы можете использовать следующую команду для запуска включения OpenVidu Server и Kurento Media Server из openvidu-dev Контейнер в сборе OpenVidu deployment Компоненты развертывания:

Язык кода:javascript
копировать
# Run OpenVidu deployment container with new env variable
# WARNING: this container is not suitable for production deployments of OpenVidu
# Visit https://docs.openvidu.io/en/stable/deployment
docker run -p 4443:4443 --rm \
  -e OPENVIDU_SECRET=MY_SECRET \
  -e DOMAIN_OR_PUBLIC_IP=$(ipconfig getifaddr "$(route -n get 1.0.0.0 | grep 'interface' | awk '{print $2}')") \
  -e SERVER_PORT=4443 \
  -e HTTPS_PORT=443 \
  -e FORCE_PLAIN_HTTP=false \
  -d \
openvidu/openvidu-dev:2.26.0

Другие сопутствующие операции:

Язык кода:javascript
копировать
# Посмотреть журнал
docker logs -f $(docker ps -a | grep openvidu-dev | awk '{print $1}')
Язык кода:javascript
копировать
# Остановить и удалить контейнер
docker rm -f $(docker ps -a | grep openvidu-dev | awk '{print $1}')

Application server & client

Сносно OpenVidu Call[10] Подать заявку для проверки OpenVidu Результаты развертывания сервиса.

openvidu/openvidu-call:2.26.0[11] Изображение содержит Node Версия внешнего приложения, вы можете развернуть архитектурную схему за один шаг. Application server и Application client Развертывание компонентов.

Язык кода:javascript
копировать
docker run -p 5000:5000 --rm \
  -e OPENVIDU_URL=https://$(ipconfig getifaddr "$(route -n get 1.0.0.0 | grep 'interface' | awk '{print $2}')") \
  -e OPENVIDU_SECRET=MY_SECRET \
  -d \
openvidu/openvidu-call:2.26.0

На этом этапе вы можете пройти http://IP:5000 Посетил OpenVidu Call интерфейс приложения. ВебRTC Соответствующие голосовые, видео и другие функции требуют развертывания. Proxy передается после компонента HTTPS Доступ по протоколу можно использовать в обычном режиме.

Другие сопутствующие операции:

Язык кода:javascript
копировать
# Посмотреть журнал
docker logs -f $(docker ps -a | grep openvidu-call | awk '{print $1}')
Язык кода:javascript
копировать
# Остановить и удалить контейнер
docker rm -f $(docker ps -a | grep openvidu-call | awk '{print $1}')

Proxy

Proxy Компоненту роли разрешено прохождение HTTPS Посетите приложение. Локальную среду можно использовать openvidu-tutorials/certs[12] Предусмотрено в из Сертификате, к и воля openvidu-tutorials/openvidu-angular/nginx.conf Нет. 12 ОК[13] Порт состоит из 4200 Изменить на 5000

Язык кода:javascript
копировать
    upstream client-application {
        server host.docker.internal:5000;
    }

Поместите файл сертификата в certs путь и поместите скорректированную версию в путь того же уровня. nginx.conf файл, вы можете использовать следующую команду для завершения Proxy Развертывание компонентов:

Язык кода:javascript
копировать
# At the root path of the tutorial
# For example: /home/user/openvidu-tutorials/openvidu-hello-world
docker run --rm -p 443:443 \
  --add-host=host.docker.internal:host-gateway \
  -v $PWD/nginx.conf:/etc/nginx/nginx.conf:ro \
  -v $PWD/certs:/etc/nginx/certs:ro \
  -d \
nginx

если docker версия меньше чем 20.x, вы можете столкнуться при выполнении приведенной выше команды Error response from daemon: invalid IP address in add-host: "host-gateway". Из отчетов об ошибках вы можете обратиться к #2664[14] Китайский путь – это host.docker.internal Настройка доменного имени, соответствующая ИП, например:

Язык кода:javascript
копировать
# At the root path of the tutorial
# For example: /home/user/openvidu-tutorials/openvidu-hello-world
docker run --rm -p 443:443 \
  --add-host=host.docker.internal:$(ipconfig getifaddr "$(route -n get 1.0.0.0 | grep 'interface' | awk '{print $2}')") \
  -v $PWD/nginx.conf:/etc/nginx/nginx.conf:ro \
  -v $PWD/certs:/etc/nginx/certs:ro \
  -d \
nginx

Другие сопутствующие операции:

Язык кода:javascript
копировать
# Посмотреть журнал
docker logs -f $(docker ps -a | grep nginx | awk '{print $1}')
Язык кода:javascript
копировать
# Остановить и удалить контейнер
docker rm -f $(docker ps -a | grep nginx | awk '{print $1}')

4 реальных эффекта

После завершения развертывания всех компонентов,Сносно https://IP прийти в гости OpenVidu Call Приложение, имя пользователя для входа admin,Пароль активирован выше docker контейнервходящийиз OPENVIDU_SECRET Переменная среды из значения —— MY_SECRET

login

screen share

5Приложение

Прикрепленный может быть использован непосредственно и в полном объеме. nginx.conf содержание:

Язык кода:javascript
копировать
events {
    worker_connections 512;
}
http {
    upstream openvidu-deployment {
        server host.docker.internal:4443;
    }
    upstream server-application {
        server host.docker.internal:5000;
    }
    upstream client-application {
        server host.docker.internal:5000;
    }
    server {
        listen                  443 ssl;
        ssl_certificate         /etc/nginx/certs/cert.pem;
        ssl_certificate_key     /etc/nginx/certs/key.pem;

        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Forwarded-Proto https;
        proxy_headers_hash_bucket_size 512;
        proxy_redirect off;

        # Websockets
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";

        # OpenVidu deployment API
        location /openvidu/api {
            proxy_pass http://openvidu-deployment;
        }

        # OpenVidu WebSocket
        location ~ /openvidu$ {
            proxy_pass http://openvidu-deployment;
        }

        # Server application requests
        location /api/ {
            proxy_pass http://server-application;
        }

        # Client application requests
        location / {
            proxy_pass http://client-application;
        }
    }
}

Ссылки

[1]

OpenVidu: https://openvidu.io/

[2]

Apache 2.0: https://choosealicense.com/licenses/apache-2.0/

[3]

Architecture: https://docs.openvidu.io/en/2.26.0/developing-your-video-app/#openvidu-application-architecture

[4]

Deploying OpenVidu CE on premises: https://docs.openvidu.io/en/2.26.0/deployment/ce/on-premises/

[5]

к Вниз Служить: https://docs.openvidu.io/en/2.26.0/deployment/ce/on-premises/#deployment-instructions

[6]

OpenVidu Call: https://openvidu.io/openvidu-call

[7]

openvidu/openvidu-dev:2.26.0: https://hub.docker.com/layers/openvidu/openvidu-dev/2.26.0/images/sha256-87da7d58a44bdab566168876d7bc07296c5dfcc95a7e901ab0d3c5149caea154?context=explore

[8]

Ниже: https://docs.openvidu.io/en/2.26.0/troubleshooting/#3-test-applications-in-my-network-with-multiple-devices

[9]

обозначение IP адрес: https://docs.openvidu.io/en/2.26.0/troubleshooting/#1-run-the-openvidu-deployment-with-your-local-ip-and-other-configurations

[10]

OpenVidu Call: https://docs.openvidu.io/en/2.26.0/components/openvidu-call/

[11]

openvidu/openvidu-call:2.26.0: https://hub.docker.com/layers/openvidu/openvidu-call/2.26.0/images/sha256-b921f99d349666d0075c10fef0e6cce76b8708336a7279ce70b92a5786ab5a79?context=explore

[12]

openvidu-tutorials/certs: https://github.com/OpenVidu/openvidu-tutorials/tree/master/certs

[13]

openvidu-tutorials/openvidu-angular/nginx.conf Нет. 12 ХОРОШО: https://github.com/OpenVidu/openvidu-tutorials/blob/v2.26.0/openvidu-angular/nginx.conf#L12

[14]

#2664: https://github.com/docker/cli/issues/2664#issuecomment-1294472136

boy illustration
Углубленный анализ переполнения памяти CUDA: OutOfMemoryError: CUDA не хватает памяти. Попыталась выделить 3,21 Ги Б (GPU 0; всего 8,00 Ги Б).
boy illustration
[Решено] ошибка установки conda. Среда решения: не удалось выполнить первоначальное зависание. Повторная попытка с помощью файла (графическое руководство).
boy illustration
Прочитайте нейросетевую модель Трансформера в одной статье
boy illustration
.ART Теплые зимние предложения уже открыты
boy illustration
Сравнительная таблица описания кодов ошибок Amap
boy illustration
Уведомление о последних правилах Points Mall в декабре 2022 года.
boy illustration
Даже новички могут быстро приступить к работе с легким сервером приложений.
boy illustration
Взгляд на RSAC 2024|Защита конфиденциальности в эпоху больших моделей
boy illustration
Вы используете ИИ каждый день и до сих пор не знаете, как ИИ дает обратную связь? Одна статья для понимания реализации в коде Python общих функций потерь генеративных моделей + анализ принципов расчета.
boy illustration
Используйте (внутренний) почтовый ящик для образовательных учреждений, чтобы использовать Microsoft Family Bucket (1T дискового пространства на одном диске и версию Office 365 для образовательных учреждений)
boy illustration
Руководство по началу работы с оперативным проектом (7) Практическое сочетание оперативного письма — оперативного письма на основе интеллектуальной системы вопросов и ответов службы поддержки клиентов
boy illustration
[docker] Версия сервера «Чтение 3» — создайте свою собственную программу чтения веб-текста
boy illustration
Обзор Cloud-init и этапы создания в рамках PVE
boy illustration
Корпоративные пользователи используют пакет регистрационных ресурсов для регистрации ICP для веб-сайта и активации оплаты WeChat H5 (с кодом платежного узла версии API V3)
boy illustration
Подробное объяснение таких показателей производительности с высоким уровнем параллелизма, как QPS, TPS, RT и пропускная способность.
boy illustration
Удачи в конкурсе Python Essay Challenge, станьте первым, кто испытает новую функцию сообщества [Запускать блоки кода онлайн] и выиграйте множество изысканных подарков!
boy illustration
[Техническая посадка травы] Кровавая рвота и отделка позволяют вам необычным образом ощипывать гусиные перья! Не распространяйте информацию! ! !
boy illustration
[Официальное ограниченное по времени мероприятие] Сейчас ноябрь, напишите и получите приз
boy illustration
Прочтите это в одной статье: Учебник для няни по созданию сервера Huanshou Parlu на базе CVM-сервера.
boy illustration
Cloud Native | Что такое CRD (настраиваемые определения ресурсов) в K8s?
boy illustration
Как использовать Cloudflare CDN для настройки узла (CF самостоятельно выбирает IP) Гонконг, Китай/Азия узел/сводка и рекомендации внутреннего высокоскоростного IP-сегмента
boy illustration
Дополнительные правила вознаграждения амбассадоров акции в марте 2023 г.
boy illustration
Можно ли открыть частный сервер Phantom Beast Palu одним щелчком мыши? Супер простой урок для начинающих! (Прилагается метод обновления сервера)
boy illustration
[Играйте с Phantom Beast Palu] Обновите игровой сервер Phantom Beast Pallu одним щелчком мыши
boy illustration
Maotouhu делится: последний доступный внутри страны адрес склада исходного образа Docker 2024 года (обновлено 1 декабря)
boy illustration
Кодирование Base64 в MultipartFile
boy illustration
5 точек расширения SpringBoot, супер практично!
boy illustration
Глубокое понимание сопоставления индексов Elasticsearch.
boy illustration
15 рекомендуемых платформ разработки с нулевым кодом корпоративного уровня. Всегда найдется та, которая вам понравится.
boy illustration
Аннотация EasyExcel позволяет экспортировать с сохранением двух десятичных знаков.