国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

基于ZLMediaKit的webrtc實(shí)時(shí)視頻傳輸demo搭建

這篇具有很好參考價(jià)值的文章主要介紹了基于ZLMediaKit的webrtc實(shí)時(shí)視頻傳輸demo搭建。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

環(huán)境

ubuntu 20.04
?
gcc version 9.4.0
?
cmake version 3.16.3

部署ZLMediaKit流媒體服務(wù)器

安裝openssl

首先可以檢查一下自己的openssl的版本如果是1.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   #這一步不是必要
cd openssl-1.1.1k/
./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 # 替換系統(tǒng)openssl,非必須
openssl version -a
安裝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

其中初始化配置的時(shí)候可能會(huì)報(bào)錯(cuò),如果報(bào)錯(cuò)換成./configure --enable-openssl即可

對(duì)于一些比較新的編譯環(huán)境(如GCC 10+),編譯 libsrtp-2.3.0 可能會(huì)存在問(wèn)題,可以考慮切換到 2.5.0 版本,即

wget https://github.com/cisco/libsrtp/archive/refs/tags/v2.5.0.tar.gz
tar -xvzf libsrtp-2.5.0.tar.gz
cd libsrtp-2.5.0

另外可以安裝ffmpeg進(jìn)行推流測(cè)試

sudo apt-get install ffmpeg
編譯ZLMediaKit
#國(guó)內(nèi)用戶推薦從同步鏡像網(wǎng)站gitee下載 
git clone --depth 1 https://gitee.com/xia-chu/ZLMediaKit
cd ZLMediaKit
#千萬(wàn)不要忘記執(zhí)行這句命令
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

使用上面命令之后就不用make && make install了,會(huì)在release/debug下生成可執(zhí)行文件

部署完成

zlm rtc demo,c++,webrtc,go

官方文檔:

zlm啟用webrtc編譯指南 · ZLMediaKit/ZLMediaKit Wiki (github.com)

按照官方文檔走基本不會(huì)出什么問(wèn)題

修改配置文件

webrtc啟動(dòng)后,還需要修改配置文件,需要在填寫rtc.externip,webrtc協(xié)議需要告知播放器服務(wù)器的ip,不過(guò)如果是內(nèi)網(wǎng)環(huán)境的話可以不用修改此配置,因?yàn)槿绻麨榭?,?huì)自動(dòng)讀取內(nèi)網(wǎng)的網(wǎng)卡信息,這樣做的話將無(wú)法實(shí)現(xiàn)跨域NAT使用

[rtc]
#rtc播放推流、播放超時(shí)時(shí)間
timeoutSec=15
#本機(jī)對(duì)rtc客戶端的可見ip,作為服務(wù)器時(shí)一般為公網(wǎng)ip,置空時(shí),會(huì)自動(dòng)獲取網(wǎng)卡ip
externIP=
#rtc udp服務(wù)器監(jiān)聽端口號(hào),所有rtc客戶端將通過(guò)該端口傳輸stun/dtls/srtp/srtcp數(shù)據(jù),
#該端口是多線程的,同時(shí)支持客戶端網(wǎng)絡(luò)切換導(dǎo)致的連接遷移
#需要注意的是,如果服務(wù)器在nat內(nèi),需要做端口映射時(shí),必須確保外網(wǎng)映射端口跟該端口一致
port=8000
#設(shè)置remb比特率,非0時(shí)關(guān)閉twcc并開啟remb。該設(shè)置在rtc推流時(shí)有效,可以控制推流畫質(zhì)
rembBitRate=1000000

至此基于ZLMediaKit的webrtc流媒體服務(wù)器搭建完成

測(cè)試

在流量器訪問(wèn)服務(wù)器的ip就可以訪問(wèn)流媒體服務(wù)器,這里直接使用https,因?yàn)閔ttp無(wú)法調(diào)用攝像頭

開兩個(gè)不同的窗口,一個(gè)選擇push推流,一個(gè)選擇play拉流,校園網(wǎng)環(huán)境下延遲在120ms左右?

zlm rtc demo,c++,webrtc,go

通過(guò)域名訪問(wèn)

ZLMediaKit自帶有效證書,在debug目錄下的default.pem,這個(gè)證書默認(rèn)是解析到127.0.0.1的,這里我嘗試修改解析到內(nèi)網(wǎng)的服務(wù)器ip上

如果是linux機(jī)器則可以通過(guò)修改/etc/hosts文件修改地址解析

127.0.0.1 localhost
127.0.1.1 connect_class
?
# The following lines are desirable for IPv6 capable hosts
::1 ? ? ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
10.14.2.7 default.zlmediakit.com

如果是windows機(jī)器則在C:\Windows\System32\drivers\etc\hosts目錄下,修改hosts文件需要管理員權(quán)限,可以以管理員身份打開記事本修改

# Copyright (c) 1993-2009 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
#
# This file contains the mappings of IP addresses to host names. Each
# entry should be kept on an individual line. The IP address should
# be placed in the first column followed by the corresponding host name.
# The IP address and the host name should be separated by at least one
# space.
#
# Additionally, comments (such as these) may be inserted on individual
# lines or following the machine name denoted by a '#' symbol.
#
# For example:
#
# ? ?  102.54.94.97 ? ? rhino.acme.com ? ? ? ?  # source server
# ? ? ? 38.25.63.10 ? ? x.acme.com ? ? ? ? ? ?  # x client host
?
# localhost name resolution is handled within DNS itself.
#   127.0.0.1 ? ? ? localhost
#   ::1 ? ? ? ? ? ? localhost
10.14.2.7 default.zlmediakit.com

修改后可以ping一下測(cè)試

zlm rtc demo,c++,webrtc,go

接下來(lái)重啟流媒體服務(wù),使用自帶證書啟動(dòng)./MediaServer -s default.pem

在瀏覽器上輸入https://default.zlmediakit.com/即可訪問(wèn)

zlm rtc demo,c++,webrtc,go文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-780830.html

到了這里,關(guān)于基于ZLMediaKit的webrtc實(shí)時(shí)視頻傳輸demo搭建的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 基于Django websocket實(shí)現(xiàn)視頻畫面的實(shí)時(shí)傳輸案例

    ??本案例是基于B/S架構(gòu)的視頻監(jiān)控畫面的實(shí)時(shí)傳輸,使用django作為服務(wù)端的開發(fā)框架。 Django Channels 是一個(gè)用于在 Django 框架中實(shí)現(xiàn)實(shí)時(shí)、異步通信的擴(kuò)展庫(kù)。傳統(tǒng)的 Django 是基于請(qǐng)求-響應(yīng)模式的,每個(gè)請(qǐng)求都會(huì)經(jīng)過(guò) Django 的視圖函數(shù)進(jìn)行處理并返回響應(yīng)。而 Channels 提供了基

    2024年02月04日
    瀏覽(22)
  • 基于OpenCv+Django的網(wǎng)絡(luò)實(shí)時(shí)視頻流傳輸(前后端分離)

    基于OpenCv+Django的網(wǎng)絡(luò)實(shí)時(shí)視頻流傳輸(前后端分離)

    秋風(fēng)閣——北溪入江流:https://focus-wind.com/ 秋風(fēng)閣——基于OpenCv+Django的網(wǎng)絡(luò)實(shí)時(shí)視頻流傳輸(前后端分離) 使用OpenCv捕獲攝像機(jī)畫面后,我們有時(shí)候需要將畫面顯示在界面上。本博客基于Django的前后端分離模式,將視頻流從后端讀取,傳送給前端顯示。 在使用Django進(jìn)行視頻

    2024年02月08日
    瀏覽(93)
  • webrtc終極版(二)搭建自己的iceserver服務(wù),并用到RTCMultiConnection的demo中

    webrtc終極版(二)搭建自己的iceserver服務(wù),并用到RTCMultiConnection的demo中

    第一篇文章,寫了如何再5分鐘之內(nèi)搭建一個(gè)webrtc服務(wù),并運(yùn)行起來(lái),這當(dāng)然不夠,turn-server以及stun-server都掌握在別人手中,實(shí)際上,連socket服務(wù),也在別人手中,正常情況下,RTCMultiConnection官方不會(huì)停止服務(wù)的,但是咱們也不敢保證不是,所以本篇文章,我們就用最詳細(xì)的

    2024年02月21日
    瀏覽(16)
  • window下搭建WVP+ZLMediaKit服務(wù)實(shí)現(xiàn)獲取GB28181視頻(一、WVP服務(wù)搭建)

    window下搭建WVP+ZLMediaKit服務(wù)實(shí)現(xiàn)獲取GB28181視頻(一、WVP服務(wù)搭建)

    前段時(shí)間因?yàn)楣疽螅蛻粜枰细鞣N攝像機(jī),提出需要使用國(guó)標(biāo)GB28181協(xié)議,于是查了各種資料和視頻,總算將服務(wù)搭建下來(lái)了。后續(xù)可能還需要整一個(gè)linux版的。趁著現(xiàn)在還記得,先將整合的流程記錄一下 官方文檔:WVP-PRO文檔 在官方文檔有詳細(xì)的說(shuō)明,但是也有一些

    2024年01月20日
    瀏覽(23)
  • window下搭建WVP+ZLMediaKit服務(wù)實(shí)現(xiàn)獲取GB28181視頻(三、WVP+ZLMediaKit服務(wù)啟動(dòng),并連接攝像頭)

    window下搭建WVP+ZLMediaKit服務(wù)實(shí)現(xiàn)獲取GB28181視頻(三、WVP+ZLMediaKit服務(wù)啟動(dòng),并連接攝像頭)

    前面兩篇文章分別介紹了WVP服務(wù)和ZLMediaKit服務(wù)的搭建,現(xiàn)在介紹這兩個(gè)服務(wù)如何達(dá)到通訊效果 配置通訊的mediaServerId和media.id 1、在ZLMediaKit服務(wù)第一次啟動(dòng)后,會(huì)出現(xiàn)config.ini文件,這個(gè)文件在服務(wù)沒(méi)有啟動(dòng)之前是不存在的,打開這個(gè)配置文件,在里面找到mediaServerId ?2、打開

    2024年02月08日
    瀏覽(26)
  • VUE+webrtc-streamer 實(shí)現(xiàn)實(shí)時(shí)視頻播放(監(jiān)控設(shè)備-rtsp)

    VUE+webrtc-streamer 實(shí)現(xiàn)實(shí)時(shí)視頻播放(監(jiān)控設(shè)備-rtsp)

    下圖則啟動(dòng)成功,此時(shí)在瀏覽器訪問(wèn)127.0.0.1:8000可以看到本機(jī)監(jiān)控畫面 地址:https://github.com/mpromonet/webrtc-streamer/releases 注意:第三步在本機(jī)啟動(dòng)服務(wù)所以 new WebRtcStreamer(id,serverUrl)中URL傳入127.0.0.1端口可 文章參考鏈接:https://blog.csdn.net/liona_koukou/article/details/126605137

    2024年02月02日
    瀏覽(36)
  • VUE+webrtc-streamer實(shí)現(xiàn)實(shí)時(shí)視頻播放(監(jiān)控設(shè)備-rtsp)

    VUE+webrtc-streamer實(shí)現(xiàn)實(shí)時(shí)視頻播放(監(jiān)控設(shè)備-rtsp)

    首先說(shuō)明目前我只完成了本地測(cè)試,因還沒(méi)確定技術(shù)選型所以暫無(wú)項(xiàng)目應(yīng)用,先做一下儲(chǔ)備,后續(xù)項(xiàng)目應(yīng)用的話這篇文章會(huì)持續(xù)更新。 監(jiān)控設(shè)備播放效果如下:基于公司環(huán)境測(cè)試了大華和海康的監(jiān)控設(shè)備(H264編碼)可以正確播放 1、下載webrtc-streamer,本機(jī)測(cè)試我下載的最新

    2024年02月01日
    瀏覽(27)
  • docker部署SRS實(shí)時(shí)視頻服務(wù)器,rtmp推流,用WebRTC播放

    docker部署SRS實(shí)時(shí)視頻服務(wù)器,rtmp推流,用WebRTC播放

    SRS是一個(gè)簡(jiǎn)單高效的實(shí)時(shí)視頻服務(wù)器,支持RTMP/WebRTC/HLS/HTTP-FLV/SRT/GB28181 大家可以先去gitub上面看使用說(shuō)明,地址是:v4_CN_Home · ossrs/srs Wiki · GitHub 然后我們通過(guò)docker去啟動(dòng)SRS,這些文檔里面都有,就不用多說(shuō)了,然后我們可以用rtmp推流 用WebRTC播放,首先要支持WebRTC我們需要

    2023年04月11日
    瀏覽(32)
  • metaRTC+ZLMediaKit實(shí)現(xiàn)webrtc的推拉流

    metaRTC+ZLMediaKit實(shí)現(xiàn)webrtc的推拉流

    ZLMediaKit是一個(gè)基于C++11的高性能運(yùn)營(yíng)級(jí)流媒體服務(wù)框架,是一個(gè)支持webrtc SFU的優(yōu)秀的流媒體服務(wù)器系統(tǒng)。 metaRTC新版本支持whip/whep協(xié)議,支持whip/whep協(xié)議的ZLMediaKit推拉流。 ZLMediaKit新版本支持whip和whep協(xié)議,支持兩種API。 metaRTC封裝了HTTP API,只需將參數(shù)mediaServer設(shè)置為zlm即可

    2024年02月07日
    瀏覽(26)
  • WebRTC簡(jiǎn)介及實(shí)戰(zhàn)應(yīng)用 — 從0到1實(shí)現(xiàn)實(shí)時(shí)音視頻聊天等功能

    WebRTC簡(jiǎn)介及實(shí)戰(zhàn)應(yīng)用 — 從0到1實(shí)現(xiàn)實(shí)時(shí)音視頻聊天等功能

    WebRTC 是由一家名為 Gobal IP Solutions,簡(jiǎn)稱 GIPS 的瑞典公司開發(fā)的。Google 在 2011 年收購(gòu)了 GIPS,并將其源代碼開源。然后又與 IETF 和 W3C 的相關(guān)標(biāo)準(zhǔn)機(jī)構(gòu)合作,以確保行業(yè)達(dá)成共識(shí)。其中: Web Real-Time Communications (WEBRTC) W3C 組織:定義瀏覽器 API。 Real-Time Communication in Web-browsers (

    2024年03月19日
    瀏覽(31)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包