Peer Calls P2P项目搭建

原创
2022/07/15 18:25
阅读数 79

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 可以是memoryredis memory
PEERCALLS_STORE_REDIS_HOST string Redis 服务器的主机名
PEERCALLS_STORE_REDIS_PORT int Redis服务器端口
PEERCALLS_STORE_REDIS_PREFIX string Redis 键的前缀。建议:peercalls
PEERCALLS_NETWORK_TYPE string 可以是meshsfu。设置为 SFU 将使服务器成为主要对等方 mesh
PEERCALLS_NETWORK_SFU_INTERFACES CSV 用于 ICE 候选的接口列表,为空时使用所有可用的接口
PEERCALLS_NETWORK_SFU_JITTER_BUFFER bool 设置为true启用抖动缓冲器的使用 false
PEERCALLS_NETWORK_SFU_PROTOCOLS CSV 可以是udp4, udp6,tcp4tcp6 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 /metricsprometheus 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

界面

图片-1655542588425

图片-1655542619737

图片-1655542635425

图片-1655542672156

图片-1655542689764

项目地址

展开阅读全文
加载中

作者的其它热门文章

打赏
0
0 收藏
分享
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部