小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

開源SRS搭建GB28181流媒體服務(wù),支持WebRtc

 邸彥強(qiáng) 2022-08-13 發(fā)布于河北

所謂的國標(biāo)GB28181協(xié)議可以簡(jiǎn)單理解為SIP+RTP。但是支持GB28181協(xié)議,如果把信令和媒體收在SRS里面實(shí)現(xiàn),違反了SRS的簡(jiǎn)單原則,其次信令這塊對(duì)接起來非常麻煩,雖然是國家標(biāo)準(zhǔn),但是過個(gè)廠家實(shí)現(xiàn)的不標(biāo)準(zhǔn),有很多細(xì)小問題需要接入方來兼容,其次這塊還有大量業(yè)務(wù)在里面,所以SRS不應(yīng)該去完整實(shí)現(xiàn)GB協(xié)議信令部分,只需要實(shí)現(xiàn)媒體部分即可,換句話說只要能攝像頭接進(jìn)來,能把媒體流從RTP轉(zhuǎn)分發(fā)為FLV、WebRtc、RTMP、HLS等即可。信令部分只需要提供基本的測(cè)試接入部分即可,目的只是為了SRS能跑起來,信令部分還是需要使用SRS的朋友們自己實(shí)現(xiàn),媒體部分會(huì)提供RestFul接口供信令調(diào)用。

實(shí)現(xiàn)方案如下

  1. 自建信令服務(wù)器

  2. 使用開源srs流媒體做轉(zhuǎn)碼服務(wù)

文章圖片1

實(shí)現(xiàn)方案架構(gòu)圖

一、自建信令服務(wù)器

有大量代碼,后續(xù)其他文章發(fā)出。

二、開源srs流媒體轉(zhuǎn)碼服務(wù)搭建

下載并解壓srs-gb28181(
https://github.com/ossrs/srs-gb28181)

#進(jìn)入目錄cd srs/trunk#配置開啟gb28181,默認(rèn)是關(guān)閉的sudo ./configure --gb28181=on#編譯安裝sudo make

修改配置文件

sudo vim ./conf/push.gb28181.conf
# push gb28181 stream to SRS.listen 1935;max_connections 1000;# 注意:修改off為on,后臺(tái)啟動(dòng)daemon on;# 注意:注釋此處 #srs_log_tank console;http_api { enabled on; listen 1985;}http_server { enabled on; listen 8080;}stats { network 0;}stream_caster { enabled on; caster gb28181; # 轉(zhuǎn)發(fā)流到rtmp服務(wù)器地址與端口 # TODO: https://github.com/ossrs/srs/pull/1679/files#r400875104 # [stream] is VideoChannelCodecID(視頻通道編碼ID) for sip # 自動(dòng)創(chuàng)建的道通[stream] 是'chid[ssrc]’ [ssrc]是rtp的ssrc # [ssrc] rtp中的ssrc output rtmp://127.0.0.1:1935/live/[stream]; # 接收設(shè)備端rtp流的多路復(fù)用端口 listen 9000; # 多路復(fù)用端口類型,on為tcp,off為udp # 默認(rèn):on # 注意:修改此處為off,使用udp協(xié)議 tcp_enable off; # rtp接收監(jiān)聽端口范圍,最小值 rtp_port_min 58200; # rtp接收監(jiān)聽端口范圍,最大值 rtp_port_max 58300; # 是否等待關(guān)鍵幀之后,再轉(zhuǎn)發(fā), # off:不需等待,直接轉(zhuǎn)發(fā) # on:等第一個(gè)關(guān)鍵幀后,再轉(zhuǎn)發(fā) wait_keyframe on; # rtp包空閑等待時(shí)間,如果指定時(shí)間沒有收到任何包 # rtp監(jiān)聽連接自動(dòng)停止,發(fā)送BYE命令 rtp_idle_timeout 30; # 是否轉(zhuǎn)發(fā)音頻流 # 目前只支持aac格式,所以需要設(shè)備支持aac格式 # on:轉(zhuǎn)發(fā)音頻 # off:不轉(zhuǎn)發(fā)音頻,只有視頻 # *注意*!!!:flv 只支持11025 22050 44100 三種 # 如果設(shè)備端沒有三種中任何一個(gè),轉(zhuǎn)發(fā)時(shí)為自動(dòng)選擇一種格式 # 同時(shí)也會(huì)將adts的頭封裝在flv aac raw數(shù)據(jù)中 # 這樣的話播放器為自動(dòng)通過adts頭自動(dòng)選擇采樣頻率 # 像ffplay, vlc都可以,但是flash是沒有聲音, # 因?yàn)閒lash,只支持11025 22050 44100 # 注意:根據(jù)需要開打音頻 audio_enable off; # 服務(wù)器主機(jī)號(hào),可以域名或ip地址 # 也就是設(shè)備端將媒體發(fā)送的地址,如果是服務(wù)器是內(nèi)外網(wǎng) # 需要寫外網(wǎng)地址, # 調(diào)用api創(chuàng)建stream session時(shí)返回ip地址也是host # $CANDIDATE 是系統(tǒng)環(huán)境變量,從環(huán)境變量獲取地址,如果沒有配置,用* # *代表指定stats network 的網(wǎng)卡號(hào)地址,如果沒有配置network,默認(rèn)則是第0號(hào)網(wǎng)卡地址 # TODO: https://github.com/ossrs/srs/pull/1679/files#r400917594 host $CANDIDATE; #根據(jù)收到ps rtp包自帶創(chuàng)建rtmp媒體通道,不需要api接口創(chuàng)建 #rtmp地址參數(shù)[stream] 就是通道id 格式chid[ssrc] #注意:打開此處,我們使用自己的sip信令服務(wù)器,srs收到rtp流后創(chuàng)建媒體通道即可 auto_create_channel on; sip { # 是否啟用srs內(nèi)部sip信令 # 為on信令走srs, off 只轉(zhuǎn)發(fā)ps流 # 注意,關(guān)閉sip服務(wù),我們使用自己的sip服務(wù),涉及到業(yè)務(wù)處理 enabled off; # sip監(jiān)聽udp端口 listen 5060; # SIP server ID(SIP服務(wù)器ID). # 設(shè)備端配置編號(hào)需要與該值一致,否則無法注冊(cè) serial 34020000002000000001; # SIP server domain(SIP服務(wù)器域) realm 3402000000; # 服務(wù)端發(fā)送ack后,接收回應(yīng)的超時(shí)時(shí)間,單位為秒 # 如果指定時(shí)間沒有回應(yīng),認(rèn)為失敗 ack_timeout 30; # 設(shè)備心跳維持時(shí)間,如果指定時(shí)間內(nèi)(秒)沒有接收一個(gè)心跳 # 認(rèn)為設(shè)備離線 keepalive_timeout 120; # 注冊(cè)之后是否自動(dòng)給設(shè)備端發(fā)送invite # on: 是 off 不是,需要通過api控制 auto_play on; # 設(shè)備將流發(fā)送的端口,是否固定 # on 發(fā)送流到多路復(fù)用端口 如9000 # off 自動(dòng)從rtp_mix_port - rtp_max_port 之間的值中 # 選一個(gè)可以用的端口 invite_port_fixed on; # 向設(shè)備或下級(jí)域查詢?cè)O(shè)備列表的間隔,單位(秒) # 默認(rèn)60秒 query_catalog_interval 60; }}rtc_server { enabled on; # Listen at udp://8000 listen 8000; # # The $CANDIDATE means fetch from env, if not configed, use * as default. # # The * means retrieving server IP automatically, from all network interfaces, # @see https://github.com/ossrs/srs/issues/307#issuecomment-599028124 # 注意修改為流服務(wù)器地址 # candidate $CANDIDATE; candidate SRS服務(wù)器IP地址; #例如:192.168.0.11}vhost __defaultVhost__ { rtc { enabled on; rtmp_to_rtc on; bframe discard; } http_remux { enabled on; mount [vhost]/[app]/[stream].flv; }}

啟動(dòng)SRS服務(wù)

sudo ./objs/srs -c ./conf/push.gb28181.conf

輸出信息,包含了查看運(yùn)行日志和查看服務(wù)狀態(tài)的命令

[2022-04-30 00:26:27.038][Trace][89679][925s1h86] XCORE-SRS/5.0.26(Leo)[2022-04-30 00:26:27.038][Trace][89679][925s1h86] config parse complete[2022-04-30 00:26:27.038][Warn][89679][925s1h86][22] transform: vhost.rtc.bframe to vhost.rtc.keep_bframe off[2022-04-30 00:26:27.038][Trace][89679][925s1h86] you can check log by: tail -n 30 -f ./objs/srs.log[2022-04-30 00:26:27.038][Trace][89679][925s1h86] please check SRS by: ./etc/init.d/srs status

進(jìn)入srs控制臺(tái)

http://SRS服務(wù)器IP地址:8080/

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多