国产精品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>

      一種在互聯(lián)網(wǎng)發(fā)布和直播流媒體的系統(tǒng)的制作方法

      文檔序號(hào):7872737閱讀:157來源:國知局
      專利名稱:一種在互聯(lián)網(wǎng)發(fā)布和直播流媒體的系統(tǒng)的制作方法
      技術(shù)領(lǐng)域
      本實(shí)用新型涉及網(wǎng)絡(luò)技術(shù)領(lǐng)域,尤其涉及一種互聯(lián)網(wǎng)流媒體的發(fā)布和直播技術(shù)。
      背景技術(shù)
      互聯(lián)網(wǎng)流媒體技術(shù)是采用流式傳輸?shù)姆绞皆诨ヂ?lián)網(wǎng)上傳輸多媒體文件,把連續(xù)的音視頻等多媒體信息經(jīng)過壓縮處理后存儲(chǔ)于網(wǎng)絡(luò)媒體服務(wù)器,供互聯(lián)網(wǎng)客戶端在下載的同時(shí)回放,而無需等待全部多媒體文件下載完成。實(shí)時(shí)流媒體直播是在采集音視頻信息的同時(shí),使用流媒體技術(shù)發(fā)布和傳輸正在采集的媒體信息,使客戶端能夠通過互聯(lián)網(wǎng)低延時(shí)地回放正在采集的媒體信息。現(xiàn)有技術(shù)的互聯(lián)網(wǎng)流媒體實(shí)時(shí)直播的實(shí)現(xiàn)主要包括如下環(huán)節(jié)采集和編碼(Encode):采集音視頻信息,采用具體編碼算法,對音頻和視頻信息進(jìn)行壓縮;多路合并(Muxing):采用具體容器格式,將編碼后的音視頻信息合并于具體的流媒體文件容器;發(fā)布(Publish):采用具體傳輸和控制協(xié)議,將文件流式傳輸于網(wǎng)絡(luò)媒體服務(wù)器;交付(Delivery):采用具體傳輸和控制協(xié)議,客戶端下載網(wǎng)絡(luò)媒體服務(wù)器的流媒體;回放(Playback):客戶端根據(jù)流媒體的文件容器格式和音視頻信息的編碼算法進(jìn)行解碼(Demuxing和Decode)并還原呈現(xiàn)所采集的音視頻信息。現(xiàn)有技術(shù)在互聯(lián)網(wǎng),尤其是移動(dòng)互聯(lián)網(wǎng),流媒體實(shí)時(shí)直播的各個(gè)環(huán)節(jié)所廣泛采用的技術(shù)、標(biāo)準(zhǔn)和方案如下音頻編碼方式有AMR、AAC、MP3、Vorbis等;視頻編碼方式有MPEG-2、MPEG-4、H. 263、H. 264、VP6/8 等;文件容器包括MP4、3GPP、FLV、ASF、WebM、MPEG_TS等;流媒體發(fā)布所采用的方式完全依賴于流媒體服務(wù)器的實(shí)現(xiàn),依據(jù)不同的流媒體服務(wù)器實(shí)現(xiàn),可能采用的協(xié)議有RTP、RTMP、或私有協(xié)議;流媒體交付所廣泛采用的協(xié)議有RTP/RTSP, RTMP、MMS等;客戶端回放采用各類媒體播放器實(shí)現(xiàn),如Flash Player, HTML5所支持的瀏覽器內(nèi)置播放器、iPhone/iPad和Android等移動(dòng)平臺(tái)內(nèi)置播放器及其他播放器應(yīng)用程序?,F(xiàn)有技術(shù)中RTP協(xié)議采用UDP傳輸,涉及防火墻穿越等復(fù)雜性;RTMP協(xié)議是Adobe公司實(shí)用新型的基于TCP傳輸?shù)牡脱訒r(shí)協(xié)議,默認(rèn)端口為1935,而且其協(xié)議實(shí)現(xiàn)細(xì)節(jié)并沒有公開,因此完全依賴于其服務(wù)器和客戶端實(shí)現(xiàn);同樣,MMS依賴于微軟的媒體服務(wù)器和客戶端實(shí)現(xiàn),采用M)P/TCP傳輸,默認(rèn)端口為1755,同樣涉及防火墻穿越的復(fù)雜性。以上這些交付協(xié)議在保證QoS (服務(wù)質(zhì)量)時(shí),均需采用較為復(fù)雜的控制協(xié)議,需要專有的流媒體服務(wù)器實(shí)現(xiàn),以提供服務(wù)。因此,針對現(xiàn)有技術(shù)的不足,蘋果等公司又提出了一些基于HTTP協(xié)議的流媒體交付協(xié)議如,Http Live Streaming (請參照圖 l)、Http Dynamic Streaming 等?;?HTTP協(xié)議的流媒體交付協(xié)議在交付媒體內(nèi)容時(shí),只依賴于普通的HTTP服務(wù)器,使用80端口,不涉及防火墻穿越的復(fù)雜性,同時(shí)可以采用HTTP協(xié)議族所支持的加密或證書等安全措施。其中相比采用了更多私有實(shí)現(xiàn)方式的Http Dynamic Streaming, Http Live Streaming的方案更為簡潔,目前在iPhone/iPad和Android 4.0以上的移動(dòng)客戶端都有內(nèi)置播放器的支持,并且有越來越多的播放器開始支持這一協(xié)議。Http Live Streaming提供了最為簡潔和優(yōu)雅的,基于HTTP的流媒體交付方案。Http Live Streaming是由蘋果公司提出并實(shí)現(xiàn)的基于HTTP的流媒體通信協(xié)議。該協(xié)議將整個(gè)媒體流分成一組連續(xù)的可供HTTP下載的小文件分段,分段以MPEG-TS容器格式承載,滿足播放器流式回放的要求;同時(shí)提供以m3u8為標(biāo)準(zhǔn)格式的索引,作為這一組分段的索引??蛻舳送ㄟ^HTTP服務(wù)器請求m3u8播放列表,根據(jù)列表中的索引,依次下載分段。在下載完一個(gè)分段后,客戶端即可邊下載后續(xù)分段,邊進(jìn)行播放。通常每個(gè)分段定位為承載10秒的音視頻媒體,可以保證在客戶端播放的連續(xù)性及合理的資源開銷,并能夠保持延時(shí)在30秒左右。另外,服務(wù)器可以根據(jù)不同的網(wǎng)絡(luò)速率提供可選的不同速率的分段組,以適應(yīng)不同網(wǎng)絡(luò)速率的要求。播放列表可以在提供訪問的同時(shí)不斷進(jìn)行更新,以實(shí)現(xiàn)實(shí)時(shí)直播。由于Http Live Streaming僅使用標(biāo)準(zhǔn)Http協(xié)議,因此與RTP不同,具備穿越防火墻和代理服務(wù)器的能力;同時(shí)能夠滿足⑶N (Content Delivery Network)部署的需求。Http Live Streaming系統(tǒng)由服務(wù)器端的分段程序、HTTP服務(wù)器和客戶端組成(參見附圖1)。服務(wù)器分段程序負(fù)責(zé)將已錄制好的流媒體文件或?qū)崟r(shí)媒體流進(jìn)行分段,并生成播放列表;HTTP服務(wù)器為播放列表和分段文件提供HTTP請求服務(wù);客戶端通過HTTP請求獲取播放列表和流媒體分段文件進(jìn)行回放。但是,Http Live Streaming并沒有定義和提供由媒體采集端向服務(wù)器實(shí)時(shí)發(fā)布流媒體的方法和系統(tǒng)。因此各種Http Live Streaming的發(fā)布仍然依賴于流媒體服務(wù)的具體實(shí)現(xiàn),采用基于RTP、RTMP或私有協(xié)議的方式支持從采集端向媒體服務(wù)器實(shí)時(shí)發(fā)布流媒體。由此可見,Http Live Streaming還存在以下兩個(gè)缺陷1.完全依賴于特定流媒體服務(wù)器的實(shí)現(xiàn),及其所提供的客戶端發(fā)布接口。對特定流媒體服務(wù)的引入破壞了 Http Live Streaming方案本身的簡潔和優(yōu)雅;依賴于具體客戶端發(fā)布接口,造成采集端的實(shí)現(xiàn)和集成的復(fù)雜性;
      2.在采用依賴于RTP/RTSP流媒體通信協(xié)議的發(fā)布方案時(shí),其控制協(xié)議實(shí)現(xiàn)復(fù)雜,造成采集端和服務(wù)器端的實(shí)現(xiàn)和集成均具有復(fù)雜性,容錯(cuò)能力有限,系統(tǒng)不穩(wěn)定。

      實(shí)用新型內(nèi)容針對上述現(xiàn)有技術(shù)的不足,本實(shí)用新型提供一種延時(shí)、健壯性、容錯(cuò)性好且能夠簡單地與采集端和客戶端集成的完全基于HTTP協(xié)議體系的在互聯(lián)網(wǎng)發(fā)布和直播流媒體的方法及系統(tǒng)。本實(shí)用新型解決其技術(shù)問題所采用的技術(shù)方案是一種在互聯(lián)網(wǎng)發(fā)布和直播流媒體的系統(tǒng),包括服務(wù)器端和播放客戶端,其特征在于還包括發(fā)布客戶端,用于實(shí)時(shí)讀取和解析正在輸出的多媒體文件,重新以設(shè)定的格式進(jìn)行媒體流的合并,并按預(yù)設(shè)的流媒體數(shù)據(jù)分塊時(shí)間生成流媒體數(shù)據(jù)分塊,然后以HTTP方法上傳至所述服務(wù)器;所述服務(wù)器端用于處理來自發(fā)布客戶端的流媒體數(shù)據(jù)分塊,儲(chǔ)存流媒體數(shù)據(jù)分塊并根據(jù)預(yù)設(shè)的流媒體數(shù)據(jù)分段時(shí)間構(gòu)建流媒體數(shù)據(jù)分段文件;同時(shí),服務(wù)器端生成對應(yīng)流媒體數(shù)據(jù)分段文件順序和儲(chǔ)存位置的索引;[0017]所述播放客戶端使用HTTP方法從服務(wù)器端獲取所述索引,然后根據(jù)所述索引下載流媒體分段并同時(shí)對流媒體分段進(jìn)行播放。優(yōu)選的,所述的在互聯(lián)網(wǎng)發(fā)布和直播流媒體的系統(tǒng)還包括媒體采集端,用于采集并生成媒體數(shù)據(jù)并把媒體數(shù)據(jù)傳遞至所述發(fā)布客戶端。優(yōu)選的,所述發(fā)布客戶端包括媒體輸入模塊、發(fā)布客戶端音頻編碼模塊、發(fā)布客戶端視頻編碼模塊、發(fā)布客戶端流媒體處理模塊和發(fā)布模塊;所述媒體輸入模塊讀取音頻流和/或視頻流數(shù)據(jù)并把該音頻流和/或視頻流數(shù)據(jù)傳輸至所述發(fā)布客戶端流媒體處理模塊;所述發(fā)布客戶端流媒體處理模塊調(diào)用發(fā)布客戶端音頻編碼模塊和/或發(fā)布客戶端視頻編碼模塊對音頻流和/或視頻流數(shù)據(jù)重新編碼并根據(jù)設(shè)定的格式進(jìn)行媒體流的合并,并按預(yù)設(shè)的流媒體數(shù)據(jù)分塊時(shí)間生成流媒體數(shù)據(jù)分塊。優(yōu)選的,所述服務(wù)器端包括網(wǎng)頁服務(wù)模塊、服務(wù)器流媒體處理模塊和服務(wù)器儲(chǔ)存模塊,發(fā)布客戶端使用HTTP方法與網(wǎng)頁服務(wù)模塊交互并上傳所述流媒體分塊;服務(wù)器流媒體處理模塊根據(jù)設(shè)定的流媒體分段時(shí)間合并所述流媒體分塊為流媒體分段并生成對應(yīng)流媒體數(shù)據(jù)分段文件順序和儲(chǔ)存位置的索引,分別儲(chǔ)存至服務(wù)器儲(chǔ)存模塊。優(yōu)選的,所述播放客戶端包括交付模塊、播放客戶端流媒體處理模塊、播放客戶端音頻編碼模塊、播放客戶端視頻編碼模塊和播放模塊;所述交付模塊使用HTTP方法與所述服務(wù)器端交互并根據(jù)索引從服務(wù)器端下載流媒體分段文件,播放客戶端流媒體處理模塊對流媒體進(jìn)行分解獲取音頻流和/或視頻流,播放客戶端流媒體處理模塊調(diào)用播放客戶端音頻編碼模塊和/或播放客戶端視頻編碼模塊對音頻流和/或視頻流所述進(jìn)行解碼并通過播放模塊進(jìn)行播放。優(yōu)選的,所述媒體采集端包括媒體采集模塊、媒體處理模塊、采集端音頻編碼模塊和/或采集端視頻編碼模塊,所述的媒體處理模塊調(diào)用所述的采集端音頻編碼模塊和/或采集端視頻編碼模塊生成特定格式的媒體文件。
      `[0023]優(yōu)選的,所述的采集端集成于所述的發(fā)布客戶端中。優(yōu)選的,所述的服務(wù)器儲(chǔ)存模塊為分布式存儲(chǔ)系統(tǒng)。與現(xiàn)有技術(shù)相比較,本實(shí)用新型的在互聯(lián)網(wǎng)發(fā)布和直播流媒體的方法及系統(tǒng)具有如下有益技術(shù)效果完全基于HTTP協(xié)議體系,不依賴于專有的流媒體服務(wù)器實(shí)現(xiàn),服務(wù)器端只需要HTTP服務(wù)器作為發(fā)布的目標(biāo)和直播服務(wù)的提供方;能夠低耦合、非侵入、簡單的與采集端應(yīng)用集成;易于在各種終端平臺(tái)上實(shí)現(xiàn),如iPhone/iPad、Android、Windows、Linux等終端平臺(tái);滿足流媒體在線實(shí)時(shí)直播的延時(shí)低、健壯性好、容錯(cuò)性好等需求;能夠支持在互聯(lián)網(wǎng)大規(guī)模部署、支持CDN部署方式、具備可伸縮性;具備穿越防火墻和代理服務(wù)器的能力。

      圖1為現(xiàn)有互聯(lián)網(wǎng)流媒體實(shí)時(shí)直播系統(tǒng)的結(jié)構(gòu)圖;圖2為本實(shí)用新型在互聯(lián)網(wǎng)發(fā)布和直播流媒體的方法的流程圖;圖3為本實(shí)用新型在互聯(lián)網(wǎng)發(fā)布和直播流媒體的系統(tǒng)結(jié)構(gòu)圖;圖4為本實(shí)用新型的發(fā)布客戶端與服務(wù)器通信的時(shí)序圖;圖5為本實(shí)用新型的發(fā)布客戶端與服務(wù)器端交互的軟件流程圖。
      具體實(shí)施方式
      下面將結(jié)合附圖和具體實(shí)施方式
      對本實(shí)用新型做進(jìn)一步說明。請參照圖3,本實(shí)用新型在互聯(lián)網(wǎng)發(fā)布和直播流媒體的系統(tǒng),包括發(fā)布客戶端1、服務(wù)器端2和播放客戶端3 ;發(fā)布客戶端1,用于實(shí)時(shí)讀取和解析正在輸出的多媒體文件,重新以設(shè)定的格式進(jìn)行媒體流的合并,并按預(yù)設(shè)的流媒體數(shù)據(jù)分塊時(shí)間生成流媒體數(shù)據(jù)分塊,然后以HTTP方法上傳至所述服務(wù)器2 ;發(fā)布客戶端I包括媒體輸入模塊11、發(fā)布客戶端音頻編碼模塊12、發(fā)布客戶端視頻編碼模塊13、發(fā)布客戶端流媒體處理模塊14和發(fā)布模塊15 ;所述媒體輸入模塊11讀取音頻流和/或視頻流數(shù)據(jù)并把該音頻流和/或視頻流數(shù)據(jù)傳輸至所述發(fā)布客戶端流媒體處理模塊14 ;所述發(fā)布客戶端流媒體處理模塊14調(diào)用發(fā)布客戶端音頻編碼模塊12和/或發(fā)布客戶端視頻編碼模塊13對音頻流和/或視頻流數(shù)據(jù)重新編碼并根據(jù)設(shè)定的格式進(jìn)行媒體流的合并,并按預(yù)設(shè)的流媒體數(shù)據(jù)分塊時(shí)間生成流媒體數(shù)據(jù)分塊。所述媒體輸入模塊11的音頻流數(shù)據(jù)輸出端與所述發(fā)布客戶端流媒體處理模塊14的音頻流數(shù)據(jù)輸入端連接,所述媒體輸入模塊11的視頻流數(shù)據(jù)輸出端與所述發(fā)布客戶端流媒體處理模塊14的視頻流數(shù)據(jù)輸入端連接,所述發(fā)布客戶端流媒體處理模塊14的流媒體分塊輸出端與所述發(fā)布模塊15的流媒體分塊輸入端連接。所述服務(wù)器端2用于處理來自發(fā)布客戶端I的流媒體數(shù)據(jù)分塊,儲(chǔ)存流媒體數(shù)據(jù)分塊并根據(jù)預(yù)設(shè)的流媒體數(shù)據(jù)分段時(shí)間構(gòu)建流媒體數(shù)據(jù)分段文件;同時(shí),服務(wù)器端生成對應(yīng)流媒體數(shù)據(jù)分段文件順序和儲(chǔ)存位置的索引;服務(wù)器端2包括網(wǎng)頁服務(wù)模塊21、服務(wù)器流媒體處理模塊22和服務(wù)器儲(chǔ)存模塊23,發(fā)布客戶端I使用HTTP方法與網(wǎng)頁服務(wù)模塊21交互并上傳所述流媒體分塊;服務(wù)器流媒體處理模塊22根據(jù)設(shè)定的流媒體分段時(shí)間合并所述流媒體分塊為流媒體分段并生成對應(yīng)流媒體數(shù)據(jù)分段文件順序和儲(chǔ)存位置的索引,分別儲(chǔ)存至服務(wù)器儲(chǔ)存模塊23。所述網(wǎng)頁服務(wù)模塊21的流媒體分塊輸出端與所述服務(wù)器流媒體處理模塊22的流媒體分塊輸入端連接,所述服務(wù)器流媒體處理模塊22的流媒體分段輸出端與所述服務(wù)器儲(chǔ)存模 塊23的輸入端連接,所述服務(wù)器儲(chǔ)存模塊23的流媒體分段輸出端與所述網(wǎng)頁服務(wù)模塊21的流媒體分段輸入端連接。所述播放客戶端3使用HTTP方法從服務(wù)器端2獲取所述索引,然后根據(jù)所述索引下載流媒體分段并同時(shí)對流媒體分段進(jìn)行播放;播放客戶端3包括交付模塊31、播放客戶端流媒體處理模塊32、播放客戶端音頻編碼模塊33、播放客戶端視頻編碼模塊34和播放模塊35 ;所述交付模塊31使用HTTP方法與所述服務(wù)器端2交互并根據(jù)索引從服務(wù)器端2下載流媒體分段文件,播放客戶端流媒體處理模塊32對流媒體進(jìn)行分解獲取音頻流和/或視頻流,播放客戶端流媒體處理模塊32調(diào)用播放客戶端音頻編碼模塊33和/或播放客戶端視頻編碼模塊34對音頻流和/或視頻流所述進(jìn)行解碼并通過播放模塊35進(jìn)行播放。所述交付模塊31的流媒體分段輸出端與所述播放客戶端流媒體處理模塊32的流媒體分段輸入端連接,所述播放客戶端流媒體處理模塊32的音頻流數(shù)據(jù)輸出端與所述播放模塊35的音頻流數(shù)據(jù)輸入端連接,所述播放客戶端流媒體處理模塊32的視頻流數(shù)據(jù)輸出端與所述播放模塊35的視頻流數(shù)據(jù)輸入端連接。上述系統(tǒng)中,媒體輸入模塊11、發(fā)布客戶端音頻編碼模塊12、發(fā)布客戶端視頻編碼模塊13、發(fā)布客戶端流媒體處理模塊14和發(fā)布模塊15、網(wǎng)頁服務(wù)模塊21、服務(wù)器流媒體處理模塊22、服務(wù)器儲(chǔ)存模塊23、交付模塊31、播放客戶端流媒體處理模塊32、播放客戶端音頻編碼模塊33、播放客戶端視頻編碼模塊34和播放模塊35均可以是硬件模塊或軟件模塊。上述系統(tǒng)還可以靈活跟采集設(shè)備整合所述的系統(tǒng)還包括還包括媒體采集端4,用于采集并生成媒體數(shù)據(jù)并把媒體數(shù)據(jù)傳遞至所述發(fā)布客戶端1,所述媒體采集端4包括媒體采集模塊41、媒體處理模塊42 ;媒體采集端4還包括相應(yīng)的采集端音頻編碼模塊43和/或采集端視頻編碼模塊44,所述的媒體處理模塊42調(diào)用上述采集端音頻編碼模塊43和/或采集端視頻編碼模塊44生成特定格式的媒體文件,如3gpp、mp4、mov等;媒體處理模塊42在輸出媒體文件時(shí)可以是在生成完整的媒體文件之后直接輸出整個(gè)媒體文件,也可以將完整的媒體文件按照特定的時(shí)間分段后進(jìn)行傳輸;更優(yōu)的,所述媒體處理模塊42在生成部分媒體文件分段之后實(shí)時(shí)輸出媒體文件分段。采集端4可以是單獨(dú)的硬件模塊,也可以是直接集成在發(fā)布客戶端I內(nèi)部的軟件或硬件模塊。采集端4輸出的媒體文件寫入采集客戶端I本地Socket或?qū)懭牍艿阑驅(qū)懭牍蚕韮?nèi) 存或調(diào)用媒體輸入模塊11接入端口函數(shù)后,由所述的媒體輸入模塊11讀取。在實(shí)際實(shí)施過程中發(fā)布客戶端I的發(fā)布客戶端流媒體處理模塊14會(huì)重新以MPEG-TS容器格式進(jìn)行媒體流的合并,并按Is的時(shí)間窗口生成流媒體分塊。發(fā)布客戶端I的發(fā)布模塊15可以根據(jù)預(yù)定義規(guī)則生成或者請求網(wǎng)頁服務(wù)器獲取上傳URL地址;發(fā)布模塊通過附加URL參數(shù)或HTTP請求頭部信息,聲明所發(fā)布流媒體分段的開始和結(jié)束,以及上傳流媒體分塊的序號(hào)等附加描述信息;URL代表一個(gè)流媒體資源的位置,包括所發(fā)布流媒體在指定存儲(chǔ)位置的路徑和名字。網(wǎng)頁服務(wù)模塊21根據(jù)發(fā)布模塊15的請求的處理狀態(tài),返回HTTP響應(yīng),響應(yīng)以HTTP狀態(tài)碼表示處理狀態(tài),例如成功(200 )、拒絕訪問(403/405 )、服務(wù)器錯(cuò)誤(500 )等。服務(wù)器流媒體處理模塊22會(huì)按照IOs的時(shí)間窗口生成流媒體分段,并依據(jù)HttpLive Streaming協(xié)議產(chǎn)生索引。服務(wù)器儲(chǔ)存模塊23除文件系統(tǒng)外,也可以其他采用分布式存儲(chǔ)系統(tǒng),如MongoDB\Redis等,從而滿足提供直播的服務(wù)器端分布式部署需求;同時(shí),可以將存儲(chǔ)的流媒體分段文件和索引同步至DCN,采用DCN方案提供系統(tǒng)的伸縮性和擴(kuò)展性。發(fā)布客戶端和播放客戶端對于HTTP服務(wù)器的訪問,可以采用HTTP協(xié)議標(biāo)準(zhǔn)的安全措施進(jìn)行寫入保護(hù),例如基本訪問認(rèn)證(Basic Access Authentication)、摘要訪問認(rèn)證(Digest Access Authentication)和 HTTPS 等。請參照圖3,以下描述本實(shí)用新型系統(tǒng)的具體硬件實(shí)施方式發(fā)布客戶端I為具體的計(jì)算機(jī)終端或移動(dòng)終端平臺(tái),使用的操作系統(tǒng)可以是ios>Android>Windows或Linux ;該發(fā)布客戶端I包括媒體采集模塊41、媒體處理模塊42、采集端音頻編碼模塊43、采集端視頻編碼模塊44、媒體輸入模塊11、發(fā)布客戶端音頻編碼模塊12、發(fā)布客戶端視頻編碼模塊13、發(fā)布客戶端流媒體處理模塊14和發(fā)布模塊15。所述采集模塊41為攝像頭、麥克風(fēng)以及兩者相應(yīng)的控制程序;所述媒體處理模塊42、采集端音頻編碼模塊43和采集端視頻編碼模塊44集成為一個(gè)攝像應(yīng)用程序;所述媒體輸入模塊11、發(fā)布客戶端音頻編碼模塊12、發(fā)布客戶端視頻編碼模塊13、發(fā)布客戶端流媒體處理模塊14和發(fā)布模塊15集成為一個(gè)發(fā)布客戶端程序。服務(wù)器端2為服務(wù)器電腦,包括網(wǎng)頁服務(wù)模塊21、服務(wù)器流媒體處理模塊22和服務(wù)器儲(chǔ)存模塊23 ;所述網(wǎng)頁服務(wù)模塊21為提供HTTP服務(wù)的HTTP服務(wù)器軟件,如Apache、Lighttpd, Nginx等軟件;所述服務(wù)器流媒體處理模塊22為根據(jù)具體網(wǎng)頁服務(wù)模塊21的HTTP實(shí)現(xiàn)方法編寫的流媒體處理插件;所述的服務(wù)器儲(chǔ)存模塊23為分布式存儲(chǔ)系統(tǒng)。播放客戶端3為體的計(jì)算機(jī)終端或移動(dòng)終端平臺(tái),使用的操作系統(tǒng)可以是ios、Android、Windows或Linux ;所述播放客戶端3包括交付模塊31、播放客戶端流媒體處理模塊32、播放客戶端音頻編碼模塊33、播放客戶端視頻編碼模塊34和播放模塊35 ;所述交付模塊31為網(wǎng)頁瀏覽器;所述播放客戶端流媒體處理模塊32、播放客戶端音頻編碼模塊33、播放客戶端視頻編碼模塊34和播放模塊35集成為播放器軟件,包括HTML5瀏覽器內(nèi)置播放器、iPad/iPhone和Android等移動(dòng)終端平臺(tái)內(nèi)置播放器、Flash Player及其他基于Windows或Linux個(gè)人終端平臺(tái)的流媒體播放器應(yīng)用?;诒緦?shí)用新型的上述軟硬件系統(tǒng),本實(shí)用新型在互聯(lián)網(wǎng)發(fā)布和直播流媒體的方法(如圖2和圖5所示)包括如下過程1.攝像應(yīng)用程序生成并輸出多媒體文件(或?qū)懭氡镜豐ocket、管道、共享內(nèi)存等,或調(diào)用流媒體發(fā)布客戶端接口函數(shù));i1.發(fā)布客戶端程序讀取多媒體文件(或讀取本地Socket、管道、共享內(nèi)存等);ii1.發(fā)布客戶端程序解析多媒體文件,分別獲取音頻流和視頻流數(shù)據(jù);iv.發(fā)布客戶端程序根據(jù)MPEG-TS容器格式重新進(jìn)行合并成為流媒體數(shù)據(jù);V.發(fā)布客戶端程序依據(jù)傳輸時(shí)間窗口設(shè)置,對合并的流媒體數(shù)據(jù)進(jìn)行分塊,產(chǎn)生流媒體數(shù)據(jù)分塊;v1.發(fā)布客戶端程序使用HTTP方法請求服務(wù)器電腦儲(chǔ)存流媒體數(shù)據(jù)分塊,以HTTP服務(wù)器軟件指定的URL將流媒體數(shù)據(jù)分塊上傳至服務(wù)器電腦;vi1. HTTP服務(wù)器軟件收到流媒體發(fā)布客戶端的HTTP請求后,調(diào)用流媒體處理插件對該HTTP請求進(jìn)行處理;vii1.流媒體處理插件根據(jù)服務(wù)器配置信息,如存儲(chǔ)位置、流媒體數(shù)據(jù)分段時(shí)長等,合并流媒體數(shù)據(jù)分塊為流媒體數(shù)據(jù)分段,并在分布式存儲(chǔ)系統(tǒng)中指定的存儲(chǔ)位置寫入流媒體數(shù)據(jù)分段,同時(shí)生成對應(yīng)流媒體數(shù)據(jù)分段文件順序和儲(chǔ)存位置的索引;ix. HTTP服務(wù)器軟件對發(fā)布客戶端程序請求的處理狀態(tài),返回HTTP響應(yīng),響應(yīng)以HTTP狀態(tài)碼表示處理狀態(tài),例如成功(200)、拒絕訪問(403/405)、服務(wù)器錯(cuò)誤(500)等;X.播放客戶端網(wǎng)頁瀏覽器訪問HTTP服務(wù)器軟件,并根據(jù)指定URL請求索引,播放器根據(jù)索引下載流媒體數(shù)據(jù)分段,并在下載的同時(shí)播放流媒體數(shù)據(jù)分段文件所包含的音視頻媒體流。圖4是本實(shí)用新型的發(fā)布客戶端與服務(wù)器通信的時(shí)序圖,其過程描述如下發(fā)布客戶端配置流媒體分段時(shí)長為10秒,流媒體分塊時(shí)長為I秒;URL編寫方案設(shè)計(jì)為http://{domain_name}/path/name ;HTTP請求URL參數(shù)部分或頭部可以附加如下描述信息[0063]開始流 URL http: // {domain_name} /path/name command=start 結(jié)束流 URL http: // {domain_name} /path/name command=stop&segment=n&chunk=m,表示最后上傳的流媒體分塊是第η個(gè)流媒體分段的第m秒分塊;傳輸流 URL http://{domain_name}/path/name command=trans&segment=n&chunk=m,表示當(dāng)前上傳的流媒體分塊是第η個(gè)流媒體分段的第m秒分塊;當(dāng)η等于O是,表示上傳第一個(gè)流媒體分段;當(dāng)m等于O時(shí),表示上傳該流媒體分段的第一個(gè)分塊,當(dāng)m等于9時(shí),表不上傳該流媒體分段的最后一個(gè)分塊;服務(wù)器端流媒體處理模塊讀取配置文件,獲取服務(wù)器儲(chǔ)存模塊存儲(chǔ)位置的根目錄,例如/{root_dir};流媒體處理模塊解析請求URL獲取URL中的path和name ;流媒體處理模塊解析請求URL獲取URL參數(shù)并讀取請求當(dāng)command=start時(shí),在/{root_dir}/path創(chuàng)建name. m3u8索引文件,并寫入文件頭;當(dāng)command=trans&segment=n&chunk=m 時(shí),在 / {root_dir} /path 將請求體數(shù)據(jù)寫入文件name-n. ts,如果m=9時(shí),在name. m3u8中加入第η個(gè)流媒體分段文件的索引;當(dāng)command=stop&segment=n&chunk=m時(shí),在name. m3u8寫入文件結(jié)束標(biāo)記,如果m不等于9時(shí),在寫文件結(jié)束標(biāo)記前寫入最后一個(gè)流媒體分段文件的索引。在寫入成功時(shí),通過網(wǎng)頁服務(wù)模塊返回HTTP 200響應(yīng);寫入失敗時(shí),通過網(wǎng)頁服務(wù)模塊返回HTTP 500響應(yīng);授權(quán)失敗時(shí),通過網(wǎng)頁服務(wù)模塊返回HTTP 403響應(yīng);非PUT方法時(shí),通過網(wǎng)頁服務(wù)模塊返回HTTP 405響應(yīng)。與現(xiàn)有技術(shù)相比較,本實(shí)用新型的在互聯(lián)網(wǎng)發(fā)布和直播流媒體的方法及系統(tǒng)具有如下有益技術(shù)效果完全基于HTTP協(xié)議體系,不依賴于專有的流媒體服務(wù)器實(shí)現(xiàn),服務(wù)器端只需要HTTP服務(wù)器作為發(fā)布的目標(biāo)和直播服務(wù)的提供方;能夠低耦合、非侵入、簡單的與采集端應(yīng)用集成;易于在各種終端平臺(tái)上實(shí)現(xiàn),如iPhone/iPad、Android、Windows、Linux等終端平臺(tái);滿足流媒體在線實(shí)時(shí)直播的延時(shí)低、健壯性好、容錯(cuò)性好等需求;能夠支持在互聯(lián)網(wǎng)大規(guī)模部署、支持CDN部署方式、具備可伸縮性;具備穿越防火墻和代理服務(wù)器的能力。上述實(shí)施例為本實(shí)用新型優(yōu)選實(shí)施方式,凡其原理和基本結(jié)構(gòu)與本實(shí)施例相同或近似的,均在本實(shí)用新型保護(hù)范圍之內(nèi)。
      權(quán)利要求1.一種在互聯(lián)網(wǎng)發(fā)布和直播流媒體的系統(tǒng),包括服務(wù)器端(2)和播放客戶端(3),其特征在于 還包括發(fā)布客戶端(1)包括媒體輸入模塊(11)、發(fā)布客戶端音頻編碼模塊(12)、發(fā)布客戶端視頻編碼模塊(13)、發(fā)布客戶端流媒體處理模塊(14)和發(fā)布模塊(15);所述媒體輸入模塊(11)讀取音頻流和/或視頻流數(shù)據(jù)并把該音頻流和/或視頻流數(shù)據(jù)傳輸至所述發(fā)布客戶端流媒體處理模塊(14);所述發(fā)布客戶端流媒體處理模塊(14)調(diào)用發(fā)布客戶端音頻編碼模塊(12)和/或發(fā)布客戶端視頻編碼模塊(13)對音頻流和/或視頻流數(shù)據(jù)重新編碼并根據(jù)設(shè)定的格式進(jìn)行媒體流的合并,并按預(yù)設(shè)的流媒體數(shù)據(jù)分塊時(shí)間生成流媒體數(shù)據(jù)分塊; 所述服務(wù)器端(2 )包括網(wǎng)頁服務(wù)模塊(21)、服務(wù)器流媒體處理模塊(22 )和服務(wù)器儲(chǔ)存模塊(23);發(fā)布客戶端(1)發(fā)布模塊(15)與網(wǎng)頁服務(wù)模塊(21)交互并上傳所述流媒體分塊,服務(wù)器流媒體處理模塊(22)根據(jù)設(shè)定的流媒體分段時(shí)間合并所述流媒體分塊為流媒體分段并生成對應(yīng)流媒體數(shù)據(jù)分段文件順序和儲(chǔ)存位置的索引,分別儲(chǔ)存至服務(wù)器儲(chǔ)存模塊(23); 所述播放客戶端(3)包括交付模塊(31)、播放客戶端流媒體處理模塊(32)、播放客戶端音頻編碼模塊(33 )、播放客戶端視頻編碼模塊(34 )和播放模塊(35 );所述交付模塊(31)與所述服務(wù)器端(2)交互并根據(jù)索引從服務(wù)器端(2)下載流媒體分段文件,播放客戶端流媒體處理模塊(32)對流媒體進(jìn)行分解獲取音頻流和/或視頻流,播放客戶端流媒體處理模塊(32 )調(diào)用播放客戶端音頻編碼模塊(33 )和/或播放客戶端視頻編碼模塊(34 )對音頻流和/或視頻流所述進(jìn)行解碼并通過播放模塊(35)進(jìn)行播放。
      2.根據(jù)權(quán)利要求1所述的在互聯(lián)網(wǎng)發(fā)布和直播流媒體的系統(tǒng),其特征在于還包括媒體采集端(4),所述媒體采集端(4)包括媒體采集模塊(41)、媒體處理模塊(42)、采集端音頻編碼模塊(43)和/或采集端視頻編碼模塊(44),所述的媒體處理模塊(42)調(diào)用所述的采集端音頻編碼模塊(43)和/或采集端視頻編碼模塊(44)生成特定格式的媒體文件。
      3.根據(jù)權(quán)利要求2所述的在互聯(lián)網(wǎng)發(fā)布和直播流媒體的系統(tǒng),其特征在于所述的采集端(4)集成于所述的發(fā)布客戶端(1)中。
      4.根據(jù)權(quán)利要求1至3任意一項(xiàng)所述的在互聯(lián)網(wǎng)發(fā)布和直播流媒體的系統(tǒng),其特征在于所述的服務(wù)器儲(chǔ)存模塊(23)為分布式存儲(chǔ)系統(tǒng)。
      專利摘要本實(shí)用新型公開一種在互聯(lián)網(wǎng)發(fā)布和直播流媒體的系統(tǒng),包括發(fā)布客戶端、服務(wù)器端和播放客戶端;所述發(fā)布客戶端用于讀取和解析正在輸出的多媒體文件,合并并生成流媒體數(shù)據(jù)分塊,然后以HTTP方法上傳至所述服務(wù)器;所述服務(wù)器端儲(chǔ)存流媒體數(shù)據(jù)分塊并構(gòu)建流媒體數(shù)據(jù)分段文件;同時(shí),服務(wù)器端生成對應(yīng)流媒體數(shù)據(jù)分段文件的索引;所述播放客戶端使用HTTP方法從服務(wù)器端獲取索引,然后根據(jù)索引下載流媒體分段并同時(shí)對流媒體分段進(jìn)行播放。本實(shí)用新型的系統(tǒng)基于HTTP協(xié)議體系;能夠低耦合、非侵入、簡單的與采集端應(yīng)用集成;易于在各種終端平臺(tái)上實(shí)現(xiàn);實(shí)時(shí)直播的延時(shí)低、健壯性好、容錯(cuò)性好;支持在互聯(lián)網(wǎng)大規(guī)模部署、支持CDN部署方式。
      文檔編號(hào)H04L29/08GK202872837SQ20122006300
      公開日2013年4月10日 申請日期2012年2月24日 優(yōu)先權(quán)日2012年2月24日
      發(fā)明者樊志巖, 李洋 申請人:北京對角巷科技發(fā)展有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會(huì)獲得點(diǎn)贊!
      1