Giter VIP home page Giter VIP logo

starrtc / starrtc-server Goto Github PK

View Code? Open in Web Editor NEW
2.8K 114.0 897.0 1.2 GB

免费IM系统,IM即时通信消息系统(含一对一文字聊天,群聊,聊天室),免费一对一voip实时通话,录屏,webrtc服务端,免费直播连麦,互动直播,视频直播,RTSP拉流,RTMP推流,语音对讲,免费在线会议,视频会议等服务端程序,支持物联网平台,✨万水千山总是情,来个star行不行✨

Home Page: https://docs.starrtc.com/en/download/

C 100.00%
free instant-messaging live voip meeting

starrtc-server's Introduction

服务端程序免费私有部署

以下服务端均完全免费(采用C语言开发),无鉴权,可用于腾讯云,阿里云或局域网内部署,现已开放:

服务端 功能 备注
voipServer 一对一视频通话 需要搭配msgServer使用
msgServer 单聊(如文字聊天),私信,信令
chatDBServer 离线消息存储
groupServer 群聊 如果只需要单聊,不需要群聊的话,不用启动
chatRoomServer 多人聊天室
liveSrcServer 多人视频会议 RTMP推流
liveVdnServer 互动连麦直播,vdn分发网络
liveProxyServer RTSP 拉流服务端
videoRecServer 录制录像功能
groupPushHttpProxy 系统消息及群操作功能

#f03c15 web-supported目录里面是支持web端的服务端程序与自签名证书。do-not-support-web目录里面的服务端程序不支持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、离线消息数据服务端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 &

liveSrc服务端部署

后台启动:
nohup ./liveSrcServer > liveSrcServer.log 2>&1 &

RTMP推流测试:可打开安卓客户端,新建一个会议室,点击RTMP推流,填上RTMP URL后,点击推流即可。然后用其它第3方播放器如VLC就可以打开该RTMP URL观看会议画面了。

同理,可以在直播间推流,用vlc打开就可以观看直播了。

liveVdn服务端部署

互动直播,观众不限人数

后台启动:
nohup ./liveVdnServer > liveVdnServer.log 2>&1 &

录制服务端(videoRecServer)部署

目前用于liveSrcServer和voipServer的视频录像功能,目前为测试版,输出为ts文件,支持自定义切片或不切片,音频只支持AAC格式。

videoRecServer默认是切片模式,30s一片,若不切片,请在程序同级目录中新建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中获取得到,详见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

push群消息(全员):   
http://www.xxx.com:19922/pushGroupMsg?groupId=xxx&msg=xxxx

下面五个和群有关的接口,在客户端sdk同样有实现,但通过这些接口,服务端可以主动给群服务器同步群成员,或对群成员进行其他操作,请您根据实际需求来选取合适的群成员同步策略。

同步群成员:	
groupId: 群id
groupList:   所有群成员,用逗号隔开,不传groupList表示清空这个群的成员
ignoreList: 对该群设置了消息免打扰的群成员id,用逗号隔开
http://www.xxx.com:19922/syncGroupList?groupId=xxx&groupList=userId1,userId2,userId3,...&ignoreList=userId1,userIdx,...

添加群成员:   
addedUsers: 要添加进的群的所有用户id,用逗号隔开
http://www.xxx.com:19922/addUsersToGroup?groupId=xxx&addedUsers=userId1,userId2,userId3,...

删除群成员:   
deledUsers: 需要从群内删除的所有用户id,用逗号隔开
http://www.xxx.com:19922/delUsersFromGroup?groupId=xxx&deledUsers=userId1,userId2,userId3,...

设置免打扰:	
ignoreList: 对该群设置消息免打扰(不接收群消息)的所有用户id,用逗号隔开
http://www.xxx.com:19922/setPushIgnore?groupId=xxx&ignoreList=userId1,userIdx,...

取消免打扰:	
ignoreList: 对该群取消免打扰(接收群消息)的所有用户id,用逗号隔开
http://www.xxx.com:19922/unsetPushIgnore?groupId=xxx&ignoreList=userId1,userIdx,...

拉流服务端部署

用于拉取第三方rtsp流(RTMP流暂未开放),转换为starRTC协议后转发到liveSrcServer, 然后就可以在各终端(Android,iOS,PC和web)的在线会议或互动直播中播放这个流了。

后台启动:
nohup ./liveProxyServer > liveProxyServer.log 2>&1 &

测试方法:首先找到一个可以正常播放的rtsp流(也可以使用示例程序里面的默认测试流), 然后可以打开安卓示例程序,打开设置-》第3方流测试-》新建一个流,填一下名字,和流的rstp地址(也可以不填直接使用默认的测试流), 同时选择该流是在直播中播放,还是在会议中播放。 然后去直播间或会议室就可以看到拉的视频流画面了。

也可以自己使用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目录里面的示例代码。

Contact

QQ : 2162498688

邮箱:[email protected]

手机: 186-1294-6552

微信:starRTC

QQ群:807242783

遇到问题请先根据 https://github.com/starrtc/starrtc-server/wiki 自查,还不能解决请加群反馈。

更新记录

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

参考

端口连接性测试

阿里云修改安全组规则

腾讯云安全组操作指南

starrtc-server's People

Contributors

895377235 avatar caimjmumuxi avatar elesos avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

starrtc-server's Issues

能否提供一个特殊内容处理接口和机器人

比如用户输入 #天气预报#这种形式的聊天内容,会自动转发到AEC接口上,由服务器处理完成后给返回内容。这种聊天内容最好可以自定义,其实有些类似于云通讯中的自定义回调方法
是否可以添加机器人,机器人的消息由自定义接口处理。

videoRecServer录制文件命名规则

videoRecServer录制的文件目录格式为:./RECFOLDER/用户名/业务服务名_毫秒数_切片序号.ts,如./RECFOLDER/userId/liveSrcServer_873692718_1.ts。
请问下,具体的ts文件能否提供自定义文件名,或者能提供具体的业务唯一标记,现在如果在业务中需要回看,我如何才能找到对应的视频文件呢?

是否不支持ARM呢?

我在 Pi4+Ubuntu 18.0x 64bit 中安装并运行。提示:

./voipServer: cannot execute binary file: Exec format error

已经执行了 chmod +x *Server

一端PC网页 一端C#程序

语音对讲,一端是PC网页,一端是C#窗口程序,能实现吗,
C#客户端有很多个,怎么来区分呢

希望尽快添加对WindowsXP的支持,感谢

编写了一个测试程序,其中只调用了登录功能,该程序在Win10可以正常运行,但在xp系统下提示缺少诸多dll,即使将dll找全也不能解决问题,会报出"无法定位程序输入点 InitializeCriticalSectionEx 于动态链接库 Kernel32.dll 上"等问题,猜测问题应该出在starrtccoreDll_release.lib和starrtccoreDll.dll的编译生成方式上,其中默认使用了高于xp平台的系统函数,导致程序在适用于xp的同名dll中无法找到应使用的系统函数或其他功能。希望可以添加使用VS2013的Visual Studio 2013 - Windows XP (v120_xp)平台工具集编译且设置为在共享dll中使用MFC生成的starrtccoreDll_release.lib和starrtccoreDll.dll。

live streaming and video call still lag

Dear team, i try several time, for voip between android app its good quality. but for video call, streaming video still not smooth in less connection. can make it adaptive bandwith?

希望新增更多的aec通知事件

im消息内容回调;未开放的聊天室消息AEC_CHATROOM_SEND_MSG,建议携带上聊天内容;
发送普通消息离线时回调(用户不在线),方便后端走第三方推送,提醒用户打开APP或者其他动作

希望能开放跟多的aec事件

比如 用户进入会议室 离开会议室
甚至aec端可以直接调用starrtc服务端控制 而不是只能被动的接受事件

此项目能否私有部署在树莓派等系统中?

我直接下载的本项目, 并放入到了树莓派的系统中(树莓派官方系统), 按照项目的说明文档的操作步骤, 以root身份进行启动 do-not-support-web中的 start.sh 脚本, 控制台输出的信息是全都启动成功, 但通过 ps 命令查看启动进程, 却只有一个符合结果, 因此想问一下, 该项目是否支持在树莓派等系统中进行私有部署?

感谢开发者贡献的优秀开源项目!

请问拉取列表不稳定是什么原因?

部署试用后发现房间列表等不是每次都能刷出来,请问这是什么原因导致的?有解决办法吗?
我之前看到有私有部署的初始化可以自己维护列表,但今天想尝试时发现文档里初始化(私有部署)打不开了,WEB端的私有部署内容也变成了无关内容,请问以后还会开放相关内容的文档以供参考吗?

请教Web版集成私有服务器的方法

我只需要VOIP的服务来实现一个Demo,服务希望需要部署在自己的Server上,请问Web端集成需要注意方面呢?我看到了文档里Android的私有服务器代码,但是没看到Web版本的,请问有没有什么资料或者文档可以分享一下呢?

谢谢

会议房间添加密码功能

请问一下,会议房间 能否 加密?
就是创建会议室的时候,添加密码?

参与者需要输入密码才能进入

android 121018 或 131007

android 121018 或 131007 服务端是自己部署私服 这个问题一直存在服务端改怎么处理呢?之前清空数据新用户就恢复了

正常运行视频通话,一分多钟自动断线,以下是voipServer.log运行日志。

[StarRTC 2020-05-30 08:27:53] VOIPMOONSERVER_CALLING: APPID-FREE_ZCLA20190000136 to APPID-FREE_DG100001
[StarRTC 2020-05-30 08:27:55] VOIPMOONSERVER_RESPONSEING
[StarRTC 2020-05-30 08:27:55] VOIPMOONSERVER_RESPONSEING: APPID-FREE_DG100001
[StarRTC 2020-05-30 08:27:55] callerUserInfo->responseUserId=APPID-FREE_DG100001 ,callerUserInfo->cfd=4,responserUserId=APPID-FREE_DG100001
[StarRTC 2020-05-30 08:27:55] VOIPMOONSERVER_RESPONSEING_OK,recSessionTime=15907 98475745
[StarRTC 2020-05-30 08:27:55] VOIPMOONSERVER_CALLING_OK,recSessionTime=159079847 5745
[StarRTC 2020-05-30 08:27:55] Send AEC Online Event(APPID-FREE_ZCLA20190000136)
[StarRTC 2020-05-30 08:27:55] [APPID-FREE_ZCLA20190000136 call APPID-FREE_DG1000 01, send AEC online success]
[StarRTC 2020-05-30 08:27:58] VOIPMOONSERVER_CALLER_UPLOADING APPID-FREE_ZCLA201 90000136(28): cfd=4,revCount=133
[StarRTC 2020-05-30 08:28:01] VOIPMOONSERVER_CALLER_UPLOADING APPID-FREE_ZCLA201 90000136(28): cfd=4,revCount=333
[StarRTC 2020-05-30 08:28:04] VOIPMOONSERVER_CALLER_UPLOADING APPID-FREE_ZCLA201 90000136(28): cfd=4,revCount=533
[StarRTC 2020-05-30 08:28:07] VOIPMOONSERVER_CALLER_UPLOADING APPID-FREE_ZCLA201 90000136(28): cfd=4,revCount=733
[StarRTC 2020-05-30 08:28:10] VOIPMOONSERVER_CALLER_UPLOADING APPID-FREE_ZCLA201 90000136(15420): cfd=4,revCount=933
[StarRTC 2020-05-30 08:28:14] VOIPMOONSERVER_CALLER_UPLOADING APPID-FREE_ZCLA201 90000136(28): cfd=4,revCount=1133
[StarRTC 2020-05-30 08:28:17] VOIPMOONSERVER_CALLER_UPLOADING APPID-FREE_ZCLA201 90000136(28): cfd=4,revCount=1333
[StarRTC 2020-05-30 08:28:20] VOIPMOONSERVER_CALLER_UPLOADING APPID-FREE_ZCLA201 90000136(4217): cfd=4,revCount=1533
[StarRTC 2020-05-30 08:28:23] VOIPMOONSERVER_CALLER_UPLOADING APPID-FREE_ZCLA201 90000136(4126): cfd=4,revCount=1733
[StarRTC 2020-05-30 08:28:26] VOIPMOONSERVER_CALLER_UPLOADING APPID-FREE_ZCLA201 90000136(4174): cfd=4,revCount=1933
[StarRTC 2020-05-30 08:28:29] VOIPMOONSERVER_CALLER_UPLOADING APPID-FREE_ZCLA201 90000136(4042): cfd=4,revCount=2133
[StarRTC 2020-05-30 08:28:32] VOIPMOONSERVER_CALLER_UPLOADING APPID-FREE_ZCLA201 90000136(28): cfd=4,revCount=2333
[StarRTC 2020-05-30 08:28:35] VOIPMOONSERVER_CALLER_UPLOADING APPID-FREE_ZCLA201 90000136(4080): cfd=4,revCount=2533
[StarRTC 2020-05-30 08:28:38] VOIPMOONSERVER_CALLER_UPLOADING APPID-FREE_ZCLA201 90000136(28): cfd=4,revCount=2733
[StarRTC 2020-05-30 08:28:41] VOIPMOONSERVER_CALLER_UPLOADING APPID-FREE_ZCLA201 90000136(4165): cfd=4,revCount=2933
[StarRTC 2020-05-30 08:28:44] VOIPMOONSERVER_CALLER_UPLOADING APPID-FREE_ZCLA201 90000136(28): cfd=4,revCount=3133
[StarRTC 2020-05-30 08:28:48] VOIPMOONSERVER_CALLER_UPLOADING APPID-FREE_ZCLA201 90000136(3994): cfd=4,revCount=3333
[StarRTC 2020-05-30 08:28:51] VOIPMOONSERVER_CALLER_UPLOADING APPID-FREE_ZCLA201 90000136(4295): cfd=4,revCount=3533
[StarRTC 2020-05-30 08:28:54] VOIPMOONSERVER_CALLER_UPLOADING APPID-FREE_ZCLA201 90000136(28): cfd=4,revCount=3733
[StarRTC 2020-05-30 08:28:56] Send AEC Playing Event(APPID-FREE_ZCLA20190000136)
[StarRTC 2020-05-30 08:28:56] [APPID-FREE_ZCLA20190000136 call APPID-FREE_DG1000 01, send AEC playing success]
[StarRTC 2020-05-30 08:28:57] VOIPMOONSERVER_CALLER_UPLOADING APPID-FREE_ZCLA201 90000136(4040): cfd=4,revCount=3933
[StarRTC 2020-05-30 08:29:00] VOIPMOONSERVER_CALLER_UPLOADING APPID-FREE_ZCLA201 90000136(3828): cfd=4,revCount=4133
[StarRTC 2020-05-30 08:29:03] VOIPMOONSERVER_CALLER_UPLOADING APPID-FREE_ZCLA201 90000136(28): cfd=4,revCount=4333
[StarRTC 2020-05-30 08:29:06] VOIPMOONSERVER_CALLER_UPLOADING APPID-FREE_ZCLA201 90000136(28): cfd=4,revCount=4533
[StarRTC 2020-05-30 08:29:08] 5 is disconnected!
[StarRTC 2020-05-30 08:29:08] sendErrMsg: VOIP_MOONSERVER_ERRID_FAR_DISCONNECTED
[StarRTC 2020-05-30 08:29:08] 4 is disconnected!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.