# plain-peer-connection
**Repository Path**: qiuguolu/plain-peer-connection
## Basic Information
- **Project Name**: plain-peer-connection
- **Description**: plain-peer-connection
- **Primary Language**: Unknown
- **License**: BSD-3-Clause
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 1
- **Forks**: 0
- **Created**: 2021-10-02
- **Last Updated**: 2022-09-07
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 简介
基于WebRTC源码实现了简单的推拉流客户端,去掉了PeerConnection中的SDP、ICE、DTLS部分的逻辑,其余逻辑均保留,例如WebRTC中编解码、GCC、JitterBuffer,FEC,NetEQ等。
直接调用webrtc::VideoSendStream实现了推流客户端,通过webrtc::VideoReceiveStream实现了拉流客户端。
这两个客户端稍加改造就可以向mediasoup中的PlainTransport推拉流。
# 搭建
**系统**:ubuntu18.04(目前代码只支持linux系统)
**WebRTC版本**:`m79`
##### 安装sdl
```shell
apt-get install libsdl2-dev
```
##### 安装spdlog日志
```shell
git clone git@gitee.com:qiuguolu/spdlog-self.git
cd spdlog-self
mkdir build && cd ./build && cmake ../
make && make install
```
不用使用原版的spdlog,这里的spdlog稍微做了一点修改。
##### 设置webrtc库
可以在CMakeList.txt中直接修改添加webrtc库和头文件。
也可以通过下面的方式下载我编译好的webrtc(编译的平台是ubuntu18.04 64位)。
```shell
git clone https://gitee.com/qiuguolu/libwebrtc-m79.git
```
将下载好的文件放在工程的`webrtc-m79`目录下就好了。
##### 构建
```shell
mkdir build && cd ./build && cmake ../
make
```
分别进入push_client和pull_client目录,执行上面命令就编译好了。
##### 运行
```shell
#推流
./push_client 127.0.0.1 9000
#拉流
./pull_client 9000
```

推拉流效果如上图
有问题可以通过2645857705@qq.com联系我。
# TODO
* 使用webrtc封装的socket替换DirectTransport中的socket
* 添加ulpfec、flex fec
* 添加音频