OpenVidu deployment就是OpenVidu的信令服务器和Kms服务器,作为OpenVidu的核心组件。
官方提供了一个简单易用的docker映像,其中包括OpenVidu服务器和Kurento Media server(官方推荐方式)。
docker run -p 4443:4443 --rm -e OPENVIDU_SECRET=MY_SECRET openvidu/openvidu-dev:2.27.0
你必须先安装docker才能执行。
启动完成后,通过https://localhost:4443/ 可检查是否正常启动。
参数说明
参数名字 | 参数说明 | 默认值 |
---|---|---|
DOMAIN_OR_PUBLIC_IP | 可访问OpenVidu服务器的域名。如果没有,则为机器的公共IP地址。客户端将使用此连接到OpenVidu服务器。例如:openvidu.example.com 192.0.2.2 | |
OPENVIDU_SECRET | 连接到OpenVidu服务器的密码,使用REST API或任何服务器客户端(openvidu-java-client、openvidu-node-client)时,都需要此值。建议在生产环境设置该值。 | |
CERTIFICATE_TYPE | 证书类型 [selfsigned,owncert,letsencrypt] | selfsigned |
HTTPS_PORT | 安全访问的端口 | 443 |
HTTP_PORT | 非安全访问的端口,CERTIFICATE_TYPE=letsencrypt则该端口之只能是80.注意该值是OpenVidu的管理端的端口,如果要访问信令服务器的是通过4443端口访问 | 80 |
OPENVIDU_CDR | 是否开启外部日志,OpenVidu Deployment 的日志是放在docker内部的,不容易查看。如果想把日志同步在外部路径上,可以设置该值为True。日志的样例:{“sessionCreated”:{“timestamp”:1538481330577,“sessionId”:“ses_Jd8tUyvhXO”}} | false |
OPENVIDU_CDR_PATH | 外部日志的路径,可以设置为/opt/openvidu/cdr | /opt/openvidu/cdr |
OPENVIDU_RECORDING | 是否开启录像模块。有两种录像的方式,一种是混合所有人的录像成一个视频文件;另一种是每一个人的视频单独保存。第二种方式更高效比较节约CPU。具体的录像功能参见文章 | false |
OPENVIDU_RECORDING_PATH | 录像的路径,要保证该路径有写入权限 | |
OPENVIDU_RECORDING_PUBLIC_ACCESS | 是否可以在公网上以http方式回放录像,访问方式为:https://DOMAIN_OR_PUBLIC_IP/openvidu/recordings/RECORDING_ID/RECORDING_NAME.EXTENSION | false |
OPENVIDU_RECORDING_NOTIFICATION | 哪一种用户可以收到录像通知消息all: 所有房间中的用户,有点像腾讯会议;publisher_moderator: 视频发送者或主持人;.moderator:主持人;none: 不发消息. | publisher_moderator |
OPENVIDU_RECORDING_CUSTOM_LAYOUT | 混合录制时的样式,默认是豆腐干块式的录制 | /opt/openvidu/custom-layout |
OPENVIDU_RECORDING_AUTOSTOP_TIMEOUT | 停止录制的时间,通常情况下是在房间关闭的时候停止录制,在没有用户超过n秒后会关闭房间,也会停止录像 | 120 |
OPENVIDU_RECORDING_DEBUG | 启用录制调试模式。影响回合录制。会在录制文件夹(OPENVIDU_recording_PATH )生成日志文件,记录录制过程详细信息。 | |
OPENVIDU_WEBHOOK | 是否开启OpenVidu Webhook服务,该功能可作为session 事件的回调处理,可以在监听的机器上处理sessionCreated, sessionDestroyed 和recordingStatusChanged等事件,比如冗余记录session回话时长作为计费的功能。详情参看: | false |
OPENVIDU_WEBHOOK_ENDPOINT | session 事件的回调处理函数,这是一个http路径,接收post类型的消息。消息例如:{“event”: “EVENT_TYPE”,“timestamp”: 1234567890,“prop1”: “value1”, “prop2”: “value2”,“propN”: "valueN} | |
OPENVIDU_WEBHOOK_HEADERS | 回调请求的header,例如, 配置 Basic Auth header, [“Authorization:\ Basic\ bmFtZTpwYXNz”] | [ ] |
OPENVIDU_STREAMS_VIDEO_MAX_RECV_BANDWIDTH | 从客户端到OpenVidu服务器的最大视频带宽(上行带宽), 单位kbps. 0 意味着不受限制. | 1000 |
OPENVIDU_STREAMS_VIDEO_MIN_RECV_BANDWIDTH | 从客户端到OpenVidu服务器的最小视频带宽(上行带宽), 单位kbps. 0 意味着不受限制 | 300 |
OPENVIDU_STREAMS_VIDEO_MAX_SEND_BANDWIDTH | 从OpenVidu服务器到客户端的最大视频带宽(下行带宽), 单位kbps. 0 意味着不受限制. | 1000 |
OPENVIDU_STREAMS_VIDEO_MIN_SEND_BANDWIDTH | 从OpenVidu服务器到客户端的最小视频带宽(下行带宽), 单位kbps. 0 意味着不受限制. | 300 |
OPENVIDU_STREAMS_FORCED_VIDEO_CODEC | 视频的压缩格式 [MEDIA_SERVER_PREFERRED,NONE,VP8,VP9,H264],做为CE(免费)版本,改了也没用,只支持VP8 | MEDIA_SERVER_PREFERRED |
OPENVIDU_STREAMS_ALLOW_TRANSCODING | 是否允许媒体服务器对视频流的实时转码 | false |
OPENVIDU_SESSIONS_GARBAGE_INTERVAL | 检查不活动房间的频率,默认15分钟检查一次,是否存在不活动房间 | 900 |
OPENVIDU_SESSIONS_GARBAGE_THRESHOLD | 没有连接的房间多少秒后关闭,这个值最好改小点 | 3600 |
OPENVIDU_WEBRTC_ICE_SERVERS | 或者你有自建的ICE服务器,需要配置以下值。该值会在用户连接session的时候传递到客户端,客户端就可以使用这些自定义的ice服务器。格式如[“url=turns:example.turn.com:443,staticAuthSecret=secret”];[“url=turns:example.turn.com:443,username=usertest,credential=userpass”] |
带宽的设置
VR的带宽是在基础带宽上x2
由此可见,使用webrtc是非常消耗带宽的。现在服务器都不贵,贵的是带宽。