国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種泛終端視頻傳輸系統(tǒng)和方法

      文檔序號:7858751閱讀:295來源:國知局
      專利名稱:一種泛終端視頻傳輸系統(tǒng)和方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及數(shù)據(jù)傳輸領(lǐng)域,特別涉及一種泛終端視頻傳輸系統(tǒng)和方法。
      背景技術(shù)
      業(yè)界中的各種音視頻傳輸方法,基本都是一種平臺對應一種傳輸協(xié)議,例如要在andriod平臺上播放視頻,流媒體服務(wù)器端先將視頻按照rtsp或者http傳輸協(xié)議格式封裝,然后分發(fā)到該andriod平臺,該封裝協(xié)議無法在I0S,或者pc端上進行傳輸以及播放。假設(shè)需要在IOS平臺播放,流媒體服務(wù)器還必須按照IOS支持的傳輸協(xié)議格式進行再次封裝。隨著平臺種類甚至相同平臺不同版本的區(qū)別,流媒體服務(wù)器需要為每種平臺做特定的、有針對性的封裝,給服務(wù)器增加了不少重復封裝協(xié)議包的工作。
      另外,目前在互聯(lián)網(wǎng)或者移動互聯(lián)網(wǎng),音視頻傳輸多為固定碼流進行傳輸,在網(wǎng)絡(luò)環(huán)境惡劣情況下,無法正常播放音視頻文件。

      發(fā)明內(nèi)容
      為了克服現(xiàn)有技術(shù)存在的缺陷,本發(fā)明提出一種泛終端視頻傳輸系統(tǒng)和方法,能夠?qū)崿F(xiàn)音視頻在不同終端上的傳輸以及播放。其他終端機型包括目前主流的andriod平臺、iphone平臺、ipad平臺、pc端、web/web平臺等各種終端。本發(fā)明的泛終端視頻傳輸方法包括步驟步驟1,終端向服務(wù)器發(fā)出建立會話請求指令,該指令包含由參數(shù)proc表示的終端適用的協(xié)議類型,該指令還包含終端的計劃碼流;步驟2,服務(wù)器的協(xié)議適配器根據(jù)接收到的建立會話請求指令,解析后設(shè)置連接屬性,協(xié)議適配器是終端與服務(wù)器的接口所在,提供多種協(xié)議與終端連接,協(xié)議適配器根據(jù)所述proc參數(shù)來確定所采用的協(xié)議;步驟3,協(xié)議適配器適配完終端后將轉(zhuǎn)碼需求發(fā)送到服務(wù)器的動態(tài)轉(zhuǎn)碼器進行轉(zhuǎn)碼處理,動態(tài)轉(zhuǎn)碼器根據(jù)終端類型,自動轉(zhuǎn)換編碼格式以適應不同的終端請求,經(jīng)過轉(zhuǎn)碼處理,動態(tài)轉(zhuǎn)碼器向服務(wù)器的流邏輯處理裝置發(fā)送流數(shù)據(jù);步驟4,由流邏輯處理裝置輸出音視頻流到終端,其中在音視頻流傳輸過程中,服務(wù)器的業(yè)務(wù)邏輯處理裝置根據(jù)接收的網(wǎng)絡(luò)功能測試結(jié)果,如果決定對視頻進行跳幀處理,則發(fā)出跳幀指令到動態(tài)轉(zhuǎn)碼器,動態(tài)轉(zhuǎn)碼器根據(jù)跳幀指令進行跳幀處理,處理完之后發(fā)送流數(shù)據(jù)到流邏輯處理裝置,流邏輯處理裝置發(fā)送流數(shù)據(jù)到終端。本發(fā)明的泛終端視頻傳輸系統(tǒng),該系統(tǒng)包括服務(wù)器和終端,其特征在于,服務(wù)器進一步包括流邏輯處理裝置,用于響應終端的媒體獲取請求,對視頻進行分發(fā)處理;動態(tài)轉(zhuǎn)碼器,用于根據(jù)終端類型,自動轉(zhuǎn)換編碼格式以適應不同的終端請求;協(xié)議適配器,用于根據(jù)用戶配置,決定底層傳輸協(xié)議,并且用于測試網(wǎng)絡(luò)功能,并將測試結(jié)果反饋給業(yè)務(wù)邏輯處理裝置;業(yè)務(wù)邏輯處理裝置,用于根據(jù)接收的網(wǎng)絡(luò)功能測試結(jié)果,如果決定對視頻進行跳幀處理,則發(fā)出跳幀指令到動態(tài)轉(zhuǎn)碼器,其中動態(tài)轉(zhuǎn)碼器進行跳幀處理,處理完之后發(fā)送流數(shù)據(jù)到流邏輯處理裝置,流邏輯處理裝置發(fā)送流數(shù)據(jù)到終端。本發(fā)明采用統(tǒng)一一種封裝格式,使得通過該方式封裝的視頻數(shù)據(jù),可以在各種平臺上進行視頻播放,無需為每個平臺做特定的封裝,這樣可以大大減少流媒體服務(wù)器的工作壓力以及簡化封裝協(xié)議管理。利用本發(fā)明的系統(tǒng)和方法,能夠?qū)崿F(xiàn)音視頻在不同終端上的傳輸以及播放,終端機型包括目前主流的andriod平臺、iphone平臺、ipad平臺、pc端、web/web平臺等各種終端。目前在互聯(lián)網(wǎng)或者移動互聯(lián)網(wǎng),音視頻傳輸多為固定碼流進行傳輸,在網(wǎng)絡(luò)環(huán)境惡劣情況下,無法正常播放音視頻文件。本發(fā)明實現(xiàn)了智能視頻跳幀方法,使得媒體傳輸可以根據(jù)網(wǎng)絡(luò)傳輸情況,自動跳幀傳輸碼流或者實現(xiàn)跳幀的方式來適應當前網(wǎng)絡(luò)環(huán)境下媒體的傳輸。


      圖I為本發(fā)明泛終端視頻傳輸系統(tǒng)拓撲結(jié)構(gòu)圖;圖2本發(fā)明泛終端視頻傳輸系統(tǒng)邏輯架構(gòu)圖; 圖3為本發(fā)明測試終端的處理流程;圖4為本發(fā)明泛終端視頻傳輸方法流程圖;圖5為跳幀數(shù)據(jù)流向示意圖;圖6為跳幀處理流程圖。
      具體實施例方式為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚明白,以下結(jié)合具體實施例,并參照附圖,對本發(fā)明進一步詳細說明。利用本發(fā)明的系統(tǒng)和方法在進行視頻傳輸過程中,系統(tǒng)會自動探測網(wǎng)絡(luò)傳輸狀況,將傳輸狀況實時反饋給前端動態(tài)編碼框架,然后框架會自動調(diào)節(jié)輸出碼流大小,以最適合當前網(wǎng)速的碼流進行傳輸,從而保證了視頻傳輸?shù)姆€(wěn)定性、流暢性。本發(fā)明的泛終端視頻網(wǎng)絡(luò)傳輸方法能夠高可靠、可自動調(diào)節(jié)傳輸碼流、高度適配各種平臺終端,可以通過internet以及2. 5G、3G等移動網(wǎng)絡(luò)進行流暢音視頻傳輸。本發(fā)明能夠?qū)崿F(xiàn)在不同平臺進行視頻傳輸。本發(fā)明的方法從原理上來講包括兩部分,一是視頻數(shù)據(jù)的傳遞,二是視頻數(shù)據(jù)傳遞控制功能。本發(fā)明的系統(tǒng)能夠支持多種底層網(wǎng)絡(luò)傳輸協(xié)議,例如udp、tcp等,同時完全支持http協(xié)議。本發(fā)明的系統(tǒng)和方法可以根據(jù)網(wǎng)絡(luò)狀況,偵測采用合適的方式進行傳輸,可以采用有狀態(tài)連接的方式,也可以采用無狀態(tài)連接的方式進行傳輸。圖I為本發(fā)明整體系統(tǒng)拓撲結(jié)構(gòu)圖。該系統(tǒng)包含4部分視頻來源部分,主要有兩種來源,直播視頻源與點播視頻源;流媒體媒體處理裝置,負責接收一加工一分發(fā)視頻處理工作;業(yè)務(wù)處理服務(wù)器,負責整個系統(tǒng)的控制指令發(fā)出一解析一執(zhí)行等工作;終端,負責視頻接收一播放工作;圖2為本發(fā)明泛終端視頻傳輸系統(tǒng)邏輯架構(gòu)圖。參照圖I和圖2,本發(fā)明的泛終端視頻傳輸系統(tǒng)包括服務(wù)器端和終端。服務(wù)器進一步包括流邏輯處理裝置,用于響應終端的媒體獲取請求、對單播、群播、點播、直播做出應答、對視頻進行編碼、加工(封裝)、分發(fā)處理;動態(tài)轉(zhuǎn)碼器,用于根據(jù)終端類型,自動轉(zhuǎn)換編碼格式以適應不同的終端請求,為流邏輯處理裝置實現(xiàn)轉(zhuǎn)碼功能;協(xié)議適配器,用于根據(jù)網(wǎng)絡(luò)傳輸狀態(tài),決定采用哪種底層傳輸協(xié)議例如Udp、rdp、tcp等,并根據(jù)用戶配置,決定底層傳輸協(xié)議;業(yè)務(wù)邏輯處理裝置,用于負責系統(tǒng)中業(yè)務(wù)邏輯的處理功能,負責整個系統(tǒng)中控制指令的發(fā)出一解析一執(zhí)行等工作,例如服務(wù)器探測終端平臺類型指令的發(fā)送與結(jié)果處理等。業(yè)務(wù)邏輯處理裝置,在當服務(wù)器需要獲取終端平臺信息時,還用于生成一條測試終端平臺指令,發(fā)送到終端。終端對請求作出應對,反饋自身平臺信息到服務(wù)器,具體處理過程包括業(yè)務(wù)邏輯處理裝置生成測試平臺指令,其指令格式如下GetForm 10000002 ettp-vl. O [消息體]CR LF;指令解釋GetForm—表示監(jiān)測平臺命令碼;10000002—表示終端id,ettp-vl. O-表示協(xié)議版本號;消息體部分表示消息的具體內(nèi)容;CR LF-指令結(jié)束標志;
      業(yè)務(wù)邏輯處理裝置將指令發(fā)送到協(xié)議適配器,協(xié)議適配器根據(jù)配置(該配置是服務(wù)器的業(yè)務(wù)邏輯處理模塊通過GetForm指令讀取到終端屬性中支持協(xié)議格式,例如終端1002支持udp協(xié)議傳輸)進行協(xié)議封裝。協(xié)議適配器將處理后的測平臺指令發(fā)往終端,該終端可能是pc、手機、pad等;終端adapter模塊啟動后,實時接收發(fā)送數(shù)據(jù)。當指令從服務(wù)器下發(fā)后adapter接收到指令后執(zhí)行獲取平臺信息處理運算;終端封裝測平臺應答包返回到協(xié)議適配器,消息格式如下GetFormACK status-code (狀態(tài)碼)10000002 (終端 ID) ettp-vl. O (協(xié)議版本)[消息體(平臺型號信息如)andriod-4. Osp-a] CR LF ;指令解釋GetFormACK—獲取平臺信息應當指令命令碼;status_code—狀態(tài)碼,表不本次執(zhí)行結(jié)果成功還是失?。?0000002—表不終端ID識別碼;ettp_vl. O —表不協(xié)議版本號;消息體填寫終端平臺信息的具體內(nèi)容,如終端的平臺信號為andriod-4. Ο-sp,那么在消息體中填入[andriod-4. Ο-sp]。協(xié)議適配器將應答包上傳至業(yè)務(wù)邏輯處理裝置;業(yè)務(wù)邏輯處理裝置接收到應答包后執(zhí)行如下處理步驟I :對協(xié)議包進行解析;步驟2 :記錄獲取到的終端平臺信息。某些情況下(例如終端啟動后),終端會主動向服務(wù)器上報自身的平臺信息。具體處理流程如下終端獲取到自身平臺信息;封裝成“報平臺”數(shù)據(jù)包,發(fā)送到服務(wù)器(協(xié)議適配器),消息格式如下SendForm 10000002 (終端ID) ettp-vl. O (協(xié)議版本)[消息體(平臺型號信息如)andriod-4. Osp-a] CR LF ;協(xié)議適配器轉(zhuǎn)發(fā)報送消息包到業(yè)務(wù)邏輯處理裝置;業(yè)務(wù)邏輯處理裝置收到報送消息包,解析并執(zhí)行相應操作。業(yè)務(wù)邏輯處理裝置還具有測試解碼的功能,用于獲取到終端用戶解碼能力,具體流程包括業(yè)務(wù)邏輯處理裝置生成測試解碼指令,其具體指令格式如下GetDecode 0x1000002 (終端id) ettp-vl. O (協(xié)議版本)消息體可以為空CR LF ;指令解釋GetDecode—指令碼,獲取目標解碼能力;0xl000002—終端ID ;ettp-vl. O—協(xié)議版本;CR LF—結(jié)束標志。業(yè)務(wù)邏輯處理裝置將消息包發(fā)送到協(xié)議適配器;協(xié)議適配器將協(xié)議發(fā)送到指定終端;終端收到指令后,查詢自身最高解碼能力;組成測試解碼應答包,沿原路返回給消息適配器,具體消息格式如下
      GetDecodeACK status-code (狀態(tài)碼)10000002 (終端 ID) ettp-vl. 0 (協(xié)議版本)[消息體 decode H264]CR LF。指令解釋GetDecodeACK—指令碼,獲取目標解碼能力應答;status_code—狀態(tài)碼,O表示成功,I表示失敗協(xié)議適配器,具有網(wǎng)絡(luò)網(wǎng)絡(luò)測試功能,能自動探測網(wǎng)絡(luò)速度、自動調(diào)整視頻碼率、自動跳幀等功能,。系統(tǒng)開啟網(wǎng)絡(luò)實時監(jiān)控功能后,將會對網(wǎng)絡(luò)速度作出測試。并且實時反饋到業(yè)務(wù)邏輯處理裝置。業(yè)務(wù)邏輯處理裝置,根據(jù)這些性能參數(shù),實現(xiàn)對數(shù)據(jù)傳輸?shù)闹悄苷{(diào)控,例如視頻自動減碼率、丟幀等控制。實現(xiàn)網(wǎng)絡(luò)測試的具體流程為協(xié)議適配器開啟網(wǎng)絡(luò)測試功能(通過配置文件config. cfg testnet = on/off開關(guān)該功能);將測試結(jié)果上報到業(yè)務(wù)邏輯處理裝置,具體消息格式如下TestNet 0x9001 (模塊 ID) ettp-vl. O (協(xié)議版本)[消息體包含 upd = 2Obpstcp=30bps http = 50bps]CR LF。
      指令解釋TestNet—指令碼,網(wǎng)絡(luò)速度測試指令;0x9001—模塊id,系統(tǒng)中的每個模塊有全局唯一 ID ;ettp-vl. O—協(xié)議版本號;消息體中udp = 20bps表示udp傳輸速率為20bps,每個協(xié)議之間用空格隔開;業(yè)務(wù)邏輯處理裝置接收到上報數(shù)據(jù)包后,刷新網(wǎng)絡(luò)狀態(tài)。服務(wù)器業(yè)務(wù)邏輯處理模塊讀取自身配置屬性,同樣終端也可以讀取自身屬性,具體指令格式如下GetEncode 0x1000002 (終端id) ettp-vl. O (協(xié)議版本)消息體O-表示服務(wù)器,I-表示終端CR LF,注0xl000002(終端id)當服務(wù)器取自身屬性時id = O。服務(wù)器或者終端可以通過該指令獲取指定流的屬性值,例如流編碼格式、碼率大小、分辨率大小等。具體指令格式如下GetStreamOption 0x1000002 (終端 id) ettp-vl. O (協(xié)議版本)消息體 O-表不服務(wù)器,I-表示終端CR LF,注終端id-如果服務(wù)器執(zhí)行該指令時,終端id = O。指令解釋GetStream0ption—命令碼,獲取流媒體屬性;0xl000002—終端id,表不該指令是哪個終%5發(fā)出的。ettp-vl. O —協(xié)議版本號;CR LF命令結(jié)束標志。服務(wù)器在與終端建立會話時,終端請求業(yè)務(wù)服務(wù)器建立流媒體通道連接。終端準備就緒后,向流媒體服務(wù)器發(fā)出建立流媒體通道連接請求,具體消息格式如下CreateSS 0x1000002 (終端 id) ettp-vl. O (協(xié)議版本)消息體CRLF,指令解釋CreateSS—指令碼,表示創(chuàng)建流;0xl000002—指令發(fā)出者終端ID ;ettp-vl. O-協(xié)議版本號;消息體可以為空,需要傳輸附件內(nèi)容時,可以寫入在消息體中;CF LF指令結(jié)束標志。此時消息體可以為空,也可以帶一些附加條件,例如指定連接方式,link = O為長連接,link = I為短連接,消息格式prot = udp、tct、http,視頻編碼器vc = h264,音頻編碼ac = aac, br = 100bps消息體部分具體格式如下link = lproc = udp code =h264dq = 128*320vc = h264ac = aac br = 200。服務(wù)器建立會話后,業(yè)務(wù)邏輯服務(wù)器將應答消息下發(fā)給終端,具體消息格式如下CreateSSACK status-code (狀態(tài)碼)90001 (會話id) ettp-vl. O (協(xié)議版本)消息體CR LF,當服務(wù)器應答消息體為空時,表示已經(jīng)滿足請求中的所有要求,假設(shè)請求中消息體link= I proc = udp code = h264 dq= 128*320vc= h264 ac = aac br = 200那么表示服務(wù)器已經(jīng)全部按要求建立了會話或者可以按要求執(zhí)行,例如br = 200 (bps)雖然還未開始傳輸流,但是服務(wù)器經(jīng)過對網(wǎng)絡(luò)的測試,可以滿足200bps碼流傳輸。在刪除會話時,業(yè)務(wù)邏輯服務(wù)器通過下面的指令主動刪除會話,或者終端向業(yè)務(wù)邏輯服務(wù)器發(fā)出下面的指令請求刪除該會話,具體消息格式如下=DelSS 90001(會話id)ettp-vl. O (協(xié)議版本)消息體CR LF,消息體可以為空,也可以附加條件,如time =10(單位秒)表示收到該指令10秒后刪除會話。在刪除會話之后,服務(wù)器下發(fā)該消息到終端,反饋刪除會話結(jié)果,該消息格式為DelSSACK status-code (狀態(tài)碼)90001 (會話id)ettp-vl. O (協(xié)議版本)消息體,status-code (狀態(tài)碼)=O表示刪除成功,-I表示刪除失敗。終端在接受流數(shù)據(jù)期間,會每隔一定時間向業(yè)務(wù)邏輯服務(wù)器發(fā)送心跳,告訴服務(wù)器我還在活動狀態(tài)中。如果在指定時間內(nèi)沒有收到終端的心跳包,服務(wù)器會主動斷開與終端的會話。在某些情況下,終端可以告訴服務(wù)器,保持一定時間的連接,這種情況下,即使不發(fā)送心跳包,服務(wù)器也會為終端保留會話連接。終端發(fā)送的消息格式如下=HoldSS90001(會話 id) ettp-vl. O (協(xié)議版本)[time = 100
      CR LF,
      指令解釋=HoldSS--指令碼,表示流保持;90001—表示會話id,沒個會話具有唯一 ID ;ettp-vl. O—表示協(xié)議版本號;消息體中time = 100表示請求服務(wù)器從建立算起,保留100秒的連接時間。業(yè)務(wù)邏輯服務(wù)器通過下面的指令,反饋holdSS請求結(jié)果,具體消息格式如下HoldSSACK status-code (狀態(tài)碼)90001 (會話 id) ettp-vl. O (協(xié)議版本)[time = 100,tatus-code = O,表示holdss請求成功,其他值都表示失??;當成功時消息體為空表示按請求(假設(shè)請求time = 100)保持,如有time = 90表示只能滿足90秒。終端向服務(wù)器發(fā)出播放視頻請求,具體消息格式如下Play 90001(會話id)ettp-vl. O (協(xié)議版本)消息體CR LF。服務(wù)器通知終端,開始傳輸視頻流,具體消息格式如下=SendSS 90001 (會話id) ettp-vl. O (協(xié)議版本)消息體CR LF,此時消息體可以為空,也可以帶一些附加條件,例如指定連接方式,link = O,為長連接,link = I為短連接,消息格式 prot = udp、tct、http,視頻編碼器 vc = h264,音頻編碼 ac = aac,br = 100bps消息體部分具體格式如下[link = I proc = udp code = h264dq = 128*320 vc = h264ac = aac br = 200]。當終端發(fā)現(xiàn)自身解碼、網(wǎng)絡(luò)傳輸跟不上服務(wù)器步驟時,可以自動向服務(wù)器發(fā)出跳中貞請求,具體格式如下StepFrame 90001(會話id) ettp-vl. O (協(xié)議版本)[step = 3CRLF, step = 3表示視頻流的I-P巾貞間,最多保留3個p巾貞,其他p巾貞可以跳過傳輸。視頻傳輸按一個關(guān)鍵幀I幀,夾帶多個P幀的方式,I幀是一個完整的幀,不允許丟棄,P是非關(guān)鍵幀,可以適當丟棄,不影響播放,但會對視頻質(zhì)量產(chǎn)生一定的影響。視頻傳輸示意圖{I....P.....P. ... P.....P.....P. · · · I. · · · P. · · · P. · · · P. · · P. · · P. · · · P. · · · I. · · }。SendAVData 9001ettp-vl. O流數(shù)據(jù)指令解釋SendAVData—指令碼,發(fā)送流數(shù)據(jù),9001—是流會話id,ettp-vl. O-協(xié)議版本號,流數(shù)據(jù)一即為具體數(shù)據(jù)內(nèi)容。該指令的意思是,在會話ID =9001的流通道上發(fā)送具體流數(shù)據(jù)。圖4為本發(fā)明泛終端視頻傳輸方法流程圖。終端登錄服務(wù)器的過程這里不做描述,以下流程假設(shè)終端已經(jīng)正常登錄到該平臺,需要進行視頻傳輸。本發(fā)明的視頻傳輸方法包括步驟步驟1,終端向服務(wù)器發(fā)出建立會話請求指令=CreateSS 0x1000002ettp-vl. CKlink = lproc = udp dq = 240*320vc = h264 ac = aac br = 200>CR LF,其中0x1000002是終端自己ID, ettp-vl. O是協(xié)議版本號,link = I表示要求建立長連接,proc=udp表示優(yōu)先采用udp協(xié)議傳輸,dq = 240*320表示分辨率,vc = h264表示視頻編碼,ac = aac表示音頻編碼格式,br = 200是表示計劃碼流200bps。步驟2,服務(wù)器反饋應答包到終端CreateSSACK status-code (狀態(tài)碼)90001 (會話id) ettp-vl. O (協(xié)議版本)消息體CR LF,狀態(tài)碼0表示成功;其他表示失??;創(chuàng)建成功后生成一個會話ID 90001 ;步驟3,協(xié)議適配器接收到建立會話請求指令,解析后設(shè)置該連接屬性(例如,link = I長連接,proc = udp虛擬連接);協(xié)議適配器是終端與服務(wù)器的接口所在,提供多種協(xié)議與終端連接。具體采用哪種協(xié)議格式,通過終端的CreateSS指令的proc參數(shù)來確 定。 步驟3,協(xié)議適配器讀取終端協(xié)議屬性后將轉(zhuǎn)碼請求發(fā)送到動態(tài)轉(zhuǎn)碼器。協(xié)議適配器與動態(tài)轉(zhuǎn)碼器是采用tcp長連接方式進行通信的,采用自定義消息包,消息內(nèi)容包括格式vc = h264 (視頻編碼)ac = aac (音頻編碼)dq = 240*320 (分辨率)br = 200 (碼流)SSTrancer^Ts = new SSTrancer(struct SSInfo);Ts. init O ;Ts. Run O ;struct SSInfo{Vc—視頻編碼格式;Ac —首頻編碼格式;Dq-分辨率;Br—碼流大小;}步驟4,動態(tài)轉(zhuǎn)碼器將該指令轉(zhuǎn)發(fā)至流邏輯處理裝置進行如下邏輯處理動態(tài)轉(zhuǎn)碼器與流邏輯處理裝置采用tcp長連接方式進行連接,收到動態(tài)轉(zhuǎn)碼器的轉(zhuǎn)碼指令后初始化一個流實例,以便存儲動態(tài)轉(zhuǎn)碼器轉(zhuǎn)碼后的流數(shù)據(jù)。struct SSInfo{Vc—視頻編碼格式;Ac —首頻編碼格式;Dq—分辨率;Br—碼流大?。粆SStream*ss = new SStream (struct SSInfo) -J/ 新建流實例ss. InitO ;//初始化流實例ss. AcceptData(Ts) ;//接受數(shù)據(jù)流Ts轉(zhuǎn)碼后,輸出到ss流實例轉(zhuǎn)碼服務(wù)器向流邏輯處理裝置發(fā)送流數(shù)據(jù);Ts. SendAV(S Stream *ss);
      步驟5,由流邏輯處理裝置輸出音視頻流到終端。首先由服務(wù)器向終端發(fā)送開始傳輸視頻指令,該指令為=SendSS 90001 (會話id) ettp-vl. O (協(xié)議版本)消息體CR LF ;然后服務(wù)器開始傳輸視頻流數(shù)據(jù)SendAVData 9001 ettp-vl. O流數(shù)據(jù)。步驟6,保持會話(HoldSS)。終端向服務(wù)器發(fā)送以下消息,使得服務(wù)器端不會因為沒有收到終端的心跳包而中斷視頻傳輸。消息格式為HoldSS 90001(會話id)ettp-vl. O (協(xié)議版本)time = 100] CR LF。圖5為智能跳幀數(shù)據(jù)流向示意圖。圖6為圖6為本發(fā)明泛終端視頻傳輸過程中實現(xiàn)智能跳幀的具體流程圖。跳幀,是指在視頻傳輸過程中,服務(wù)器或者終端檢測到網(wǎng)絡(luò)傳輸質(zhì)量差,這時系統(tǒng)(可以是服務(wù)器也可以是終端)根據(jù)設(shè)定策略,進行跳幀邏輯處理。 利用本發(fā)明的泛終端視頻傳輸方法實現(xiàn)智能跳幀的流程包括步驟(服務(wù)器端自動執(zhí)行跳幀)服務(wù)器或者終端在視頻傳輸過程中檢測到網(wǎng)絡(luò)傳輸受阻,此時終端或者服務(wù)器發(fā)起跳幀請求;協(xié)議適配器開啟網(wǎng)絡(luò)測試功能,實時將測試數(shù)據(jù)上傳到業(yè)務(wù)邏輯處理裝置;業(yè)務(wù)邏輯處理裝置分析網(wǎng)速,決定對視頻進行丟幀處理;業(yè)務(wù)邏輯處理裝置發(fā)出丟中貞指令到動態(tài)轉(zhuǎn)碼器,消息如下StepFrame 90001ettp-vl. 0[step = 3CR LF,其中90001表示到終端的會話ID,step = 3表示2個I幀之間,最多保留3個P幀;動態(tài)轉(zhuǎn)碼器接受跳中貞請求并響應跳巾貞處理Ts_ > pause O ;//暫停轉(zhuǎn)碼,Ts- > StepFame (3) ;//轉(zhuǎn)碼器設(shè)置跳幀,Ts-> Run O ;//開始轉(zhuǎn)碼;在進行完跳幀處理之后,動態(tài)轉(zhuǎn)碼器發(fā)送流數(shù)據(jù)到流邏輯處理裝置Ts. SendAV(SStream^ss) ;//ss為創(chuàng)建會話完后,流媒體實例;流邏輯處理裝置發(fā)送流數(shù)據(jù)到終端SendAVData 9001ettp-vl. O流數(shù)據(jù)。目前在互聯(lián)網(wǎng)或者移動互聯(lián)網(wǎng),音視頻傳輸多為固定碼流進行傳輸,在網(wǎng)絡(luò)環(huán)境惡劣情況下,無法正常播放音視頻文件。本發(fā)明實現(xiàn)了智能視頻跳幀方法,使得媒體傳輸可以根據(jù)網(wǎng)絡(luò)傳輸情況,自動跳幀傳輸碼流或者實現(xiàn)跳幀的方式來適應當前網(wǎng)絡(luò)環(huán)境下媒體的傳輸。以上所述的具體實施例,對本發(fā)明的目的、技術(shù)方案和有益效果進行了進一步詳細說明,所應理解的是,以上所述僅為本發(fā)明的具體實施例而已,并不用于限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內(nèi)。
      權(quán)利要求
      1.一種泛終端視頻傳輸方法,該方法包括步驟 步驟I,終端向服務(wù)器發(fā)出建立會話請求指令,該指令包含由參數(shù)proc表示的終端適用的協(xié)議類型,該指令還包含終端的計劃碼流; 步驟2,服務(wù)器的協(xié)議適配器根據(jù)接收到的建立會話請求指令,解析后設(shè)置連接屬性,協(xié)議適配器是終端與服務(wù)器的接口所在,提供多種協(xié)議與終端連接,協(xié)議適配器根據(jù)所述proc參數(shù)來確定所采用的協(xié)議; 步驟3,協(xié)議適配器適配完終端后將轉(zhuǎn)碼需求發(fā)送到服務(wù)器的動態(tài)轉(zhuǎn)碼器進行轉(zhuǎn)碼處理,動態(tài)轉(zhuǎn)碼器根據(jù)終端類型,自動轉(zhuǎn)換編碼格式以適應不同的終端請求,經(jīng)過轉(zhuǎn)碼處理,動態(tài)轉(zhuǎn)碼器向服務(wù)器的流邏輯處理裝置發(fā)送流數(shù)據(jù); 步驟4,由流邏輯處理裝置輸出音視頻流到終端, 其中在音視頻流傳輸過程中,服務(wù)器的業(yè)務(wù)邏輯處理裝置根據(jù)接收的網(wǎng)絡(luò)功能測試結(jié)果,如果決定對視頻進行跳幀處理,則發(fā)出跳幀指令到動態(tài)轉(zhuǎn)碼器,動態(tài)轉(zhuǎn)碼器根據(jù)跳幀指令進行跳幀處理,處理完之后發(fā)送流數(shù)據(jù)到流邏輯處理裝置,流邏輯處理裝置發(fā)送流數(shù)據(jù)到終端。
      2.根據(jù)權(quán)利要求I所述的方法,其特征在于,在當服務(wù)器需要獲取終端平臺信息時,業(yè)務(wù)邏輯處理裝置還用于生成一條測試終端平臺指令,發(fā)送到終端,終端對請求作出應對,反饋自身平臺信息到服務(wù)器。
      3.根據(jù)權(quán)利要求2所述的方法,其特征在于,業(yè)務(wù)邏輯處理裝置具有測試解碼的功能,用于獲取終端解碼能力。
      4.根據(jù)權(quán)利要求3所述的方法,其特征在于,服務(wù)器與終端建立會話時,終端請求服務(wù)器建立流媒體通道連接,服務(wù)器建立會話后,將應答消息下發(fā)給終端,應答消息包括消息體,當服務(wù)器應答消息體為空時,表示已經(jīng)滿足請求中的所有要求。
      5.根據(jù)權(quán)利要求4所述的方法,其特征在于,終端在接受流數(shù)據(jù)期間,會每隔一定時間向服務(wù)器發(fā)送心跳,告訴服務(wù)器終端還在活動狀態(tài)中,如果在指定時間內(nèi)沒有收到終端的心跳包,服務(wù)器會主動斷開與終端的會話。
      6.一種泛終端視頻傳輸系統(tǒng),該系統(tǒng)包括服務(wù)器和終端,其特征在于,服務(wù)器進一步包括 流邏輯處理裝置,用于響應終端的媒體獲取請求,對視頻進行分發(fā)處理; 動態(tài)轉(zhuǎn)碼器,用于根據(jù)終端類型,自動轉(zhuǎn)換編碼格式以適應不同的終端請求; 協(xié)議適配器,用于根據(jù)用戶配置,決定底層傳輸協(xié)議,并且用于測試網(wǎng)絡(luò)功能,并將測試結(jié)果反饋給業(yè)務(wù)邏輯處理裝置; 業(yè)務(wù)邏輯處理裝置,用于根據(jù)接收的網(wǎng)絡(luò)功能測試結(jié)果,如果決定對視頻進行跳幀處理,則發(fā)出跳幀指令到動態(tài)轉(zhuǎn)碼器, 其中動態(tài)轉(zhuǎn)碼器進行跳幀處理,處理完之后發(fā)送流數(shù)據(jù)到流邏輯處理裝置,流邏輯處理裝置發(fā)送流數(shù)據(jù)到終端。
      7.根據(jù)權(quán)利要求6所述的系統(tǒng),其特征在于,在當服務(wù)器需要獲取終端平臺信息時,業(yè)務(wù)邏輯處理裝置還用于生成一條測試終端平臺指令,發(fā)送到終端,終端對請求作出應對,反饋自身平臺信息到服務(wù)器。
      8.根據(jù)權(quán)利要求7所述的系統(tǒng),其特征在于,業(yè)務(wù)邏輯處理裝置具有測試解碼的功能,用于獲取終端解碼能力。
      9.根據(jù)權(quán)利要求8所述的系統(tǒng),其特征在于,服務(wù)器與終端建立會話時,終端請求服務(wù)器建立流媒體通道連接,服務(wù)器建立會話后,將應答消息下發(fā)給終端,應答消息包括消息體,當服務(wù)器應答消息體為空時,表示已經(jīng)滿足請求中的所有要求。
      10.根據(jù)權(quán)利要求9所述的系統(tǒng),其特征在于,終端在接受流數(shù)據(jù)期間,會每隔一定時間向服務(wù)器發(fā)送心跳,告訴服務(wù)器終端還在活動狀態(tài)中,如果在指定時間內(nèi)沒有收到終端的心跳包,服務(wù)器會主動斷開與終端的會話。
      全文摘要
      本發(fā)明公開了一種泛終端視頻傳輸系統(tǒng),該系統(tǒng)包括服務(wù)器和終端,其特征在于,服務(wù)器進一步包括流邏輯處理裝置,用于響應終端的媒體獲取請求,對視頻進行分發(fā)處理;動態(tài)轉(zhuǎn)碼器,用于根據(jù)終端類型,自動轉(zhuǎn)換編碼格式以適應不同的終端請求;協(xié)議適配器,用于根據(jù)用戶配置,決定底層傳輸協(xié)議,并且用于測試網(wǎng)絡(luò)功能,并將測試結(jié)果反饋給業(yè)務(wù)邏輯處理裝置;業(yè)務(wù)邏輯處理裝置,用于根據(jù)接收的網(wǎng)絡(luò)功能測試結(jié)果,如果決定對視頻進行跳幀處理,則發(fā)出跳幀指令到動態(tài)轉(zhuǎn)碼器,其中動態(tài)轉(zhuǎn)碼器進行跳幀處理,處理完之后發(fā)送流數(shù)據(jù)到流邏輯處理裝置,流邏輯處理裝置發(fā)送流數(shù)據(jù)到終端。
      文檔編號H04N21/2381GK102833585SQ20121030414
      公開日2012年12月19日 申請日期2012年8月24日 優(yōu)先權(quán)日2012年8月24日
      發(fā)明者潘文昌 申請人:深圳市中青合創(chuàng)傳媒科技有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1