Android WebRTC+SRS/ZLM视频通话(3):安装ZLMediaKit

Android WebRTC+SRS/ZLM视频通话(3):安装ZLMediaKit

来自奔三人员的焦虑日志

接着上一章内容,继续来记录ZLMediaKit的安装,这里的ZLMediaKit实际上和SRS的功能差不多,都是国内流媒体服务框架使用人数比价多,并且还在持续维护的项目,这里一起拿上来学习一下。

ChatGPT提供的安装流程


在这里插入图片描述
在这里插入图片描述

上实践

照着AI返回的教程来操作,第一步完全没有问题,但第二步就出问题了,链接返回404,所以还是回到官方文档,具体可看看这一步官网是怎么实现的(官方文档)。
在这里插入图片描述
在这里插入图片描述
官方文档虽然给的是Centos的教程,但能看出来我们只要装上zlib即可,于是我直接从GitHub上找了一个(链接),简单来说就是第二步稍做修改,zlib版本换成最新的即可,可以把AI返回的教程更改如下:

wget https://github.com/madler/zlib/releases/download/v1.2.13/zlib-1.2.13.tar.gz
tar zxvf zlib-1.2.13.tar.gz
cd zlib-1.2.13
./configure --prefix=/usr/local/zlib
make && sudo make install

接着第三步又出现问题了,克隆openssl速度太慢,可能是没有梯子原因,所以这一步我回到官方文档,直接装openssl-1.1.1k版本,可以把AI返回的教程更改如下。

wget https://www.openssl.org/source/openssl-1.1.1k.tar.gz
tar -xvzf openssl-1.1.1k.tar.gz
./config shared --prefix=/usr/local/openssl
make && sudo make install

不出意外的话第四步也出意外了,AI提供的第四步是下载编译安装libwebrtc,由于git clone太慢,我又去逛了一下官方文档,发现根本没有用到这玩意,但是多装了一个libsrtp,索性直接改成安装libsrtp,可以把AI返回的教程更改如下:

wget https://codeload.github.com/cisco/libsrtp/tar.gz/refs/tags/v2.3.0
tar -xvzf v2.3.0
cd libsrtp-2.3.0
./configure --enable-openssl --with-openssl-dir=/usr/local/openssl
make -j8 && make install

到这里环境已基本搭建完成,接下来就是编译安装ZLMediaKit,原以为可以顺利进行,但执行cmake的时候意外还是发生了。
在这里插入图片描述
这里直接参照官方文档给的步骤,具体如下:

git clone https://github.com/ZLMediaKit/ZLMediaKit.git
cd ZLMediaKit
git submodule update --init
mkdir -p build && cd build
cmake .. -DENABLE_WEBRTC=true  -DOPENSSL_ROOT_DIR=/usr/local/openssl  -DOPENSSL_LIBRARIES=/usr/local/openssl/lib
cmake --build . --target MediaServer

编译完成后显示如下:
在这里插入图片描述

运行ZLMediaKit

编译成功后就可以直接运行看效果了,

cd ZLMediaKit/release/linux/Debug
#通过-h可以了解启动参数
./MediaServer -h
#以守护进程模式启动
./MediaServer -d &

往ZLMediaKit推流

启动ZLMediaKit后,使用 FFmpeg(点击下载) 、 OBS(点击下载) 或者其他推流工具进行推流,APK推流可以用rtmp-rtsp-stream-client-java、腾讯云视立方等进行推流。

推流地址的ip换成自己的,由于我这里是内网环境,推流端需要和服务器在同一个网段下。

rtmp://192.168.1.172/live/test

运行效果

推流成功后,打开浏览器,进入https://default.zlmediakit.com/webrtc/,点击播放即可看到效果。
在这里插入图片描述
在这里插入图片描述

第三章到这里就结束了,下节继续记录Android如何推流到SRS和ZLMediaKit,占用您的垃圾时间了,实在对不住

THE END


感谢查阅
玉念聿辉:编辑
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
要使用Vue和WebRTC实现音视频通话,您可以使用WebRTC API。以下是一些步骤: 1. 首先,您需要创建一个新的Vue项目,您可以使用Vue CLI来创建。 2. 接下来,您需要使用WebRTC API来实现音视频通话。在Vue中,您可以使用Vue插件来轻松地使用WebRTC API。例如,您可以使用vue-webrtc插件。 3. 您需要在Vue组件中使用vue-webrtc插件。您可以在组件的模板中放置一个video标签,该标签将用于显示视频流。使用vue-webrtc插件,您可以轻松地与其他用户进行音视频通话。 4. 在Vue组件中,您可以使用WebRTC API来处理音视频流。您可以使用getUserMedia()函数获取本地视频流,并使用RTCPeerConnection对象将视频流发送到远程用户。使用RTCPeerConnection对象,您可以建立点对点连接,并在WebRTC流之间进行通信。 5. 最后,您需要使用Vue的事件来处理音视频通话中的各种情况,例如在连接断开时显示错误消息等。 这是一个简单的示例代码,演示如何使用Vue和WebRTC API实现音视频通话: ``` <template> <div> <video ref="localVideo" autoplay></video> <video ref="remoteVideo" autoplay></video> </div> </template> <script> import VueWebRTC from 'vue-webrtc' export default { name: 'VideoChat', components: { VueWebRTC }, data () { return { localStream: null, remoteStream: null, peerConnection: null } }, mounted () { this.startLocalVideo() }, methods: { startLocalVideo () { navigator.getUserMedia({ video: true, audio: true }, (stream) => { this.localStream = stream this.$refs.localVideo.srcObject = stream this.setupPeerConnection() }, (error) => { console.error(error) }) }, setupPeerConnection () { this.peerConnection = new RTCPeerConnection() this.peerConnection.onicecandidate = (event) => { if (event.candidate) { // send candidate to remote user } } this.peerConnection.onaddstream = (event) => { this.remoteStream = event.stream this.$refs.remoteVideo.srcObject = event.stream } this.peerConnection.addStream(this.localStream) // create offer and send to remote user } } } </script> ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

玉念聿辉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值