ZLMediaKit(webrtc)在linux上(CentOS7)部署與啟動

一.ZLMediaKit(webrtc)在CentOS7部署與啟動

# 1. 卸載舊版本
yum remove git
# 2. 安裝 yum 源的 Git 版本
yum install -y git
# 3. 查看版本
git version 
# 輸出 git version 1.8.3.1配置全局環境變量
# 1. 編輯配置文件
vim /etc/profile
# 2. 在 /etc/profile 文件中末尾追加以下內容(相信你肯定已熟練掌握 Vim 使用啦)
export PATH=$PATH:/usr/local/git/bin
# 3. 回到終端, 刷新配置
source /etc/profile
# 4. 查看版本
git version 
# 輸出 git version 2.35.1

步驟1:安裝ffmpeg

wget http://www.ffmpeg.org/releases/ffmpeg-3.1.tar.gz
tar -zxvf ffmpeg-3.1.tar.gzcd ffmpeg-3.1
./configure --prefix=/usr/local/ffmpeg
make && make installvi /etc/profile
在最后PATH添加環境變量:
export PATH=$PATH:/usr/local/ffmpeg/bin
保存退出
查看是否生效
source /ect/profile  設置生效ffmpeg -version

步驟2:gcc安裝

yum remove gcc
yum -y install bzip2
yum install gcc-c++
# 如果下載慢 可以瀏覽器輸入地址下載
curl https://ftp.gnu.org/gnu/gcc/gcc-5.4.0/gcc-5.4.0.tar.bz2 -O
# j對應bz2編碼 J對應gz編碼
tar xvfj gcc-5.4.0.tar.bz2
yum install gmp-devel mpfr-devel libmpc-devel
mkdir gcc-5.4.0-build
cd gcc-5.4.0-build
../gcc-5.4.0/configure --enable-languages=c,c++ --disable-multilib
make -j$(nproc) && make install # note: nproc is the number of threads (e.g.2or 4 or 8 )

步驟3:cmake安裝

安裝gcc等必備程序包(已安裝則略過此步)上面已安裝gc
yum install -y gcc gcc-c++ make automake 安裝wget (已安裝則略過此步)
yum install -y wget獲取CMake源碼包
wget https://github.com/Kitware/CMake/releases/download/v3.20.5/cmake-3.20.5.tar.gz解壓CMake源碼包
tar -zxvf cmake-3.20.5.tar.gz進入目錄
cd cmake-3.20.5編譯安裝
./bootstrap && make -j4 && sudo make install

version `GLIBCXX_3.4.20‘ not found 解決方法

su root
cd /usr/local/lib64
# 下載最新版本的libstdc.so_.6.0.26
sudo wget http://www.vuln.cn/wp-content/uploads/2019/08/libstdc.so_.6.0.26.zip
unzip libstdc.so_.6.0.26.zip
# 將下載的最新版本拷貝到 /usr/lib64
cp libstdc++.so.6.0.26 /usr/lib64
cd  /usr/lib64
# 查看 /usr/lib64下libstdc++.so.6鏈接的版本
ls -l | grep libstdc++
libstdc++.so.6 ->libstdc++.so.6.0.19
# 刪除/usr/lib64原來的軟連接libstdc++.so.6,刪除之前先備份一份
sudo rm libstdc++.so.6
# 鏈接新的版本
sudo ln -s libstdc++.so.6.0.26 libstdc++.so.6
# 查看新版本,成功
strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX
...
GLIBCXX_3.4.18
GLIBCXX_3.4.19
GLIBCXX_3.4.20
GLIBCXX_3.4.21
GLIBCXX_3.4.22
GLIBCXX_3.4.23
GLIBCXX_3.4.24
GLIBCXX_3.4.25
GLIBCXX_3.4.26
GLIBCXX_DEBUG_MESSAGE_LENGTH

步驟4:openssl 安裝 (openssl版本要求1.1以上)

$ wget https://www.openssl.org/source/openssl-1.1.1k.tar.gz
$ tar -xvzf openssl-1.1.1k.tar.gz
$ yum install -y zlib zlib-devel perl-CPAN
$ ./config shared --openssldir=/usr/local/openssl --prefix=/usr/local/openssl
$ make && make install
$ echo "/usr/local/lib64/" >> /etc/ld.so.conf
$ echo "/usr/local/openssl/lib" >> /etc/ld.so.conf
$ ldconfig
$ ln -s /usr/local/openssl/bin/openssl  /usr/local/bin/openssl # 替換系統openssl,非必須
$ openssl version -a

步驟5:安裝 yasm

wget http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz
tar -zxvf yasm-1.3.0.tar.gz
cd yasm-1.3.0
./configure
make && make install

步驟6:libsrtp安裝

tar -xvzf libsrtp-2.3.0.tar.gz
cd libsrtp-2.3.0
./configure --enable-openssl --with-openssl-dir=/usr/local/openssl
make -j8 && make install

步驟7:下載zlm源碼

#如果沒安裝git 那么安裝
yum install -y git
#國內用戶推薦從同步鏡像網站gitee下載 
git clone --depth 1 https://gitee.com/xia-chu/ZLMediaKit
cd ZLMediaKit
#千萬不要忘記執行這句命令
git submodule update --init

編譯

$ mkdir build
$ cd build
$ cmake .. -DENABLE_WEBRTC=true  -DOPENSSL_ROOT_DIR=/usr/local/openssl  -DOPENSSL_LIBRARIES=/usr/local/openssl/lib
$ cmake --build . --target MediaServer
# 最終輸出
[ 96%] Built target test_rtcp_fci
[ 96%] Building CXX object tests/CMakeFiles/test_rtp.dir/test_rtp.cpp.o
[ 97%] Linking CXX executable ../../release/linux/Debug/test_rtp
[ 97%] Built target test_rtp
[ 97%] Building CXX object tests/CMakeFiles/test_wsServer.dir/test_wsServer.cpp.o
[ 97%] Linking CXX executable ../../release/linux/Debug/test_wsServer
[ 97%] Built target test_wsServer
[ 97%] Building CXX object tests/CMakeFiles/test_server.dir/test_server.cpp.o
[ 97%] Linking CXX executable ../../release/linux/Debug/test_server
[ 97%] Built target test_server
[ 98%] Built target jsoncpp
[ 98%] Linking CXX executable ../../release/linux/Debug/MediaServer
[100%] Built target MediaServer 

修改配置文件

(1)由于webrtc協議需要告知播放器服務器所在ip,如果該ip對播放器不可見,會導致webrtc無法聯通。
請修改配置文件中rtc.externIP為播放器可見ip,如果不設置該配置項,zlmediakit將獲取網卡ip(一般是內網ip),
那么將無法跨域nat使用webrtc。
[rtc]
#rtc播放推流、播放超時時間
timeoutSec=15
#本機對rtc客戶端的可見ip,作為服務器時一般為公網ip,置空時,會自動獲取網卡ip
externIP=
#rtc udp服務器監聽端口號,所有rtc客戶端將通過該端口傳輸stun/dtls/srtp/srtcp數據,
#該端口是多線程的,同時支持客戶端網絡切換導致的連接遷移
#需要注意的是,如果服務器在nat內,需要做端口映射時,必須確保外網映射端口跟該端口一致
port=8000
#設置remb比特率,非0時關閉twcc并開啟remb。該設置在rtc推流時有效,可以控制推流畫質
rembBitRate=1000000(2)config.ini 配置文件注意,如果用不到hook,不要開啟。開啟后,所有的推拉流都會進行鑒權。
[hook]
#是否啟用hook事件,啟用后,推拉流都將進行鑒權
enable=0

運行

cd ZLMediaKit/release/linux/Debug
#通過-h可以了解啟動參數
./MediaServer -h
#以守護進程模式啟動
./MediaServer -d &
#以自定義配置文件啟動
./MediaServer -c 配置文件具體地址
(nohup ./MediaServer -c 配置文件具體地址 &

測試webrtc:

地址為 http://192.168.41.252:8091/webrtc/ 。8091為config.ini文件中http配置的port。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/34795.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/34795.shtml
英文地址,請注明出處:http://en.pswp.cn/news/34795.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

用 Rufus 制作 Ubuntu 系統啟動盤時,選擇分區類型為MBR還是GPT?

當使用 Rufus 制作 Ubuntu 系統啟動盤時,您可以根據您的需求選擇分區類型,MBR(Master Boot Record)還是 GPT(GUID Partition Table)。 MBR 是傳統的分區表格式,適用于大多數舊版本的操作系統和舊…

2023/08/13_____JMM JAVA Memory Model JAVA內存模型

JMM JAVA Memory Model java內存模型 作用:緩存一致性協議,用于定義數據讀寫的規則(遵守,找到這個規則) JMM定義了線程2工作內存和主內存之間的抽象關系:線程之間的共享變量存儲在主內存(main …

TLS協議

目錄 什么是TLS協議? TLS的基本流程? 兩種密鑰交換算法? 基于ECDHE密鑰交換算法的TLS握手過程? 基于RSA密鑰交換算法的TLS握手過程? 基于RSA的握手和基于ECDHE的握手有什么區別? 什么是前向保密&…

tp6 v3微信退款

/*** Notes:退款* param $out_trade_no 支付時候訂單號(order表 original_bn)兩個參數選一個這個要選對* param $out_refund_no 退款訂單號* param $total 訂單金額* param $refund 退款金額* Time: 2023-08-10*/public function refundMoney($out_trade…

oracle的異常處理

oracle提供了預定義例外、非預定義例外和自定義例外三種類型。其中: l預定義例外用于處理常見的oracle錯誤; l非預定義例外用于處理預定義所不能處理的oracle錯誤; l自定義例外處理與oracle錯誤無關的其他情況。 Oracle代碼編寫過程中&am…

nginx反向代理與負載均衡

負載均衡依靠反向代理實現。nginx的代理分為七層代理與四層代理: 七層代理:七層代理的就是http請求和響應。七層代理是最常用的反向代理方式,只能配置在nginx配置文件的http模塊。而且配置方法名稱:upstream模塊,不能寫…

提升效率!Go語言開發者不可錯過的必備工具集合!

🌷🍁 博主貓頭虎 帶您 Go to Golang Language.??🍁 🦄 博客首頁——貓頭虎的博客🎐 🐳《面試題大全專欄》 文章圖文并茂🦕生動形象🦖簡單易學!歡迎大家來踩踩~&#x1…

UDP數據報網絡編程(實現簡單的回顯服務器,客戶端)

回顯服務器表示客戶端發的是啥,服務器就返回啥,主要是為了熟悉UDP數據報網絡編程的基本步驟 對于程序的所有分析都寫到了代碼上 UDP回顯服務器代碼 package UdpEcho;import java.io.IOException; import java.net.DatagramPacket; import java.net.Dat…

ClickHouse查看執行計劃(EXPLAIN語法)

1.EXPLAIN 語法示例 EXPLAIN [AST | SYNTAX | QUERY TREE | PLAN | PIPELINE | ESTIMATE | TABLE OVERRIDE] [setting value, ...] [ SELECT ... | tableFunction(...) [COLUMNS (...)] [ORDER BY ...] [PARTITION BY ...] [PRIMARY KEY] [SAMPLE BY ...] [T…

途樂證券-最準確的KDJ改良指標?

KDJ目標是技術剖析的一種重要目標之一,它是利用隨機目標(%R)發展而來的,是一種反映商場超買和超賣狀況的買賣目標。KDJ目標由快線(K線)、慢線(D線)和隨機值(J線&#xff…

RestTemplate HTTPS請求忽略SSL證書

問題描述 使用RestTemplate發送HTTPS請求的時候,出現了這樣的一個問題: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification …

MySQL多表查詢

1.創建student和score表 創建score表 2.為student表和score表增加記錄 向student表插入記錄的INSERT語句如下: 向score表插入記錄的INSERT語句如下: 1.查詢student表的所有記錄 2.查詢student表的第2條到4條記錄 3.從student表查詢所有學生的學號&#…

2023最新影視泛目錄系統,蘋果cms最新下載地址

影視泛目錄系統是指一種集成了電影、電視劇、綜藝節目、動漫等多種影視資源資源的系統,其目的是為用戶提供一個方便快捷的影視資源檢索、瀏覽、分享、評論的平臺。該系統通過對影視資源進行分類、標簽化、評分等方式,為用戶提供更加精準的檢索和推薦服務…

C#多線程學習 生產者和消費者

前面說過,每個線程都有自己的資源,但是代碼區是共享的,即每個線程都可以執行相同的函數。這可能帶來的問題就是幾個線程同時執行一個函數,導致數據的混亂,產生不可預料的結果,因此我們必須避免這種情況的發…

mousedown拖拽功能(vue3+ts)

因為項目有rem適配,使用第三方插件無法處理適配問題,所有只能自己寫拖拽功能了 拖拽一般都會想到按下,移動,放開,但是本人親測,就在div綁定一個按下事件就行了(在事件里面寫另外兩個事件&#x…

爬蟲ip池越大越好嗎?

作為一名資深的程序員,今天我要給大家分享一些關于爬蟲ip池的知識。關于ip代理池的問題,答案是肯定的,池子越大越好。下面跟我一起來盤點一下ip池大的好處吧! 1、提高穩定性 爬蟲ip池越大,意味著擁有更多可用的爬蟲ip…

「C/C++」C/C++搭建程序框架

?博客主頁何曾參靜謐的博客📌文章專欄「C/C」C/C程序設計📚全部專欄「UG/NX」NX二次開發「UG/NX」BlockUI集合「VS」Visual Studio「QT」QT5程序設計「C/C」C/C程序設計「Win」Windows程序設計「DSA」數據結構與算法「File」數據文件格式 目錄 1. 分離職…

Flume原理剖析

一、介紹 Flume是一個高可用、高可靠,分布式的海量日志采集、聚合和傳輸的系統。Flume支持在日志系統中定制各類數據發送方,用于收集數據;同時,Flume提供對數據進行簡單處理,并寫到各種數據接受方(可定制&…

使用阿里云服務器搭建Discuz論壇網站教程基于CentOS系統

阿里云百科分享使用阿里云服務器建站教程,本文是搭建Discuz論壇,Discuz!是一款通用的社區論壇軟件系統,它采用PHP和MySQL組合的基礎架構,為您提供高效的論壇解決方案。本文介紹如何在CentOS 7操作系統的ECS實例上搭建Discuz! X3.4…

Nginx 安裝與部署

文章和代碼已經歸檔至【Github倉庫:https://github.com/timerring/front-end-tutorial 】或者公眾號【AIShareLab】回復 nginx 也可獲取。 文章目錄 虛擬機安裝CentOS7.4Linux配置配置上網配置靜態ip Nginx的安裝版本區別備份克隆 安裝編譯安裝報錯解決 啟動Nginx防…