Peer Calls P2P项目搭建
基于Peer Calls项目汉化 源码
P2P通话
WebRTC 点对点呼叫所有人。 选择性转发单元 (SFU) 的可选实现可用于使对等呼叫消耗更少的用户视频上传带宽。
源码构建
git clone https://github.com/peer-calls/peer-calls.git
cd peer-calls
npm install
# for production
npm run build
npm run build:go:linux
# for development
npm run start
环境变量
变量 | 类型 | 描述 | 默认 |
---|---|---|---|
PEERCALLS_LOG |
CSV | 启用或禁用某些模块的日志记录 | -sdp,-ws,-nack,-rtp,-rtcp,-pion:*:trace,-pion:*:debug,-pion:*:info,* |
PEERCALLS_FS |
string | 设置为非空值时,使用路径查找资源文件 | |
PEERCALLS_BASE_URL |
string | 应用程序的基本 URL | |
PEERCALLS_BIND_HOST |
string | 收听的IP | 0.0.0.0 |
PEERCALLS_BIND_PORT |
int | 监听端口 | 3000 |
PEERCALLS_TLS_CERT |
string | TLS PEM 证书的路径。如果设置将启用 TLS | |
PEERCALLS_TLS_KEY |
string | TLS PEM 证书密钥的路径。如果设置将启用 TLS | |
PEERCALLS_STORE_TYPE |
string | 可以是memory 或redis |
memory |
PEERCALLS_STORE_REDIS_HOST |
string | Redis 服务器的主机名 | |
PEERCALLS_STORE_REDIS_PORT |
int | Redis服务器端口 | |
PEERCALLS_STORE_REDIS_PREFIX |
string | Redis 键的前缀。建议:peercalls |
|
PEERCALLS_NETWORK_TYPE |
string | 可以是mesh 或sfu 。设置为 SFU 将使服务器成为主要对等方 |
mesh |
PEERCALLS_NETWORK_SFU_INTERFACES |
CSV | 用于 ICE 候选的接口列表,为空时使用所有可用的接口 | |
PEERCALLS_NETWORK_SFU_JITTER_BUFFER |
bool | 设置为true 启用抖动缓冲器的使用 |
false |
PEERCALLS_NETWORK_SFU_PROTOCOLS |
CSV | 可以是udp4 , udp6 ,tcp4 或tcp6 |
udp4,udp6 |
PEERCALLS_NETWORK_SFU_TCP_BIND_ADDR |
string | ICE TCP 绑定地址。默认情况下侦听所有接口。 | |
PEERCALLS_NETWORK_SFU_TCP_LISTEN_PORT |
int | ICE TCP 监听端口。默认情况下使用随机端口。 | 0 |
PEERCALLS_NETWORK_SFU_TRANSPORT_LISTEN_ADDR |
string | 设置后,将侦听外部 RTP、数据和元数据 UDP 流 | |
PEERCALLS_NETWORK_SFU_TRANSPORT_NODES |
CSV | 设置后,会将媒体和数据传输到指定host:port 的(s)。 |
|
PEERCALLS_NETWORK_SFU_UDP_PORT_MIN |
int | 定义 ICE UDP 范围开始用于 UDP 主机候选。 | 0 |
PEERCALLS_NETWORK_SFU_UDP_PORT_MAX |
int | 定义 ICE UDP 范围结束以供 UDP 主机候选者使用。 | 0 |
PEERCALLS_ICE_SERVER_URLS |
CSV | ICE 服务器 URL 列表 | |
PEERCALLS_ICE_SERVER_AUTH_TYPE |
string | 可以为空或secret 用于 coturnstatic-auth-secret 配置选项。 |
|
PEERCALLS_ICE_SERVER_SECRET |
string | coturn的秘密 | |
PEERCALLS_ICE_SERVER_USERNAME |
string | coturn 的用户名 | |
PEERCALLS_PROMETHEUS_ACCESS_TOKEN |
string | /metrics prometheus URL的访问令牌 |
|
PEERCALLS_FRONTEND_ENCODED_INSERTABLE_STREAMS |
bool | 启用可插入流 | false |
使用的默认 ICE 服务器是:
stun:stun.l.google.com:19302
stun:global.stun.twilio.com:3478?transport=udp
通过环境变量只能定义一个 ICE 服务器。要定义更多,请使用 YAML 配置文件。要加载配置文件,请使用-c /path/to/config.yml
命令行参数。
配置示例:
base_url: ''
bind_host: '0.0.0.0'
bind_port: 3005
ice_servers:
- urls:
- 'stun:stun.l.google.com:19302'
- urls:
- 'stun:global.stun.twilio.com:3478?transport=udp'
#- urls:
# - 'turn:coturn.mydomain.com'
# auth_type: secret
# auth_secret:
# username: "peercalls"
# secret: "some-static-secret"
# tls:
# cert: test.pem
# key: test.key
store:
type: memory
# type: redis
# redis:
# host: localhost
# port: 6379
# prefix: peercalls
network:
type: mesh
# type: sfu
# sfu:
# interfaces:
# - eth0
prometheus:
access_token: "mytoken"
frontend:
encodedInsertableStreams: false