乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      開源SRS搭建GB28181流媒體服務,支持WebRtc

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

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

      實現(xiàn)方案如下

      1. 自建信令服務器

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

      文章圖片1

      實現(xiàn)方案架構圖

      一、自建信令服務器

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

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

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

      #進入目錄cd srs/trunk#配置開啟gb28181,默認是關閉的sudo ./configure --gb28181=on#編譯安裝sudo make

      修改配置文件

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

      啟動SRS服務

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

      輸出信息,包含了查看運行日志和查看服務狀態(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

      進入srs控制臺

      http://SRS服務器IP地址:8080/

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

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多