# 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 ``` ![1](./picture.png) 推拉流效果如上图 有问题可以通过2645857705@qq.com联系我。 # TODO * 使用webrtc封装的socket替换DirectTransport中的socket * 添加ulpfec、flex fec * 添加音频