ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

ZLMediaKit webRTC编译与测试

2021-11-07 20:00:57  阅读:1211  来源: 互联网

标签:ZLMediaKit https openssl webRTC 编译 版本 浏览器 webrtc


一、背景

NB的ZLMediaKit开始支持了webrtc,今天有点时间,好奇测试之。
二、代码下载

拉最新的master代码 已经支持webrtc
git pull origin master
编译时候cmake加上
-DENABLE_WEBRTC=on
或者直接加到CMakeLists.txt
option(ENABLE_WEBRTC "Enable WebRTC" true)
三、编译
1. 编译环境

OS版本: Ubuntu 16.04
openssl版本: OpenSSL 1.1.1l-dev

window版本请移步《ZLMediaKit在Windows下启用WebRtc编译(64位)》
2. openssl版本检查

openssl verison
看一下自己系统的版本
我的是openssl-1.0.2g比较老,编译的时候会遇到问题,走了一些弯路,建议大家先升级openssl版本。

    编译openssl
    git clone https://github.com/openssl/openssl.git
    或者搞一个稳定版本
    wget https://github.com/openssl/openssl/archive/refs/heads/OpenSSL_1_1_1-stable.zip
    ./config;make -j4; sudo make install
    指定快捷方式
    因为默认安装到/usr/local目录,或者config的时候指定/usr/lib,要不就把库链接过去

sudo ln -s /usr/local/lib/libssl.so.1.1 /usr/lib/libssl.so.1.1
sudo ln -s /usr/local/lib/libcrypto.so.1.1 /usr/lib/libcrypto.so.1.1

    1
    2

3.编译libsrtp

git clone git@github.com:cisco/libsrtp.git

./configure --enable-openssl
make -j4;sudo make install

    1
    2

4.编译ZLMediaKit

可以用根目录脚本
build_for_linux.sh
也可以自己cmake
mkdir build;cd build; cmake -DENABLE_WEBRTC=on ../
然后就ok了
错误一 libsrtp

    srtp2/srtp.h: 没有那个文件或目录
    这是因为缺少libsrtp2这个库
    so…
    sudo apt-get install libsrtp0-dev
    老版本行不通,老老实实编源码
    这里插一句,因为openssl版本问题导致二次编译libsrtp,所以我们先搞定openssl

    未定义标识符 HMAC_CTX_init

    MediaServer crash
    libsrtp 没有–enable-openssl

错误二: openssl 版本问题

    在这里插入图片描述
    SSLUtil.cpp:315:33: error: invalid conversion from ‘const rsa_st*’ to ‘RSA* {aka rsa_st*}’ [-fpermissive]
    以上都是openssl版本问题
    ln: 无法创建符号链接’/usr/lib64/libssl.so.1.1’: 没有那个文件或目录
    创建软连接解决

四、rtmp推流webrtcp拉流测试

这里采用window做测试,双向测试采用linux测试,雨露均沾,其实都是一样的!

window10环境
服务器IP:192.168.10.99

    拷贝前端测试文件

window的编译生成release目录没有webrtc测试前端文件,手动拷贝之!
将ZLMediaKit根目录下的www文件夹,拷贝到MediaServer.exe同一级目录(ZLMediaKit\release\windows64\Debug\Debug我的在这里)

    运行服务器

cmd打开服务器目录,运行MediaServer.exe

    OBS推流测试

没有的同学自己下载一个。设置如下,点击开始推流,将桌面rtmp推送到流媒体服务器
在这里插入图片描述

    Chrom拉流播放

浏览器访问http://192.168.10.99/,点击左边开始
在这里插入图片描述

测试服务器编译文件伸手电梯直达
五、webrtc双向推拉流测试
运行服务器

Ubuntu 环境
服务器IP:192.168.10.9

cd /release/linux/Debug
sudo ./MediaServer -s ./ssl.pem

    1
    2

推流

最新版本代码已经不分push和play的html文件,记得分辨率选VGA

设备:笔记本
局域网 Windows
浏览器:Firefox 最新版本
浏览器访问:
https://192.168.10.9/webrtc/index_push.html
推流地址:
https://192.168.10.9/index/api/webrtc?app=live&stream=test&type=push

搞定
播放

设备:荣耀平板
浏览器:华为浏览器
浏览器访问:
https://192.168.10.9/webrtc/index_play.html
拉流地址:
https://192.168.10.9/index/api/webrtc?app=live&stream=test&type=play
效果

在这里插入图片描述
错误记录

    mediastream-factory.js:222 Uncaught TypeError: Cannot read property 'getUserMedia' of undefined
    DOMException: Requested device not found

找不到摄像头,换笔记本!!!

谷歌浏览器记得开权限:
chrome://flags/#unsafely-treat-insecure-origin-as-secure
参考:
chrome浏览器不能录音:Uncaught TypeError: Cannot read property ‘getUserMedia‘ of undefined解决方法

Uncaught TypeError: navigator.mediaDevices is undefined
https才有权限请求摄像头
参考

    [技术咨询]webrtc编译libsrtp2

    openssl 版本_OpenSSL升级版本到最新(1.1.1)

    chrome浏览器不能录音:Uncaught TypeError: Cannot read property ‘getUserMedia‘ of undefined解决方法
————————————————
版权声明:本文为CSDN博主「一只海星」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/haysonzeng/article/details/116754065

标签:ZLMediaKit,https,openssl,webRTC,编译,版本,浏览器,webrtc
来源: https://blog.csdn.net/dkqiang/article/details/121196066

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有