项目介绍

Mihawk086/easy_webrtc_server 是一个托管在 GitHub 上的开源项目,主要使用 C++ 编写,目前获得 292 个 Star、110 次 Fork。

仓库全名
Mihawk086/easy_webrtc_server
Star 数
292
Fork 数
110
未关闭 Issue
2

README 摘要

easywebrtcserver 简单的webrtc流媒体服务器 联系方式:qq864733526 依赖库 sudo apt-get install -y \ libssl-dev \ libboost-all-dev \ libavutil-dev \ libavformat-dev \ libavcodec-dev muduo网络库:https://github.com/chenshuo/muduo srtp https://github.com/cisco/libsrtp 目录说明 webrtchtml webrtc视频播放的网页 rtc webrtc协议栈,包括stun,dtls,srtp net 网络传输封装 example rtpsrcexample,转发rtp例子,打开h264文件,打包成rtp通过webrtc协议转发 使用说明…

完整内容见 GitHub 原始 README 或本页 。

常见问题

easy_webrtc_server 用什么语言开发?

主要使用 C++ 编写,目前有 292 个 Star。

如何获取 easy_webrtc_server 的源码?

可以直接克隆仓库:git clone https://github.com/Mihawk086/easy_webrtc_server.git,默认分支为 master;安装与运行步骤见仓库 README。

easy_webrtc_server 最近还在维护吗?

仓库最近一次更新为 2023年5月7日,当前有 2 个未关闭 Issue;Star 数为 292,可作为社区活跃度的参考。

简要分析

热度分
531
价值分
210
活跃状态
活跃

语言占比

C
C++
CMake
Dockerfile
HTML
Starlark

贡献者

README

easy_webrtc_server

简单的webrtc流媒体服务器 联系方式:qq864733526

依赖库

目录说明

  • webrtchtml webrtc视频播放的网页
  • rtc webrtc协议栈,包括stun,dtls,srtp
  • net 网络传输封装
  • example rtp_src_example,转发rtp例子,打开h264文件,打包成rtp通过webrtc协议转发

使用说明

ubuntu20.04安装依赖库openssl1.1以上、srtp、ffmpeg、muduo,srtp需要–enable-openssl 详细安装过程参考Dockerfile

mkdir build  
cd build   
cmake ..  
make  

rtp_src_example

  • 运行程序,第一个参数为IP地址,第二个参数为端口号:
  • ./rtp_src_example 192.168.1.5 10000
  • 打开webrtchtml/index.html 输入IP地址,播放视频

原理说明

  • muduo不支持udp,本项目基于muduo的Channel类简单封装一个udp通信的类;
  • 基于muduo_http建立一个http信令服务器,交换webrtc所需要的sdp信息。
  • 网页上打开一个http连接,服务器建立一个WebRtcTransport,传输层是一个UdpSocket。
  • WebRtcTransport生成sdp信息,通过http协议传到前端。
  • sdp信息包括媒体信息如编码格式、ssrc等,stun协议需要的ice-ufrag、ice-pwd、candidate,dtls需要的fingerprint。
  • 前端通过candidate获取ip地址和端口号,通过udp协议连接到服务器的。
  • 服务器收到udp报文,先后通过类UdpSocket接收报文;StunPacket和IceServer解析stun协议,此处的Stun协议解析,只要收到stun request,验证账户密码成功,就认为连接成功。
  • stun协议交互成功后,通过DtlsTransport进行dtls握手;交换密钥后就可以初始化SrtpChannel。此处没有通过签名验证客户端的证书,所以省略了前端返回sdp的步骤。
  • 读取h264码流文件,通过ffmpeg生成rtp流,通过SrtpChannel加密,通过UdpSocket发送,前端就可以看到视频。

评论

暂无评论