1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/wind-Cloud-starrtc-server

В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
README.md 19 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 08.06.2025 14:15 586c48a

Серверные программы для бесплатной частной установки

Все серверные программы ниже полностью бесплатны (разработаны на языке C), без аутентификации, могут использоваться на Tencent Cloud, Alibaba Cloud или в локальной сети, доступны для установки:

Серверная программа Функционал Примечания
voipServer Одиночное видео-телефонное общение Требуется использование msgServer
msgServer Одиночное общение (например, текстовое общение), приватные сообщения, сигналы
chatDBServer Хранение оффлайн-сообщений
groupServer Групповое общение Если требуется только одиночное общение, а групповое не нужно, то не запускайте
chatRoomServer Многопользовательское чат-комнатное общение
liveSrcServer Многопользовательское видео-конференц-связь, RTMP-поток
liveVdnServer Интерактивное вещание с объединением микрофонов, VDN-сети распространения
liveProxyServer Сервер для потокового вещания RTSP
videoRecServer Функция записи видео
groupPushHttpProxy Функции системных сообщений и групповых действий

#f03c15 В каталоге web-supported находятся серверные программы, поддерживающие веб-конечные точки и самоподписанные сертификаты. Серверные программы в каталоге do-not-support-web не поддерживают веб-конечные точки.

Поддерживает CentOS 64bit, Ubuntu 64bit. На Windows рекомендуется установить виртуальную машину (используйте мост) или Docker для тестирования.#f03c15 Шаги постановки (переключитесь на пользователя root или используйте sudo):

Шаг 1: Скачайте серверные программы: git clone https://github.com/starrtc/starrtc-server.git

Затем перейдите в соответствующий каталог и выполните chmod +x *.sh && ./start.sh для успешной установки! Если требуется запустить отдельно, продолжайте следующие шаги.

Шаг 2: Перейдите в соответствующий каталог и добавьте права на выполнение для всех серверных программ: chmod +x *Server

Шаг 3: Установите каждую серверную программу, как указано ниже:

Файлы с расширением .log являются файлами журнала, которые можно просмотреть с помощью команды tail -f xxx.log.

Установка сервера VoIP

Запуск в фоновом режиме:
nohup ./voipServer > voipServer.log 2>&1 &

Для проверки успешности запуска можно не запускать в фоновом режиме, а запустить ./voipServer и проверить логи на успешность запуска.

Примечание: также требуется установить msgServer для передачи сообщений о вызовах, ответах и т.д.

Установка сервера IM

Полный набор серверных программ IM включает в себя 3 серверные программы: сообщение-сервер msgServer, сервер данных оffline-сообщений chatDBServer, сервер управления группами groupServer. Каждый из них можно запустить отдельно.

Если требуется только одиночное общение, то запуск groupServer не требуется.Вы можете сохранить свою текущую систему обмена сообщениями без изменений и использовать нашу систему обмена сообщениями как службу сигналов для таких сервисов, как VoIP.```java Запуск в фоновом режиме: nohup ./msgServer > msgServer.log 2>&1 & nohup ./chatDBServer > chatDBServer.log 2>&1 & nohup ./groupServer > groupServer.log 2>&1 &


Развертывание сервера chatRoom
==
```java
Запуск в фоновом режиме:
nohup ./chatRoomServer > chatRoomServer.log 2>&1 &

Развертывание сервера liveSrc

Запуск в фоновом режиме:
nohup ./liveSrcServer > liveSrcServer.log 2>&1 &

Тестирование RTMP-потока: можно открыть клиентскую часть для Android, создать новую конференцию, нажать на RTMP-поток, ввести URL RTMP, затем нажать на кнопку "Поток". Затем с помощью стороннего проигрывателя, такого как VLC, можно открыть этот URL RTMP и просмотреть конференцию.

Аналогично, можно транслировать прямой эфир, и с помощью VLC можно будет просмотреть прямой эфир.

Развертывание сервера liveVdn

Интерактивный прямой эфир, где количество зрителей не ограничено

Запуск в фоновом режиме:
nohup ./liveVdnServer > liveVdnServer.log 2>&1 &

Развертывание сервера записи видео (videoRecServer)

Текущее использование для liveSrcServer и VoIPServer, версия для тестирования, вывод в формате ts, поддерживает пользовательское разбиение на сегменты или отсутствие разбиения, аудио поддерживает только формат AAC.По умолчанию videoRecServer работает в режиме разбиения на сегменты, каждый сегмент длится 30 секунд. Если разбиение на сегменты не требуется, создайте текстовый файл starrtc.conf в той же директории, где находится программа, и введите recSegMode=off, чтобы отключить режим разбиения на сегменты. При отключении разбиения на сегменты номер сегмента всегда будет равен 0.Формат директории:

Для онлайн-конференций или интерактивного прямого эфира:

./RECFOLDER/liveChannels/имя_пользователя/resSessionId_имя_пользователя_номер_сегмента.ts, например ./RECFOLDER/liveChannels/tom/1573119917990_tom_ Yöntem 0.ts

Для одиночных видеосвязей (VOIP):

./RECFOLDER/voips/имя_пользователя/resSessionId_имя_пользователя_номер_сегмента.ts, например ./RECFOLDER/voips/tom/1573119917990_tom_ Yöntem 0.ts

Где sessionId можно получить с помощью SDK для мобильных устройств, подробнее см. документацию для Android.

Запуск в фоновом режиме:
nohup ./videoRecServer > videoRecServer.log 2>&1 &

Системные сообщения и функции управления группами

Используется при использовании пользователем продвинутого режима AEC, например, для отправки системного сообщения определенному пользователю (например, уведомление о успешной покупке) или для отправки системного сообщения всем пользователям определенной группы (например, когда кто-то присоединяется к группе или покидает её). Обратите внимание, что этот сервис предназначен только для использования в локальной сети другими службами, не следует открывать порт 19922 для внешней сети!

push системное сообщение:
toUsers: все пользователи, которым нужно отправить сообщение, разделенные запятыми
msg: текст сообщения, который нужно отправить
digest: краткое содержание текста сообщения, используемое для push-уведомлений, когда пользователь не онлайн
http://www.xxx.com:19922/pushSystemMsgToUsers?toUsers=userId1,userId2,userId3,...&msg=xxxx&digest=xxxx

Исправления:

  1. "номер_сегмента" переведено как "номер сегмента".
  2. "Yöntem" заменено на "номер".
  3. "msg: текст сообщения, который нужно отправить" переведено как "msg: текст сообщения, которое нужно отправить".
  4. "digest: краткое содержание текста сообщения, используемое для push-уведомлений, когда пользователь не онлайн" переведено как "digest: краткое содержание текста сообщения, используемое для push-уведомлений, когда пользователь не онлайн".push сообщение для всей группы: http://www.xxx.com:19922/pushGroupMsg?groupId=xxx&msg=xxxx

Далее приведены пять интерфейсов, связанных с группами. Эти интерфейсы реализованы в клиентском SDK, но они позволяют серверу активно синхронизировать членов группы или выполнять другие операции с ними. Пожалуйста, выберите подходящую стратегию синхронизации членов группы в соответствии с вашими потребностями.

синхронизация членов группы:
groupId: идентификатор группы
groupList: все члены группы, разделенные запятыми, если не передан groupList, то члены группы будут удалены
ignoreList: идентификаторы членов группы, которым включена опция "не беспокоить", разделенные запятыми
http://www.xxx.com:19922/syncGroupList?groupId=xxx&groupList=userId1,userId2,userId3,...&ignoreList=userId1,userIdx,...

добавление членов группы:
addedUsers: идентификаторы пользователей, которые нужно добавить в группу, разделенные запятыми
http://www.xxx.com:19922/addUsersToGroup?groupId=xxx&addedUsers=userId1,userId2,userId3,...

удаление членов группы:
deletedUsers: идентификаторы пользователей, которых нужно удалить из группы, разделенные запятыми
http://www.xxx.com:19922/delUsersFromGroup?groupId=xxx&deletedUsers=userId1,userId2,userId3,...

установка опции "не беспокоить":
ignoreList: идентификаторы пользователей, которым включена опция "не беспокоить" (не получать сообщения группы), разделенные запятыми
http://www.xxx.com:19922/setPushIgnore?groupId=xxx&ignoreList=userId1,userIdx,...
```Отключение опции "не беспокоить":
ignoreList: идентификаторы пользователей, которым отключена опция "не беспокоить" (получать сообщения группы), разделенные запятыми
http://www.xxx.com:19922/unsetPushIgnore?groupId=xxx&ignoreList=userId1,userIdx,...

Настройка сервера для получения потока
==
Используется для получения потока RTSP (RTMP потоки временно недоступны), преобразования его в протокол StarRTC и передачи на сервер liveSrcServer, после чего поток можно воспроизводить в различных терминалах (Android, iOS, PC и веб).

```java
Запуск в фоновом режиме:
nohup ./liveProxyServer > liveProxyServer.log 2>&1 &

Тестовые методы: сначала найдите rtsp-поток, который можно воспроизводить (или используйте по умолчанию тестовый поток из примера программы), затем откройте пример программы для Android, перейдите в настройки -> Тестирование потоков третьих сторон -> Создайте новый поток, введите имя и адрес rtsp-потока (или оставьте поле пустым для использования по умолчанию тестового потока), при этом выберите, будет ли поток воспроизводиться в прямом эфире или в конференции. Затем перейдите в прямой эфир или конференцию, и вы увидите воспроизводимый видео-поток. Также можно самостоятельно использовать HTTP-запросы:

  • 1 Создать channelId и начать поток (streamType временно поддерживает только rtsp), запрос вернёт channelId:

http://www.xxx.com:19932/push?streamType=rtsp&streamUrl=rtsp://184.72.239.149/vod/mp4://BigBuckBunny_175k.mov&roomLiveType=0&roomId=xxxx&extra=xxxxxгде roomId и extra — необязательные параметры.

  • 2 Начать поток в указанный channelId:

http://www.xxx.com:19932/push?streamType=rtsp&streamUrl=rtsp://184.72.239.149/vod/mp4://BigBuckBunny_175k.mov&channelId=xxxx

  • 3 Остановить поток (не удалять channelId, он всё ещё будет существовать в списке):

http://www.xxx.com:19932/close?channelId=xxxx

  • 4 Остановить поток и удалить channelId:

http://www.xxx.com:19932/delete?channelId=xxxx

Необходимо открыть соответствующие порты

Сервер Порт Необходимые для web-конфигурации порты
msgServer 19903(tcp) 29991(tcp):HTTPS-тест доверия
voipServer 10086(udp) 44446(udp):P2P-коммуникация 10087(tcp):WebSocket 10088(udp):WebRTC 29992(tcp):HTTPS-тест доверия
chatRoomServer 19906(tcp) 29993(tcp):HTTPS-тест доверия
liveSrcServer 19931(udp) 19934(tcp):WebSocket 19935(udp):WebRTC 29994(tcp):HTTPS-тест доверия
liveVdnServer 19928(udp) 19940(tcp):WebSocket 19941(udp):WebRTC 29995(tcp):HTTPS-тест доверия
liveProxyServer 19932(tcp)

Тестирование

Скачайте пример клиента,

откройте "Настройки -> Серверная конфигурация", затем введите свой IP-адрес сервера (не изменяйте номер порта, если используется доменное имя, не добавляйте префикс "http://").

Разработка клиентской части

Для разработки собственного клиента на основе приватного сервера, обратитесь к разработческим документам,

пример кода доступен по ссылке: https://docs.starrtc.com/en/download/Разработка серверной части

Откройте файл конфигурации starrtc.conf и измените значение aecurl (в настоящее время не поддерживается адрес HTTPS), для разработки используйте примеры кода в директории server-api.Контакты

QQ: 2162498688

Электронная почта: support@starRTC.com

Телефон: 186-1294-6552

WeChat: starRTC

QQ-группа: 807242783

Если у вас возникли проблемы, сначала проверьте их по ссылке https://github.com/starrtc/starrtc-server/wiki, если проблема не решена, присоединяйтесь к группе для обратной связи.

История обновлений

https://github.com/starrtc/starrtc-server/wiki/Changelog

Ссылки

Тестирование соединяемости портов

Изменение правил безопасности в группе безопасности на АлиБабаクラウド

Руководство по работе с группами безопасности на Тенцент Клод

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/wind-Cloud-starrtc-server.git
git@api.gitlife.ru:oschina-mirror/wind-Cloud-starrtc-server.git
oschina-mirror
wind-Cloud-starrtc-server
wind-Cloud-starrtc-server
master