Skip to content

chrisfeng01/f2f

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

F2F 点对点视频通话

F2F 是一个面向局域网和可直连网络的轻量级点对点视频通话工具。

F2F 支持 Web 端和 Android 端。输入对方的 IPv4 或 IPv6 地址后,对方会显示来电确认;同意后,音视频由 WebRTC 点对点传输。

目录结构

.
├── public/              # Web 前端页面
├── server.js            # Web 服务和跨设备信令服务
├── test/                # Node.js 测试
└── android/             # Android 原生应用

Android 应用的安装、构建和运行说明见 android/README.md

Web 端

需要 Node.js 18+ 和系统中的 openssl

npm start

首次启动会在 .cert/ 自动生成本地 HTTPS 证书。浏览器打开:

https://localhost:8787

局域网内其他设备访问:

https://<该设备的IP>:8787

由于使用自签名证书,浏览器第一次访问时会显示安全提示。网页端需要先确认继续访问,并保持页面打开以接收来电。

端口

  • 8787/TCP:Web 页面服务。
  • 8788/TCP:设备间信令,交换来电、SDP、接听和挂断消息。
  • 19302/UDP:默认 STUN 服务器。
  • 动态 UDP 端口:WebRTC 实际音视频传输。

音视频不会经过 87878788

Web 配置

可通过环境变量修改监听地址和端口:

HOST=0.0.0.0 PORT=9000 SIGNAL_PORT=9001 npm start

所有互通设备的信令端口必须一致。Android 应用默认使用信令端口 8788

仅调试页面时,可在 localhost 上使用 HTTP 模式:

HTTP=1 npm start

localhost 外,浏览器通常会在 HTTP 页面禁用摄像头和麦克风,因此实际通话请使用默认 HTTPS 模式。

网络条件

  • 输入的地址必须能从呼叫方直接访问;IPv4 和 IPv6 均支持。
  • 防火墙需要允许 TCP 8788 入站,并允许 WebRTC 动态 UDP 流量。
  • 跨公网或严格 NAT 环境可能需要 TURN 服务。当前默认配置使用公共 STUN,局域网直连不依赖 TURN。
  • 视频默认优先使用 1080p、30fps,网络或摄像头能力不足时会自动降低画质。

测试

npm test

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors