1. 搭建自己的流媒体服务器
在实际的开发过程中,我们是可以不用自己来搭建流媒体服务器的,访问后台的接口会返回媒体房间和 IM 房间。但现在我们自己测试就无法用公司的接口了,当然也可以去抓一些第三方的直播接口,我强烈不推荐大家这么做。最好的办法就是自己搭建一个简单的流媒体服务器。
首先登录自己的云主机,下载解压nginx和rtmp
sudo wget https://github.com/nginx/nginx/archive/release-1.17.1.tar.gz
sudo wget https://github.com/arut/nginx-rtmp-module/archive/v1.2.1.tar.gz
sudo tar -zxvf release-1.17.1.tar.gz
sudo tar -zxvf v1.2.1.tar.gz
./auto/configure --add-module=/lib/nginx/nginx-rtmp-module-1.2.1
make
make install
最后配置测试流媒体服务器
cd /usr/local/nginx/sbin/
./nginx
.\ffmpeg.exe -re -i 01.mp4 -vcodec libx264 -acodec aac -f flv rtmp://148.70.96.230/myapp/mystream
2. 集成 RTMP 推流的源码
当我们的流媒体服务器搭建好后,要用 ffmpeg 测试一下,确保流媒体服务器搭建成功后,我们再来集成 RTMP 推流的源码。
git clone git://git.ffmpeg.org/rtmpdump
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DNO_CRYPTO")
/**
* 初始化连接流媒体服务器
*/
void *initConnectFun(void *context) {
DZLivePush *pLivePush = (DZLivePush *) context;
// 创建 RTMP
pLivePush->pRtmp = RTMP_Alloc();
// 初始化 RTMP
RTMP_Init(pLivePush->pRtmp);
// 设置连接超时
pLiveP