品牌建設(shè)的路徑/網(wǎng)站排名優(yōu)化查詢
GB/T28181-2022和GB/T28181-2016區(qū)別
GB/T28181-2022《公共安全視頻監(jiān)控聯(lián)網(wǎng)系統(tǒng)信息傳輸、交換、控制技術(shù)要求》與 GB/T28181-2016 相比,主要有以下區(qū)別:
- 術(shù)語和定義方面:
- 術(shù)語刪減:GB/T28181-2022 刪除了 “聯(lián)網(wǎng)系統(tǒng)信息”“數(shù)字接入”“模擬接入”“模數(shù)混合型監(jiān)控系統(tǒng)”“數(shù)字型監(jiān)控系統(tǒng)”“監(jiān)控點(diǎn)”“監(jiān)控中心” 等術(shù)語的定義,使標(biāo)準(zhǔn)更加簡潔,適應(yīng)監(jiān)控技術(shù)的發(fā)展趨勢,因為一些傳統(tǒng)的監(jiān)控接入方式逐漸被淘汰。
- 術(shù)語更改:更改了 “SIP 監(jiān)控域”“非 SIP 監(jiān)控域”“級聯(lián)”“互聯(lián)” 的術(shù)語和定義,表述更加準(zhǔn)確和清晰,便于理解和應(yīng)用。
- 增加縮略語:2022 版增加了 “PTZ” 的縮略語,方便對云臺控制相關(guān)功能的表述和理解。
- 系統(tǒng)結(jié)構(gòu)和協(xié)議方面:
- 互聯(lián)結(jié)構(gòu)示意圖更改:GB/T28181-2022 更改了 “SIP 監(jiān)控域互聯(lián)結(jié)構(gòu)示意圖”,對監(jiān)控系統(tǒng)的互聯(lián)結(jié)構(gòu)展示進(jìn)行了優(yōu)化和調(diào)整,使其更符合實(shí)際應(yīng)用場景。
- 通信協(xié)議結(jié)構(gòu)圖變化:2022 版更改了 “聯(lián)網(wǎng)系統(tǒng)通信協(xié)議結(jié)構(gòu)圖”,媒體流通道增加了 H.265、G.722.1、AAC 等編碼格式的支持,豐富了媒體流的傳輸方式,提高了音視頻傳輸?shù)馁|(zhì)量和效率。
- 增加 RTP 時間戳要求:2022 版增加了媒體流數(shù)據(jù)傳輸?shù)?RTP 時間戳要求,保證了視頻時間的真實(shí)性和實(shí)時性,防止數(shù)據(jù)被篡改。
- 技術(shù)要求方面:
- 網(wǎng)絡(luò)傳輸帶寬和視頻幀率要求:GB/T28181-2022 更改了網(wǎng)絡(luò)傳輸帶寬要求和視頻幀率要求。例如,2016 版對單路設(shè)備接入帶寬有具體數(shù)值要求,而 2022 版則更靈活,滿足要求且留有余量即可;幀率統(tǒng)一要求為 25fps(2016 版有多種幀率要求)。
- 編碼格式支持:2022 版增加了對 H.265、AAC 的支持,強(qiáng)化了對新一代音視頻編碼格式的適應(yīng)性,有助于提高系統(tǒng)的性能和兼容性。
- 協(xié)議引用更改:更改了 SDP 協(xié)議的引用,使協(xié)議的應(yīng)用更加規(guī)范和準(zhǔn)確。
- 功能和命令方面:
- 增加功能查詢命令:GB/T28181-2022 增加了看守位信息查詢、巡航軌跡列表查詢、巡航軌跡查詢、PTZ 精準(zhǔn)狀態(tài)查詢、存儲卡狀態(tài)查詢及應(yīng)答命令等,細(xì)化和擴(kuò)展了系統(tǒng)的功能查詢能力,方便對監(jiān)控設(shè)備的狀態(tài)和信息進(jìn)行更全面的了解。
- 增加事件訂閱和通知:增加了 PTZ 精準(zhǔn)位置變化事件訂閱和通知,提高了對云臺控制的實(shí)時監(jiān)控和反饋能力。
- 增加軟件升級和圖像抓拍相關(guān)內(nèi)容:增加了設(shè)備軟件升級、圖像抓拍信令流程和協(xié)議接口,完善了系統(tǒng)的維護(hù)和管理功能。
- 安全性要求方面:GB/T28181-2022 更改了傳輸、交換、控制安全性要求,提高了系統(tǒng)的安全性能,保障監(jiān)控數(shù)據(jù)的保密性、完整性和可用性。
- 附錄內(nèi)容方面:
- 附錄調(diào)整和補(bǔ)充:2022 版對多個附錄進(jìn)行了更改、補(bǔ)充和完善,如更改了附錄 D 基于 TCP 協(xié)議的視音頻媒體傳輸要求(原 2016 版為附錄 L);更改了附錄 B、C、E、F、G 等,增加了附錄 H(攝像機(jī)和平臺路徑選擇技術(shù)要求)、附錄 I(協(xié)議版本標(biāo)識)、附錄 O(攝像機(jī)采集部位類型代碼)等,使標(biāo)準(zhǔn)的附錄內(nèi)容更加豐富和詳細(xì)。
- 標(biāo)簽和字段格式變更:在一些附錄中,對標(biāo)簽和字段格式進(jìn)行了變更,如目錄響應(yīng)報文中的 info 標(biāo)簽修改為 extrainfo 標(biāo)簽等,但部分變更后的標(biāo)簽在實(shí)際應(yīng)用中可能尚未使用。
GB28181應(yīng)用場景
GB28181 即《公共安全視頻監(jiān)控聯(lián)網(wǎng)系統(tǒng)信息傳輸、交換、控制技術(shù)要求》,其主要使用場景如下:
一、公共安全領(lǐng)域
- 社會治安監(jiān)控:
- 在城市的街道、廣場、公園等公共場所安裝的視頻監(jiān)控設(shè)備,可以通過 GB28181 協(xié)議接入到公安部門的視頻監(jiān)控聯(lián)網(wǎng)平臺。這樣,警方可以實(shí)時監(jiān)控這些區(qū)域的治安情況,及時發(fā)現(xiàn)和處理違法犯罪行為。
- 例如,當(dāng)發(fā)生盜竊、搶劫等案件時,警方可以通過調(diào)閱監(jiān)控錄像,追蹤犯罪嫌疑人的行蹤,為案件的偵破提供重要線索。
- 交通管理:
- 道路上的交通監(jiān)控攝像頭可以采用 GB28181 協(xié)議,將視頻圖像傳輸?shù)浇煌ü芾聿块T的指揮中心。指揮中心可以實(shí)時監(jiān)控道路交通流量、車輛行駛狀態(tài)等信息,及時發(fā)現(xiàn)交通擁堵、事故等情況,并采取相應(yīng)的疏導(dǎo)和處理措施。
- 例如,在高峰期,交通管理部門可以通過監(jiān)控畫面,及時調(diào)整信號燈時間,優(yōu)化交通流量;在發(fā)生交通事故時,可以快速派遣交警前往現(xiàn)場處理,并通過監(jiān)控了解事故情況,為救援和處理提供依據(jù)。
- 應(yīng)急指揮:
- 在發(fā)生自然災(zāi)害、事故災(zāi)難等突發(fā)事件時,GB28181 協(xié)議可以實(shí)現(xiàn)不同部門之間的視頻監(jiān)控資源共享,為應(yīng)急指揮提供全面的現(xiàn)場信息。
- 例如,在地震、洪水等災(zāi)害發(fā)生時,消防、救援、醫(yī)療等部門可以通過共享的視頻監(jiān)控畫面,了解災(zāi)區(qū)情況,制定合理的救援方案,提高救援效率。
二、企業(yè)和機(jī)構(gòu)內(nèi)部安全管理
- 工廠和園區(qū)監(jiān)控:
- 大型工廠、工業(yè)園區(qū)可以利用 GB28181 協(xié)議搭建自己的視頻監(jiān)控聯(lián)網(wǎng)系統(tǒng),實(shí)現(xiàn)對生產(chǎn)區(qū)域、倉庫、辦公區(qū)域等的全面監(jiān)控。企業(yè)管理人員可以通過該系統(tǒng)實(shí)時了解生產(chǎn)情況、員工工作狀態(tài)以及安全隱患等,提高企業(yè)的管理效率和安全性。
- 例如,在化工企業(yè)中,可以通過監(jiān)控攝像頭實(shí)時監(jiān)測危險區(qū)域的情況,一旦發(fā)現(xiàn)異常情況,及時采取措施,防止事故的發(fā)生。
- 金融機(jī)構(gòu)安保:
- 銀行、證券交易所等金融機(jī)構(gòu)可以采用 GB28181 協(xié)議的視頻監(jiān)控系統(tǒng),對營業(yè)場所、金庫、自助銀行等區(qū)域進(jìn)行監(jiān)控。安保人員可以通過監(jiān)控畫面實(shí)時掌握各個區(qū)域的安全狀況,防范盜竊、搶劫等犯罪行為。
- 例如,當(dāng)有可疑人員在自助銀行附近徘徊時,安保人員可以通過監(jiān)控及時發(fā)現(xiàn),并采取相應(yīng)的防范措施。
- 學(xué)校和醫(yī)院安全管理:
- 學(xué)校和醫(yī)院可以利用 GB28181 協(xié)議的視頻監(jiān)控系統(tǒng),保障校園和醫(yī)院的安全。學(xué)??梢员O(jiān)控教學(xué)樓、操場、宿舍等區(qū)域,防止校園暴力、盜竊等事件的發(fā)生;醫(yī)院可以監(jiān)控門診大廳、病房、藥房等區(qū)域,確保患者和醫(yī)護(hù)人員的安全。
- 例如,在學(xué)校放學(xué)期間,保安可以通過監(jiān)控畫面關(guān)注校門口的人流情況,維護(hù)秩序,保障學(xué)生的安全。
三、智能交通領(lǐng)域
- 智能公交系統(tǒng):
- 公交車上安裝的視頻監(jiān)控設(shè)備可以通過 GB28181 協(xié)議將視頻圖像傳輸?shù)焦徽{(diào)度中心。調(diào)度中心可以實(shí)時監(jiān)控公交車內(nèi)的情況,了解乘客數(shù)量、行為等信息,同時也可以監(jiān)控公交車的行駛路線和速度,確保公交運(yùn)行的安全和高效。
- 例如,當(dāng)公交車上發(fā)生糾紛或突發(fā)事件時,調(diào)度中心可以及時了解情況,并通知司機(jī)采取相應(yīng)的措施;在公交車超速或偏離路線時,調(diào)度中心可以及時提醒司機(jī),保證行車安全。
- 電子警察系統(tǒng):
- 道路上的電子警察攝像頭可以采用 GB28181 協(xié)議,將違法車輛的照片和視頻信息傳輸?shù)浇煌ü芾聿块T的違法處理系統(tǒng)。交通管理部門可以通過該系統(tǒng)對違法車輛進(jìn)行處罰,提高交通執(zhí)法的效率和公正性。
- 例如,當(dāng)車輛闖紅燈、超速行駛或違法停車時,電子警察攝像頭會自動拍攝照片和視頻,并將這些信息傳輸?shù)竭`法處理系統(tǒng),交通管理部門可以根據(jù)這些證據(jù)對違法車輛進(jìn)行處罰。
四、跨區(qū)域視頻監(jiān)控聯(lián)網(wǎng)
- 城市間視頻監(jiān)控聯(lián)網(wǎng):
- 不同城市之間的視頻監(jiān)控系統(tǒng)可以通過 GB28181 協(xié)議實(shí)現(xiàn)聯(lián)網(wǎng),實(shí)現(xiàn)跨區(qū)域的視頻資源共享和協(xié)同管理。例如,在追捕犯罪嫌疑人時,多個城市的警方可以通過聯(lián)網(wǎng)的視頻監(jiān)控系統(tǒng),共同追蹤犯罪嫌疑人的行蹤,提高抓捕效率。
- 省際視頻監(jiān)控聯(lián)網(wǎng):
- 在省級層面,可以通過 GB28181 協(xié)議將各個地市的視頻監(jiān)控系統(tǒng)聯(lián)網(wǎng),實(shí)現(xiàn)全省范圍內(nèi)的視頻資源整合和統(tǒng)一管理。這樣,省級公安部門可以更加全面地掌握全省的社會治安情況,及時協(xié)調(diào)各地的警力資源,應(yīng)對重大突發(fā)事件。
- 例如,在舉辦重大活動或應(yīng)對重大自然災(zāi)害時,省級公安部門可以通過聯(lián)網(wǎng)的視頻監(jiān)控系統(tǒng),統(tǒng)一指揮調(diào)度各地的警力和救援力量,確?;顒拥陌踩樌M(jìn)行和災(zāi)害的有效應(yīng)對。
如何實(shí)現(xiàn)GB28181設(shè)備對接
一、了解 GB28181 協(xié)議
GB28181 即《公共安全視頻監(jiān)控聯(lián)網(wǎng)系統(tǒng)信息傳輸、交換、控制技術(shù)要求》,它規(guī)定了公共安全視頻監(jiān)控聯(lián)網(wǎng)系統(tǒng)中信息傳輸、交換、控制的技術(shù)要求。主要包括以下幾個方面:
- 設(shè)備注冊:設(shè)備向平臺注冊,提供設(shè)備信息。
- 信令交互:包括設(shè)備控制信令、狀態(tài)查詢信令等。
- 媒體流傳輸:視頻、音頻等媒體流的傳輸規(guī)范。
二、選擇開發(fā)工具和庫
- 開發(fā)語言:通??梢允褂?Java 或 Kotlin 進(jìn)行 Android 開發(fā)。
- 網(wǎng)絡(luò)通信庫:由于 GB28181 涉及網(wǎng)絡(luò)通信,可以考慮使用 OkHttp 等網(wǎng)絡(luò)請求庫來實(shí)現(xiàn)與設(shè)備和平臺的通信。
- 媒體處理庫:對于媒體流的處理,可以使用 ExoPlayer 等視頻播放庫來播放接收到的視頻流。
三、實(shí)現(xiàn)設(shè)備注冊
- 構(gòu)造注冊信令:根據(jù) GB28181 協(xié)議規(guī)范,構(gòu)造設(shè)備注冊的 SIP(Session Initiation Protocol)信令。信令中包含設(shè)備的唯一標(biāo)識、IP 地址、端口號等信息。
- 發(fā)送注冊信令:使用網(wǎng)絡(luò)通信庫將注冊信令發(fā)送到指定的平臺地址。
- 處理注冊響應(yīng):接收平臺返回的注冊響應(yīng)信令,解析響應(yīng)狀態(tài)碼。如果注冊成功,則保存平臺分配的設(shè)備 ID 等信息;如果注冊失敗,則根據(jù)錯誤碼進(jìn)行相應(yīng)的處理。
四、信令交互
- 設(shè)備控制信令:實(shí)現(xiàn)對設(shè)備的云臺控制(上下左右轉(zhuǎn)動、變焦等)、錄像控制等功能。構(gòu)造相應(yīng)的 SIP 信令并發(fā)送到設(shè)備,設(shè)備接收到信令后執(zhí)行相應(yīng)的操作。
- 狀態(tài)查詢信令:定期向設(shè)備發(fā)送狀態(tài)查詢信令,獲取設(shè)備的在線狀態(tài)、錄像狀態(tài)等信息。設(shè)備返回狀態(tài)響應(yīng)信令,解析后更新設(shè)備狀態(tài)顯示。
五、媒體流接收和播放
- 接收媒體流:當(dāng)設(shè)備注冊成功并建立連接后,設(shè)備會根據(jù)請求發(fā)送視頻和音頻媒體流。在 Android 端,使用網(wǎng)絡(luò)通信庫接收媒體流數(shù)據(jù)。
- 解碼和播放:使用媒體處理庫(如SmartPlayer)對接收的媒體流進(jìn)行解碼和播放。將媒體流數(shù)據(jù)傳遞給播放器進(jìn)行播放顯示。
六、錯誤處理和異常情況處理
- 網(wǎng)絡(luò)連接問題:處理網(wǎng)絡(luò)連接中斷、超時等情況??梢栽O(shè)置重試機(jī)制,嘗試重新連接設(shè)備或平臺。
- 信令錯誤:對錯誤的信令響應(yīng)進(jìn)行處理,如解析錯誤碼并給出相應(yīng)的提示信息。
- 媒體流異常:處理媒體流中斷、卡頓等情況??梢試L試重新建立媒體流連接或調(diào)整播放器參數(shù)以提高播放穩(wěn)定性。
Android平臺實(shí)現(xiàn)GB28181設(shè)備對接
以大牛直播SDK推出的Android平臺GB28181接入SDK(以下簡稱SmartGBD)為例,SmartGBD可實(shí)現(xiàn)不具備國標(biāo)音視頻能力的 Android終端,通過平臺注冊接入到現(xiàn)有的GB/T28181—2016或GB/T28181—2022服務(wù),可用于如執(zhí)法記錄儀、智能安全帽、智能監(jiān)控、智慧零售、智慧教育、遠(yuǎn)程辦公、明廚亮灶、智慧交通、智慧工地、雪亮工程、平安鄉(xiāng)村、生產(chǎn)運(yùn)輸、車載終端等場景,可能是業(yè)內(nèi)為數(shù)不多功能齊全性能優(yōu)異的商業(yè)級水準(zhǔn)GB28181接入SDK。
Android終端除支持常規(guī)的音視頻數(shù)據(jù)接入外,還可以支持移動設(shè)備位置(MobilePosition)訂閱和通知、圖像抓拍、語音廣播和語音對講、歷史視音頻下載和回放,支持對接數(shù)據(jù)類型如下:
- 編碼前數(shù)據(jù)(目前支持的有YV12/NV21/NV12/I420/RGB24/RGBA32/RGB565等數(shù)據(jù)類型),其中,Android平臺前后攝像頭數(shù)據(jù),或者屏幕數(shù)據(jù),或者Unity拿到的數(shù)據(jù),均屬編碼前數(shù)據(jù);
- 編碼后數(shù)據(jù)(如無人機(jī)等264/HEVC數(shù)據(jù),或者本地解析的MP4音視頻數(shù)據(jù));
- 拉取RTSP或RTMP流并接入至GB28181平臺(比如其他IPC的RTSP流,可通過Android平臺GB28181接入到國標(biāo)平臺)。
功能支持
- ?[視頻格式]H.264/H.265(Android H.265硬編碼);
- ?[音頻格式]G.711 A律、AAC;
- ?[音量調(diào)節(jié)]Android平臺采集端支持實(shí)時音量調(diào)節(jié);
- ?[H.264硬編碼]支持H.264特定機(jī)型硬編碼;
- ?[H.265硬編碼]支持H.265特定機(jī)型硬編碼;
- ?[軟硬編碼參數(shù)配置]支持gop間隔、幀率、bit-rate設(shè)置;
- ?[軟編碼參數(shù)配置]支持軟編碼profile、軟編碼速度、可變碼率設(shè)置;
- ?支持橫屏、豎屏推流;
- ?Android平臺支持后臺service推送屏幕(推送屏幕需要5.0+版本);
- 支持純視頻、音視頻PS打包傳輸;
- 支持RTP OVER UDP和RTP OVER TCP被動模式(TCP媒體流傳輸客戶端);
- 支持信令通道網(wǎng)絡(luò)傳輸協(xié)議TCP/UDP設(shè)置;
- 支持注冊、注銷,支持注冊刷新及注冊有效期設(shè)置;
- 支持設(shè)備目錄查詢應(yīng)答;
- 支持心跳機(jī)制,支持心跳間隔、心跳檢測次數(shù)設(shè)置;
- 支持移動設(shè)備位置(MobilePosition)訂閱和通知;
- ?適用國家標(biāo)準(zhǔn):GB/T 28181—2016、GB/T28181—2022;
- 支持語音廣播;
- 支持語音對講;
- 支持圖像抓拍;
- 支持歷史視音頻文件檢索;
- 支持歷史視音頻文件下載;
- 支持歷史視音頻文件回放;
- 支持云臺控制和預(yù)置位查詢;
- ?[實(shí)時水印]支持動態(tài)文字水印、png水印;
- ?[鏡像]Android平臺支持前置攝像頭實(shí)時鏡像功能;
- ?[實(shí)時靜音]支持實(shí)時靜音/取消靜音;
- ?[實(shí)時快照]支持實(shí)時快照;
- ?[降噪]支持環(huán)境音、手機(jī)干擾等引起的噪音降噪處理、自動增益、VAD檢測;
- ?[外部編碼前視頻數(shù)據(jù)對接]支持YUV數(shù)據(jù)對接;
- ?[外部編碼前音頻數(shù)據(jù)對接]支持PCM對接;
- ?[外部編碼后視頻數(shù)據(jù)對接]支持外部H.264數(shù)據(jù)對接;
- ?[外部編碼后音頻數(shù)據(jù)對接]外部AAC數(shù)據(jù)對接;
- ?[擴(kuò)展錄像功能]支持和錄像SDK組合使用,錄像相關(guān)功能。
系統(tǒng)要求
- SDK支持Android 5.1及以上版本;
- 支持的CPU架構(gòu):armv7, arm64, x86, x86_64。
準(zhǔn)備工作
- 確保SmartPublisherJniV2.java放到com.daniulive.smartpublisher包名下(可在其他包名下調(diào)用);
- 如需集成語音廣播、語音對講功能,確保SmartPlayerJniV2.java放到com.daniulive.smartplayer包名下(可在其他包名下調(diào)用);
- smartavengine.jar和smartgbsipagent.jar加入到工程;
- 拷貝libSmartPublisher.so和libSmartPlayer.so(如需語音廣播或語音對講)到工程;
- AndroidManifast.xml添加相關(guān)權(quán)限:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" ></uses-permission>
<uses-permission android:name="android.permission.INTERNET" ></uses-permission>
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
- Load相關(guān)so:
static { System.loadLibrary("SmartPublisher");System.loadLibrary("SmartPlayer");
}
- build.gradle配置32/64位庫:
splits {abi {enable truereset()// Specifies a list of ABIs that Gradle should create APKs forinclude 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64' //select ABIs to build APKs for// Specify that we do not want to also generate a universal APK that includes all ABIsuniversalApk true}
}
- 如需集成到自己系統(tǒng)測試,請用大牛直播SDK的app name,授權(quán)版按照授權(quán)app name正常使用即可;
- 如何改app-name,strings.xml做以下修改:
<string name="app_name">SmartPublisherSDKDemo</string>
接口詳解
以Android平臺Camera2對接為例,信令部分需要實(shí)現(xiàn)如下標(biāo)紅接口:
/* * GB28181Camera2Activity.java* Created by daniusdk.com* WeChat: xinsheng120*/
public class MainActivity extends Activity implements ViewTreeObserver.OnGlobalLayoutListener, Camera2Listener,GBSIPAgentListener, GBSIPAgentPlayListener, GBSIPAgentAudioBroadcastListener,GBSIPAgentDeviceControlListener, GBSIPAgentQueryCommandListener, GBSIPAgentTalkListener, GBSIPAgentQueryRecordInfoListener{
}
媒體數(shù)據(jù)處理接口,可參照SmartPublisherJniV2.java,如需語音廣播或語音對講,可參照SmartPlayerJniV2.java。
信令處理
GBSIPAgentListener主要系GB28181注冊、心跳、DevicePosition等,如注冊成功、注冊超時、注冊網(wǎng)絡(luò)傳輸層錯誤、心跳異常、設(shè)備位置請求處理:
public interface GBSIPAgentListener
{/*注冊成功* @param dateString: 服務(wù)器日期,用來校準(zhǔn)設(shè)備端時間,用戶自行決定是否校準(zhǔn)設(shè)備時間*/void ntsRegisterOK(String dateString);/**注冊超時*/void ntsRegisterTimeout();/**注冊網(wǎng)絡(luò)傳輸層異常*/void ntsRegisterTransportError(String errorInfo);/**心跳達(dá)到異常次數(shù)*/void ntsOnHeartBeatException(int exceptionCount, String lastExceptionInfo);/** 設(shè)備位置請求, 這個主要用在移動設(shè)備位置訂閱上* @param interval 請求間隔, 單位是毫秒*/void ntsOnDevicePositionRequest(String deviceId, int interval);
}
GBSIPAgentPlayListener主要系GB28181的Invite、Ack、Bye等處理:
public interface GBSIPAgentPlayListener {/**收到s=Play的實(shí)時視音頻點(diǎn)播*/void ntsOnInvitePlay(String deviceId, SessionDescription sessionDescription);/**發(fā)送play invite response 異常*/void ntsOnPlayInviteResponseException(String deviceId, int statusCode, String errorInfo);/** 收到CANCEL play INVITE請求*/void ntsOnCancelPlay(String deviceId);/** 收到Ack*/void ntsOnAckPlay(String deviceId);/** 收到Bye*/void ntsOnByePlay(String deviceId);/** 不是在收到BYE Message情況下, 終止Play*/void ntsOnTerminatePlay(String deviceId);/** Play會話對應(yīng)的對話終止, 一般不會出發(fā)這個回調(diào),目前只有在響應(yīng)了200K, 但在64*T1時間后還沒收到ACK,才可能會出發(fā)收到這個, 請做相關(guān)清理處理*/void ntsOnPlayDialogTerminated(String deviceId);
}
GBSIPAgentAudioBroadcastListener主要系GB28181語音廣播處理相關(guān),如有語音廣播相關(guān)需求,可參照demo實(shí)例實(shí)現(xiàn):
public interface GBSIPAgentAudioBroadcastListener {/**收到語音廣播通知*/void ntsOnNotifyBroadcastCommand(String fromUserName, String fromUserNameAtDomain, String sn, String sourceID, String targetID);/**需要準(zhǔn)備接受語音廣播的SDP內(nèi)容*/void ntsOnAudioBroadcast(String commandFromUserName, String commandFromUserNameAtDomain, String sourceID, String targetID);/**音頻廣播, 發(fā)送Invite請求異常*/void ntsOnInviteAudioBroadcastException(String sourceID, String targetID, String errorInfo);/**音頻廣播, 等待Invite響應(yīng)超時*/void ntsOnInviteAudioBroadcastTimeout(String sourceID, String targetID);/**音頻廣播, 收到Invite消息最終響應(yīng)*/void ntsOnInviteAudioBroadcastResponse(String sourceID, String targetID, int statusCode, SessionDescription sessionDescription);/** 音頻廣播, 收到BYE Message*/void ntsOnByeAudioBroadcast(String sourceID, String targetID);/** 不是在收到BYE Message情況下, 終止音頻廣播*/void ntsOnTerminateAudioBroadcast(String sourceID, String targetID);
}
GBSIPAgentDeviceControlListener主要系GB28181設(shè)備控制相關(guān),比如遠(yuǎn)程啟動、云臺控制:
public interface GBSIPAgentDeviceControlListener {/** 收到遠(yuǎn)程啟動控制命令*/void ntsOnDeviceControlTeleBootCommand(String deviceId, String teleBootValue);/** 云臺控制*/void ntsOnDeviceControlPTZCmd(String deviceId, String typeValue);
}
GBSIPAgentQueryCommandListener主要系GB28181查詢命令,如預(yù)置位查詢:
public interface GBSIPAgentQueryCommandListener {/** 設(shè)備預(yù)置位查詢*/void ntsOnDevicePresetQueryCommand(String fromUserName, String fromUserNameAtDomain, String sn, String deviceId);
}
GBSIPAgentTalkListener主要系GB28181語音對講相關(guān)處理:
public interface GBSIPAgentTalkListener {/**收到s=Talk 語音對講*/void ntsOnInviteTalk(String deviceId, SessionDescription sessionDescription);/**發(fā)送talk invite response 異常*/void ntsOnTalkInviteResponseException(String deviceId, int statusCode, String errorInfo);/** 收到CANCEL Talk INVITE請求*/void ntsOnCancelTalk(String deviceId);/** 收到Ack*/void ntsOnAckTalk(String deviceId);/** 收到Bye*/void ntsOnByeTalk(String deviceId);/** 不是在收到BYE Message情況下, 終止Talk*/void ntsOnTerminateTalk(String deviceId);/** Talk會話對應(yīng)的對話終止, 一般不會出發(fā)這個回調(diào),目前只有在響應(yīng)了200K, 但在64*T1時間后還沒收到ACK,才可能會出發(fā)收到這個, 請做相關(guān)清理處理*/void ntsOnTalkDialogTerminated(String deviceId);
}
GBSIPAgentPlaybackListener系歷史視音頻回放相關(guān):
public interface GBSIPAgentPlaybackListener {void ntsOnInvitePlayback(long var1, String var3, SessionDescription var4);void ntsOnPlaybackInviteResponseException(long var1, String var3, int var4, String var5);void ntsOnCancelPlayback(long var1, String var3);void ntsOnAckPlayback(long var1, String var3);void ntsOnPlaybackMANSRTSPPlayCommand(long var1, String var3);void ntsOnPlaybackMANSRTSPPauseCommand(long var1, String var3);void ntsOnPlaybackMANSRTSPScaleCommand(long var1, String var3, double var4);void ntsOnPlaybackMANSRTSPSeekCommand(long var1, String var3, double var4);void ntsOnPlaybackMANSRTSPTeardownCommand(long var1, String var3);void ntsOnByePlayback(long var1, String var3);void ntsOnTerminatePlayback(long var1, String var3);void ntsOnPlaybackDialogTerminated(long var1, String var3);
}
GBSIPAgentDownloadListen系歷史視音頻下載相關(guān):
public interface GBSIPAgentDownloadListener {void ntsOnInviteDownload(long var1, String var3, SessionDescription var4);void ntsOnDownloadInviteResponseException(long var1, String var3, int var4, String var5);void ntsOnCancelDownload(long var1, String var3);void ntsOnAckDownload(long var1, String var3);void ntsOnDownloadMANSRTSPScaleCommand(long var1, String var3, double var4);void ntsOnByeDownload(long var1, String var3);void ntsOnTerminateDownload(long var1, String var3);void ntsOnDownloadDialogTerminated(long var1, String var3);
}
對應(yīng)GB28181相關(guān)接口調(diào)用相關(guān)設(shè)計如下:
/** SmartPublisherJniV2.java* Author: https://daniusdk.com*/
/*** 設(shè)置GB28181 RTP Sender** @param rtp_sender_handle, CreateRTPSender返回值* @param rtp_payload_type, 對于GB28181 PS, 協(xié)議定義是96, 具體以SDP為準(zhǔn), RFC 3551有定義* @param encoding_name, 編碼名, 請參考 RFC 3551, 當(dāng)前僅支持: "PS", 其他值返回失敗* @return {0} if successful*/
public native int SetGB28181RTPSender(long handle, long rtp_sender_handle, int rtp_payload_type, String encoding_name);/*** 設(shè)置GB28181 RTP 收到的音頻包回調(diào)* @param handle* @param audio_packet_callback* @return*/
public native int SetGB28181ReceiveAudioPacketCallback(long handle, NTAudioPacketCallback audio_packet_callback);/*** 啟動 GB28181 媒體流** @return {0} if successful*/
public native int StartGB28181MediaStream(long handle);/*** 停止 GB28181 媒體流** @return {0} if successful*/
public native int StopGB28181MediaStream(long handle);
總結(jié)
作為公共安全視頻監(jiān)控聯(lián)網(wǎng)系統(tǒng)的國家標(biāo)準(zhǔn),GB28181為不同廠家、不同類型的視頻監(jiān)控設(shè)備規(guī)定了統(tǒng)一的通信標(biāo)準(zhǔn)和技術(shù)規(guī)范。這使得各種品牌和型號的設(shè)備能夠輕松實(shí)現(xiàn)互聯(lián)互通,打破了以往設(shè)備之間因通信協(xié)議差異而形成的信息壁壘。無論是???、大華等大型安防企業(yè)的設(shè)備,還是其他小型廠商的產(chǎn)品,只要符合 GB28181 標(biāo)準(zhǔn),都可以接入到同一個監(jiān)控網(wǎng)絡(luò)中,便于統(tǒng)一管理和調(diào)度。遵循開放式架構(gòu)的原則,具有良好的可擴(kuò)展性,并且與其他相關(guān)標(biāo)準(zhǔn)(如 ONVIF、PSI 等)具有一定的兼容性。這為系統(tǒng)的集成和融合提供了便利,在實(shí)際應(yīng)用中,可以根據(jù)需求將不同標(biāo)準(zhǔn)的設(shè)備和系統(tǒng)進(jìn)行整合,提高了系統(tǒng)的靈活性和適應(yīng)性。