国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 網(wǎng)站 > Nginx > 正文

Nginx-rtmp實(shí)現(xiàn)直播媒體實(shí)時(shí)流效果

2024-08-30 12:24:51
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

0. 前言

  這段時(shí)間在搭建一個(gè)IPCamera項(xiàng)目服務(wù)器。視頻點(diǎn)對(duì)點(diǎn)通話,客戶端會(huì)查看設(shè)備端的音視頻實(shí)時(shí)流。為了省流量,是通過(guò)P2P進(jìn)行穿透。但是由于NAT設(shè)備的原因和IPV4的枯竭。有些設(shè)備是無(wú)法進(jìn)行點(diǎn)對(duì)點(diǎn)傳輸實(shí)時(shí)流。所以需要進(jìn)行服務(wù)器轉(zhuǎn)發(fā)。這里為了快速實(shí)現(xiàn)原型,同時(shí)參考現(xiàn)在主流的流媒體協(xié)議。發(fā)現(xiàn)很多使用的是RTMP協(xié)議。

  下圖是總體設(shè)計(jì)圖,為了整合多平臺(tái),會(huì)自建RTMP流媒體服務(wù)器和使用云廠商SaaS的RTMP流媒體服務(wù)。但是由于有時(shí)候會(huì)傳輸一些非流媒體數(shù)據(jù),需要傳輸一些二進(jìn)制文件,所以會(huì)需要自定義媒體轉(zhuǎn)發(fā)服務(wù)。

  以下是我實(shí)際項(xiàng)目中,用到的架構(gòu)實(shí)現(xiàn)流程圖。

 1. 客戶端A無(wú)法進(jìn)行P2P穿透,請(qǐng)求業(yè)務(wù)服務(wù)器要進(jìn)行轉(zhuǎn)發(fā)。 2. 業(yè)務(wù)服務(wù)器根據(jù)客戶端A,請(qǐng)求類型,返回對(duì)應(yīng)的轉(zhuǎn)發(fā)服務(wù)器地址和對(duì)應(yīng)的房間號(hào)RoomID/Token等信息 3. 上述請(qǐng)求類型,可以是請(qǐng)求自建RTMP流媒體服務(wù),購(gòu)買(mǎi)于云廠商RTMP流媒體服務(wù)或者自定義協(xié)議媒體轉(zhuǎn)發(fā)服務(wù) 4. 客戶端A得到業(yè)務(wù)服務(wù)器返回的媒體服務(wù)器地址和RoomID/Token 5. 通過(guò)信令服務(wù)器或者M(jìn)QTT服務(wù)器,把對(duì)應(yīng)的媒體服務(wù)器地址和RoomID/Token告訴另一端客戶端B 6. 客戶端A和客戶端B同時(shí)進(jìn)入相同房間Room,客戶端A進(jìn)行推流,客戶端B進(jìn)行拉流 7. 其他媒體信息,如編解碼格式,清晰度,播放,暫停,拍照等命令,通過(guò)上述信令或MQTT服務(wù)器進(jìn)行命令控制

1. 編譯Nginx

  RTMP流媒體服務(wù)器,現(xiàn)成的開(kāi)源方案有很多,有SRS,Red5,wowoza,F(xiàn)MS等,我這里使用的是Nginx的rtmp插件實(shí)現(xiàn)實(shí)時(shí)流轉(zhuǎn)發(fā)。

  下載 nginx-rtmp-module  https://github.com/arut/nginx-rtmp-module

  重新編譯nginx

--prefix=/opt/nginx --with-stream --with-http_ssl_module --with-stream_ssl_module --with-debug --add-module=../nginx-rtmp-module

2. 配置Nginx.conf

  基本的nginx配置,這里就不進(jìn)行介紹了,需要了解的可以參考我其他博客,里面有介紹。這里只介紹rtmp段的定義。

rtmp{  server{    listen 8081;    access_log logs/rtmp_access.log;    on_connect http://127.0.0.1:8080/v1/rtmp/on_connect;    application rtmp {      live on;      notify_method get;      on_play http://127.0.0.1:8080/v1/rtmp/on_play;      on_publish http://127.0.0.1:8080/v1/rtmp/on_publish;      on_done http://127.0.0.1:8080/v1/rtmp/on_done;      on_play_done http://127.0.0.1:8080/v1/rtmp/on_play_done;      on_publish_done http://127.0.0.1:8080/v1/rtmp/on_publish_done;      on_record_done http://127.0.0.1:8080/v1/rtmp/on_record_done;      on_update http://127.0.0.1:8080/v1/rtmp/on_update;      notify_update_timeout 10s;    }    application vod {      play /opt/openresty/video;    }  }}            
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 太仓市| 博客| 遂溪县| 兖州市| 临武县| 南投县| 昌黎县| 成都市| 夏邑县| 阳城县| 理塘县| 石柱| 南充市| 望都县| 金坛市| 辉县市| 江永县| 无为县| 保康县| 沂水县| 衡东县| 安陆市| 北安市| 白朗县| 商城县| 和顺县| 洞头县| 林芝县| 新河县| 城市| 交城县| 偏关县| 石河子市| 桐城市| 江阴市| 漳平市| 银川市| 武陟县| 崇仁县| 呈贡县| 育儿|