ZLMediaKit系列文章(共六篇):
本文为第5篇:ZLMediaKit教程(五)支持webrtc
环境
- ubuntu 18.04 64bit
- ZLMediaKit 20210924
- ffmpeg 3.4.8
webrtc是什么
WebRTC 是 Web Real Time Communication 的缩写,也被称为网络实时通信,是由 Google 和其他一些大公司推动的一个开源项目,它通过 Javascript API 来实现无插件的实时通信。WebRTC 促进了浏览器到浏览器的语音呼叫、视频聊天和文件共享应用的大力发展。目前大多数浏览器已经支持了 webRTC 。
C++音视频开发ZLMediaKit+WebRTC学习资料:点击莬费领取→音视频开发(资料文档+视频教程+面试题)(FFmpeg+WebRTC+RTMP+RTSP+HLS+RTP)
下图是 WebRTC 的架构图
- 最上层的 web app,是 Web 开发者自己开发的程序,主要利用的是 javascript 的 web api
- web api,WebRTC 标准的 API (javascript 版),由 w3c 来维护
- 媒体层,这里就笼统来讲,它是 WebRTC 的底层核心部分,包括了音频和视频数据的采集、编码、传输,除此之外,还有会话的管理、点对点的链接等,采用的 C++ 语言编写
实践
安装 openssl,ubuntu 18.04 对应的 openssl 版本是 1.1.1
sudo apt-get install libssl-dev
如果你的操作系统版本比较老的话,也可以从源码开始安装 openssl,命令如下
git clone https://github.com/openssl/openssl.git
cd openssl
./config
make
sudo make install
然后是安装 libsrtp,即 Secure Realtime Transport Protocol,方法还是熟悉的老三样 configure、make 和 make install
git clone https://github.com/cisco/libsrtp.git
cd libsrtp
./configure --enable-openssl
make
sudo make install
最后来编译 ZLMediaKit
cd ZLMediaKit
mkdir build
cd build
# 加入webrtc的编译选项
cmake .. -DENABLE_WEBRTC=on
make
在 cmake 的时候注意看看输出信息,确保 webrtc 功能已开启
编译成功后,生成的可执行文件在 release/linux/MediaServer
接下来,就可以启动服务了
sudo ./MediaServer -d
然后,使用 ffmpeg 推送一个本地视频文件到服务器
ffmpeg -re -i test.mp4 -vcodec h264 -acodec aac -f flv rtmp://127.0.0.1/live/test
完成后,我们打开 chrome 浏览器,输入 http://192.168.1.140,这个 ip 地址是 MediaServer 服务器的地址
C++音视频开发ZLMediaKit+WebRTC学习资料:点击莬费领取→音视频开发(资料文档+视频教程+面试题)(FFmpeg+WebRTC+RTMP+RTSP+HLS+RTP)
选择 6 webrtc,这里我们没有证书,所以忽略掉 https 的警告
设置下分辨率,点击开始,上方的播放器就开始播放推送的视频了
如果你对音视频开发感兴趣,或者对本文的一些阐述有自己的看法,可以在下方的留言框,一起探讨。
本文暂时没有评论,来添加一个吧(●'◡'●)