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

互動(dòng)直播之WebRTC服務(wù)器Kurento實(shí)戰(zhàn)

這篇具有很好參考價(jià)值的文章主要介紹了互動(dòng)直播之WebRTC服務(wù)器Kurento實(shí)戰(zhàn)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

1. Kurento

Kurento的主要組件是Kurento媒體服務(wù)器(KMS),負(fù)責(zé)媒體傳輸,處理,記錄和播放。KMS建立在出色的GStreamer多媒體庫之上,并提供以下功能:

  • 網(wǎng)絡(luò)流協(xié)議,包括HTTP,RTP和WebRTC。
  • 支持媒體混合和媒體路由/調(diào)度的組通信(MCU和SFU功能)。
  • 對(duì)實(shí)現(xiàn)計(jì)算機(jī)視覺和增強(qiáng)現(xiàn)實(shí)算法的過濾器的通用支持。
  • 媒體存儲(chǔ)支持WebM和MP4的寫入操作以及GStreamer支持的所有格式的播放。
  • GStreamer支持的任何編解碼器之間的自動(dòng)媒體轉(zhuǎn)碼,包括VP8,H.264,H.263,AMR,OPUS,Speex,G.711等。

kurentor,webrtc,服務(wù)器,運(yùn)維

Kurento設(shè)計(jì)原則

Kurento的設(shè)計(jì)基于以下主要原則:

  • 分開的媒體和信令平面信號(hào)和媒體是兩個(gè)獨(dú)立的平面,以便應(yīng)用程序可以分別處理多媒體處理的那些方面。
  • 媒體和應(yīng)用服務(wù)的分配?Kurento Media Server和應(yīng)用程序可以在不同的機(jī)器之間并置,升級(jí)或分布。 一個(gè)應(yīng)用程序可以調(diào)用多個(gè)Kurento Media Server的服務(wù)。相反的情況也適用,即Kurento Media Server可以滿足多個(gè)應(yīng)用程序的請(qǐng)求。
    適用于云?Kurento適合集成到云環(huán)境中以充當(dāng)PaaS(平臺(tái)即服務(wù))組件。
    媒體管道?通過媒體管道鏈接媒體元素是一種挑戰(zhàn)多媒體處理復(fù)雜性的直觀方法。
    應(yīng)用開發(fā)?開發(fā)人員無需了解內(nèi)部Kurento Media Server的復(fù)雜性:所有應(yīng)用程序都可以以開發(fā)人員喜歡的任何技術(shù)或框架部署,從客戶端到服務(wù)器。從瀏覽器到云服務(wù)。
    端到端通信能力?Kurento提供端到端通信功能,因此開發(fā)人員無需處理在客戶端設(shè)備上傳輸,編碼/解碼和呈現(xiàn)媒體的復(fù)雜性。
    完全可處理的媒體流?Kurento不僅支持交互式人際通信(例如具有對(duì)話呼叫推送/接收功能的Skype),而且還支持人機(jī)(例如通過實(shí)時(shí)流傳輸?shù)囊曨l點(diǎn)播)和人機(jī)(例如遠(yuǎn)程視頻錄制) ,多傳感器數(shù)據(jù)交換)通信。
    媒體的模塊化處理?通過媒體元素和管道實(shí)現(xiàn)的模塊化允許通過“面向圖形”的語言定義應(yīng)用程序的媒體處理功能,其中應(yīng)用程序開發(fā)人員可以通過鏈接適當(dāng)?shù)墓δ軄韯?chuàng)建所需的邏輯。
    可審核的處理?Kurento能夠?yàn)镼oS監(jiān)視,計(jì)費(fèi)和審計(jì)生成豐富而詳細(xì)的信息。
    無縫IMS集成?Kurento旨在支持無縫集成到電話運(yùn)營商的IMS基礎(chǔ)架構(gòu)中。
    透明媒體適配層?Kurento提供了透明的媒體適配層,以使在屏幕大小,功耗,傳輸速率等方面具有不同要求的不同設(shè)備之間的融合成為可能。
  • Kurento模塊體系

Kurento被設(shè)計(jì)為可插入框架,Kurento中的每個(gè)插件都稱為一個(gè)模塊,可以使用新的自定義模塊擴(kuò)展Kurento Media Server。更多信息,請(qǐng)閱讀Kurento模塊部分。

kurentor,webrtc,服務(wù)器,運(yùn)維

kurentor,webrtc,服務(wù)器,運(yùn)維

Kurento模塊分為三類:

  • 主要模塊?與Kurento Media Server開箱即用合并:
    • kms-core:Kurento Media Server的主要組件。
    • kms-elements:Kurento Media Elements的實(shí)現(xiàn)(WebRtcEndpoint,PlayerEndpoint等)
    • kms-filters:Kurento過濾器的實(shí)現(xiàn)(FaceOverlayFilter,ZBarFilter等)

內(nèi)置模塊?Kurento團(tuán)隊(duì)開發(fā)的額外模塊,用于增強(qiáng)Kurento Media Server的基本功能。到目前為止,有四個(gè)內(nèi)置模塊,分別是:

  • kms-pointerdetector:基于顏色跟蹤檢測(cè)視頻流中指針的過濾器。
  • kms-chroma:過濾器,它在頂層使用顏色范圍并使之透明,從而在后面顯示另一個(gè)圖像。
  • kms-crowddetector:用于檢測(cè)視頻流中人聚集的過濾器。
  • kms-platedetector:用于檢測(cè)視頻流中的車牌的過濾器。
  • 定制模塊?Kurento Media Server的擴(kuò)展,提供了新的媒體功能。

2. 安裝 EPEL 鏡像源

yum update
# RHEL/CentOS 7:
yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm 
# RHEL/CentOS 8:
yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm 

3. 安裝docker

# 卸載舊版本(如果安裝過舊版本的話)
yum remove docker  docker-common docker-selinux docker-engine
# 安裝需要的軟件包
yum install -y yum-utils device-mapper-persistent-data lvm2
#設(shè)置docker源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# 可使用阿里云docker源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
#安裝docker
yum install docker-ce docker-ce-cli containerd.io
#啟動(dòng) docker
systemctl start docker
#開機(jī)自啟
systemctl enable docker

#查看KMS日志
docker logs kms
#實(shí)時(shí)查看:
docker logs -f kms

4. 安裝kurento

#安裝最新版kurento
docker pull kurento/kurento-media-server:latest
#啟動(dòng)鏡像
docker run --name kms -d -p 8888:8888  kurento/kurento-media-server:latest

Kurento媒體服務(wù)器的端口(KMS)過程中默認(rèn)監(jiān)聽8888客戶端WebSocket連接。
容器運(yùn)行后,您可以使用docker logs命令獲取其日志輸出: docker logs --follow kms >"kms-$(date '+%Y%m%dT%H%M%S').log" 2>&1
要檢查KMS是否已啟動(dòng)并正在偵聽連接,請(qǐng)使用以下命令:
?

curl \
    --include \
    --header "Connection: Upgrade" \
    --header "Upgrade: websocket" \
    --header "Host: 127.0.0.1:8888" \
    --header "Origin: 127.0.0.1" \
    http://127.0.0.1:8888/kurento

您應(yīng)該得到類似于以下內(nèi)容的響應(yīng):

HTTP/1.1 500 Internal Server Error
Server: WebSocket++/0.7.0

忽略“?Server Error?”消息:這是預(yù)期的,它實(shí)際上證明KMS已啟動(dòng)并正在偵聽連接。

5. 安裝coturn

#安裝依賴
yum install -y openssl-devel libevent-devel git

#clone 源碼
git clone https://github.com/coturn/coturn.git 
cd coturn 
./configure 
make 
sudo make install

# 啟動(dòng)turnserver
nohup turnserver -L 0.0.0.0 -a -u kurento:kurento123pwd -v -f -r zhaolong.org &
#然后查看相應(yīng)的端口號(hào)3478是否存在進(jìn)程
sudo lsof -i:3478

kurentor,webrtc,服務(wù)器,運(yùn)維

這樣就說明已經(jīng)可以啟動(dòng)了,接下來我們先停掉turnserver,重新配置。 turnserver 默認(rèn)加載配置文件是etc/turnserver.conf或/usr/local/etc/turnserver.conf。

cp /usr/local/etc/turnserver.conf.default /usr/local/etc/turnserver.conf
openssl req -x509 -newkey rsa:2048 -keyout /usr/local/etc/turn_server_pkey.pem -out /usr/local/etc/turn_server_cert.pem -days 99999 -nodes

turnserver 默認(rèn)使用的是SQLite數(shù)據(jù)庫,如果是需要使用MySQL或者PostgreSQL,需要先初始化數(shù)據(jù)庫,sql位置在/usr/local/share/turnserver/schema.sql

修改的turnserver.conf內(nèi)容:
?

# 設(shè)置轉(zhuǎn)發(fā)的ip(局域網(wǎng)ip),如果不設(shè)置,他會(huì)自己選擇默認(rèn)的
relay-ip=xx.xx.xx.xx

# 轉(zhuǎn)發(fā)的外網(wǎng)ip(本機(jī)外網(wǎng)ip),用于NAT 地址映射
external-ip=xx.xx.xx.xx

# 轉(zhuǎn)發(fā)的線程數(shù),其實(shí)默認(rèn)不設(shè)置最好
relay-threads=5

#UDP 最小端口和最大端口
min-port=40000
max-port=60000

# WebRTC 的消息里會(huì)用到
fingerprint

# WebRTC 認(rèn)證需要
lt-cred-mech

#中繼服務(wù)器的監(jiān)聽器IP地址
listening-ip=0.0.0.0

#靜態(tài)賬號(hào)
user=kurento:kurento

# 統(tǒng)計(jì)狀態(tài)信息的redis db
redis-statsdb="ip=xx.xx.xxx.xx dbname=3 password=xxxx port=6379 connect_timeout=30"

# 用戶登錄域
realm=zhaolong.org

# 證書
cert=/usr/local/etc/turn_server_cert.pem

# 證書key
pkey=/usr/local/etc/turn_server_pkey.pem
 
# 輸出log 
log-file=stdout

mobility

重新啟動(dòng)turnserver

nohup turnserver >> /var/tmp/turn.log &

記得開放使用的端口:

kurentor,webrtc,服務(wù)器,運(yùn)維

可以用這個(gè)網(wǎng)址去測(cè)試stun和turn的有效性:?webrtc.github.io/samples/src…

測(cè)試stun?測(cè)試stun的時(shí)候不需要輸入賬號(hào)密碼,只需要輸入stun:

kurentor,webrtc,服務(wù)器,運(yùn)維

測(cè)試turn需要輸入turn地址,以turn:開頭,以及賬號(hào)密碼

kurentor,webrtc,服務(wù)器,運(yùn)維

5. 配置kurento服務(wù)器

進(jìn)入kurento的鏡像編輯kurento的配置文件:

#進(jìn)入鏡像
docker exec -it kms /bin/bash
#安裝vim
apt-get update
apt-get install vim
#進(jìn)入配置文件夾
cd /etc/kurento/modules/kurento/
#編輯配置文件
vim WebRtcEndpoint.conf.ini

修改stun 和turn 信息

stunServerAddress=xx.xx.xx.xx
stunServerPort=pp
turnURL=username:userpwd@xx.xx.xx.xx:pp?transport=tcp

重啟kurento容器

#查看當(dāng)前啟動(dòng)的容器
docker ps 
docker restart  {kurento容器ID}

6. kurento-hello-world

git clone https://github.com/Kurento/kurento-tutorial-java.git
cd kurento-tutorial-java/kurento-hello-world
vim src/main/resources/static/js/index.js

在函數(shù)function uiStart()里,增加一個(gè)叫iceservers的變量,格式如下:

var iceservers={
    "iceServers":[
        {
          urls:"stun:xx.xx.xx.xx:3478"
        },
        {
          urls:["turn:xx.xx.xx.xx:3478"]
            username:"xxxx",
            credential: "xxxx"
        }
    ]
  }

再修改底下的options變量:

const options = {
    localVideo: uiLocalVideo,
    remoteVideo: uiRemoteVideo,
    mediaConstraints: { audio: true, video: true },
    onicecandidate: (candidate) => sendMessage({
      id: 'ADD_ICE_CANDIDATE',
      candidate: candidate,
    }),
      configuration: iceservers //修改在這里,增加了一個(gè)configuration的key
  };

啟動(dòng)項(xiàng)目

mvn -U clean spring-boot:run -Dkms.url=ws://xx.xx.xx.xx:8888/kurento

啟動(dòng)完之后用谷歌或者火狐瀏覽器打開demo頁面https://localhost:8443/點(diǎn)擊start啟動(dòng)

kurentor,webrtc,服務(wù)器,運(yùn)維

至此,最簡(jiǎn)單的HelloWorld已經(jīng)完成。

原文?互動(dòng)直播之WebRTC服務(wù)器Kurento實(shí)戰(zhàn) - 掘金

★文末名片可以免費(fèi)領(lǐng)取音視頻開發(fā)學(xué)習(xí)資料,內(nèi)容包括(FFmpeg ,webRTC ,rtmp ,hls ,rtsp ,ffplay ,srs)以及音視頻學(xué)習(xí)路線圖等等。

見下方!↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

?文章來源地址http://www.zghlxwxcb.cn/news/detail-833426.html

到了這里,關(guān)于互動(dòng)直播之WebRTC服務(wù)器Kurento實(shí)戰(zhàn)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(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)文章

  • 用于WebRTC的coturn服務(wù)器的搭建

    用于WebRTC的coturn服務(wù)器的搭建

    前言: ? ? ? ? 自己在研究WebRTC相關(guān)內(nèi)容,在遠(yuǎn)端連接老是繞不開搭建ICE服務(wù)器,搜索了無數(shù)文章和方法,還是久久無進(jìn)展,最后頭皮嗯嘛了才成功,故想總結(jié)一下我的搭建步驟,供大家參考,避免少走彎路?。?! 1、前期準(zhǔn)備 準(zhǔn)備一個(gè)自己的公網(wǎng)服務(wù)器,可以是阿里云或其

    2024年01月24日
    瀏覽(23)
  • python實(shí)現(xiàn)/直播服務(wù)器/聊天服務(wù)器/的多種解決方案

    在Python中,您可以使用以下技術(shù)棧來實(shí)現(xiàn)直播服務(wù)器: Flask:Flask是一個(gè)輕量級(jí)的Web框架,可用于構(gòu)建直播服務(wù)器的后端。您可以使用Flask編寫API端點(diǎn)來處理直播流的控制和管理。 Django:Django是一個(gè)功能強(qiáng)大的Web框架,提供了許多內(nèi)置功能和插件,可用于構(gòu)建復(fù)雜的直播服務(wù)

    2024年02月11日
    瀏覽(25)
  • 使用Swoole協(xié)程實(shí)現(xiàn) WebRTC 信令服務(wù)器

    使用Swoole協(xié)程實(shí)現(xiàn) WebRTC 信令服務(wù)器

    一、 什么是WebRTC WebRTC技術(shù)是激烈的開放的Web戰(zhàn)爭(zhēng)中一大突破-Brendan Eich, inventor of JavaScript。 簡(jiǎn)單來說,WebRTC 是一個(gè)音視頻處理+及時(shí)通訊的開源庫。在實(shí)時(shí)通信中,音視頻的采集和處理是一個(gè)很復(fù)雜的過程。比如音視頻流的編解碼、降噪和回聲消除等。由Google發(fā)起開源,其中

    2024年03月26日
    瀏覽(24)
  • 用Owncast構(gòu)建直播服務(wù)器

    用Owncast構(gòu)建直播服務(wù)器

    什么是 Owncast ? Owncast 是一個(gè)開源的自托管解決方案,具有高度可定制性和靈活性,可以在幾分鐘內(nèi)部署在本地或云端,是獨(dú)立于任何供應(yīng)商或服務(wù)提供商的廣播視頻、課程、演示文稿、游戲、談話或任何其他內(nèi)容的解決方案。 Owncast 和老蘇在 2020 年前寫過 LiveGo 是同類應(yīng)用

    2024年02月01日
    瀏覽(20)
  • 基于ESP32搭建物聯(lián)網(wǎng)服務(wù)器十二(使用MQTT協(xié)議與ESP32互動(dòng))

    基于ESP32搭建物聯(lián)網(wǎng)服務(wù)器十二(使用MQTT協(xié)議與ESP32互動(dòng))

    在之前的文章中:基于ESP32搭建物聯(lián)網(wǎng)服務(wù)器十一(用WEB頁面控制引腳(GPIO)功能)_esp32webserver 控制io_你的幻境的博客-CSDN博客 已經(jīng)簡(jiǎn)單地介紹了MQTT協(xié)議,對(duì)比于其它網(wǎng)絡(luò)協(xié)議,MQTT協(xié)議在物聯(lián)網(wǎng)的開發(fā)中,它的特點(diǎn)使它適用于大多數(shù)受限的環(huán)境。例如網(wǎng)絡(luò)代價(jià)昂貴,帶寬低、不可

    2024年02月02日
    瀏覽(54)
  • WebRTC+Kamamilio+rtpengine+Websocket SIP服務(wù)器搭建教程

    WebRTC+Kamamilio+rtpengine+Websocket SIP服務(wù)器搭建教程

    發(fā)現(xiàn)國內(nèi)使用SIP的資料真的很少,由于公司需要使用語音視頻電話,在網(wǎng)上找了一大圈也沒找到相關(guān)案例,最后自己折騰出一個(gè)方案,故此分享出來。 開始之前不得不介紹一下這五個(gè)東西。 Kamamilio 是 OpenSER 的前身,是C語言寫的一個(gè)Sip服務(wù),支持在 在Linux/UNIX系統(tǒng)上運(yùn)行,優(yōu)

    2024年02月15日
    瀏覽(24)
  • 直播APP源碼搭建:核心的服務(wù)器系統(tǒng)

    直播APP源碼搭建:核心的服務(wù)器系統(tǒng)

    ? 在現(xiàn)代科技的推動(dòng)下,網(wǎng)絡(luò)衍生出了各種各樣的技術(shù),每個(gè)技術(shù)都被應(yīng)用到需要的APP上,直播APP源碼搭建出來的APP就是其中的一個(gè),然而,這些技術(shù)能夠成功的在直播APP源碼搭建的APP中穩(wěn)定的為用戶們提供功能與服務(wù),還要依托一個(gè)關(guān)鍵的系統(tǒng),它是直播APP源碼搭建出的平

    2024年02月09日
    瀏覽(21)
  • 世界杯直播背后的服務(wù)器(云計(jì)算體系)

    世界杯直播背后的服務(wù)器(云計(jì)算體系)

    世界杯直播過程中,各大網(wǎng)絡(luò)平臺(tái)流媒體app上最大的變化毫無疑問就是零延遲。以前球迷看球是都會(huì)發(fā)現(xiàn),網(wǎng)絡(luò)直播的球賽會(huì)比電視播出的球賽延遲40s左右。如果群里有個(gè)看電視的兄弟兄弟每個(gè)進(jìn)球他都能提前40秒預(yù)告給你,那么所有驚喜蕩然無存。 這種情況產(chǎn)生,就是因?yàn)?/p>

    2023年04月08日
    瀏覽(22)
  • 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上面看使用說明,地址是:v4_CN_Home · ossrs/srs Wiki · GitHub 然后我們通過docker去啟動(dòng)SRS,這些文檔里面都有,就不用多說了,然后我們可以用rtmp推流 用WebRTC播放,首先要支持WebRTC我們需要

    2023年04月11日
    瀏覽(32)
  • [多媒體服務(wù)器] 通過nginx搭建 rtmp/hls/dash 媒體服務(wù)器,支持點(diǎn)播和直播

    How To Set Up a Video Streaming Server using Nginx-RTMP on Ubuntu 20.04 | DigitalOcean nginx,nginx rtmp插件,OBS,ffmpeg,ubuntu,youtube-dl 安裝 nginx 和 rtmp 模塊 增加如下內(nèi)容到nginx配置文件 nginx.conf 說明: listen 1935 ?means that RTMP will be listening for connections on port 1935, which is standard. chunk_size 4096 ?means t

    2024年04月25日
    瀏覽(26)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包