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

OSCHINA-MIRROR/starRTC-starrtc-server

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Это зеркальный репозиторий, синхронизируется ежедневно с исходного репозитория.
В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Серверные программы для бесплатного частного развёртывания

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

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

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

Поддерживаются CentOS 64bit и Ubuntu 64bit. Для Windows рекомендуется использовать виртуальную машину (рекомендуется использовать мост) или Docker для тестирования.

Шаги развёртывания (переключитесь на пользователя 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-сервер состоит из трёх серверных приложений: msgServer, chatDBServer для хранения данных в автономном режиме, и groupServer для управления группами. Просто запустите их.

Если вам нужны только личные сообщения, нет необходимости запускать groupServer.

Вы можете сохранить свою существующую систему IM без изменений и использовать нашу систему IM в качестве службы сигнализации для voip и других служб.

Запуск в фоновом процессе:
nohup ./msgServer     > msgServer.log 2>&1 &
nohup ./chatDBServer  > chatDBServer.log 2>&1 &
nohup ./groupServer   > groupServer.log 2>&1 &

Развёртывание chatRoom-сервера

==

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

Тестирование RTMP-потоковой передачи liveSrc-сервера:

Можно открыть клиент Android, создать новую комнату для собраний, нажать «RTMP-поток», ввести URL-адрес RTMP, а затем нажать «Поток», чтобы начать потоковую передачу. Затем вы можете использовать другие сторонние проигрыватели, такие как VLC, для доступа к этому RTMP URL и просмотра содержимого собрания.

Аналогично, вы можете транслировать собрания, используя 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_0.ts

Видеозвонки один на один (VOIP):

./RECFOLDER/voips/имя пользователя/resSessionId_имя пользователя_номер фрагмента.ts, например ./RECFOLDER/voips/tom/1573119917990_tom_0.ts

Здесь sessionId получается на мобильном устройстве через SDK.

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

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

== Используется в режиме AEC Advanced, когда пользователи получают системные сообщения (например, уведомления об успешных покупках) или отправляют групповые системные сообщения всем пользователям группы (например, при добавлении или удалении пользователей из группы).

Обратите внимание, что эта служба предназначена только для использования другими службами в интрасети, не открывайте порт 19922 для внешнего доступа!

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

Отправить групповое сообщение (всем членам группы):   
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,...

Удаление членов группы:   
deledUsers: идентификаторы пользователей, которых нужно удалить из группы, разделенные запятыми
http://www.xxx.com:19922/delUsersFromGroup?groupId=xxx&deledUsers=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,...

Развёртывание сервера потоковой передачи (pull)

== Предназначен для извлечения потоков RTSP (потоки RTMP в настоящее время не открыты), преобразования их в протокол starRTC и пересылки на liveSrcServer. Затем можно будет воспроизводить этот поток в онлайн-конференциях или интерактивных трансляциях на различных терминалах (Android, iOS, ПК и веб).

Запуск бэкенда:
nohup ./liveProxyServer > liveProxyServer.log 2>&1 &

Метод тестирования:

Сначала найдите поток, который можно нормально воспроизвести (также можно использовать тестовый поток из примера программы), затем откройте программу для Android, перейдите в «Настройки» → «Сторонние потоки» → «Создать поток», введите имя и адрес потока RSTP (можно не вводить и использовать тестовый поток по умолчанию), а также выберите, будет ли поток воспроизводиться в трансляции или конференции. После этого вы сможете увидеть видеопоток в прямом эфире или комнате для конференций.

Также можно вызвать HTTP-запрос самостоятельно:

  1. Создайте channelId и потяните поток (streamType в настоящее время поддерживает только RSTP), интерфейс вернёт 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 являются необязательными параметрами.

  1. Потяните поток к указанному channelId:

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

  1. Остановите поток (channelId остаётся в списке):

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

  1. Остановите поток и удалите channelId:

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

Необходимо открыть порты.

Сервер Порт Веб-порт, который необходимо открыть
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

Ссылки: Тестирование подключения портов

Изменение правил группы безопасности Alibaba Cloud

Руководство по работе с группой безопасности Tencent Cloud

Комментарии ( 0 )

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

Введение

Описание недоступно Развернуть Свернуть
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://gitlife.ru/oschina-mirror/starRTC-starrtc-server.git
git@gitlife.ru:oschina-mirror/starRTC-starrtc-server.git
oschina-mirror
starRTC-starrtc-server
starRTC-starrtc-server
master