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

      基于代理的hls客戶端裝置及其實(shí)現(xiàn)方法

      文檔序號:9814205閱讀:1238來源:國知局
      基于代理的hls客戶端裝置及其實(shí)現(xiàn)方法
      【技術(shù)領(lǐng)域】
      [0001]本發(fā)明涉及多媒體通信領(lǐng)域,尤其涉及一種基于代理的HLS客戶端裝置及其實(shí)現(xiàn)方法。
      【背景技術(shù)】
      [0002]近年來,隨著移動互聯(lián)網(wǎng)的發(fā)展和移動設(shè)備的普及,流媒體業(yè)務(wù)成為移動互聯(lián)網(wǎng)中最典型的應(yīng)用。然而傳統(tǒng)流媒體協(xié)議在互聯(lián)網(wǎng)中受到不同程度的制約,因此產(chǎn)生了很多新的流媒體協(xié)議。其中,最具代表性的是蘋果公司針對流媒體業(yè)務(wù)提出的HLS(HTTP LiveStreaming)。與傳統(tǒng)流媒體協(xié)議(RTMP、RTSP、RTP等)相比,HLS具有實(shí)現(xiàn)簡單、高效、可擴(kuò)展、兼容性強(qiáng)、交互方便和低成本的優(yōu)點(diǎn)。基于此,如何在嵌入式終端上,如手機(jī),機(jī)頂盒等,實(shí)現(xiàn)高效穩(wěn)定的HLS客戶端成為人們競相研究的熱點(diǎn)。
      [0003]目前終端上HLS協(xié)議實(shí)現(xiàn)方式有兩種:一種是使用嵌入式系統(tǒng)平臺內(nèi)置的自帶播放器,為支持高分辨率視頻,解碼一般都采用硬件加速的方式,但由于不同系統(tǒng)的實(shí)現(xiàn)方案參差不齊,有些方案對HLS協(xié)議的支持不夠好,而此時開發(fā)人員無法對其進(jìn)行修改,只能等待硬件廠商升級系統(tǒng)才能解決問題;還有一種是使用用戶安裝的第三方軟件客戶端,這種客戶端一般情況下對HLS協(xié)議的支持比較好,但由于廠商不對外開放硬件解碼接口,所以只能采用軟解碼的方式。但是如果僅僅使用軟解碼進(jìn)行音視頻的解碼,難以支撐高分辨率視頻。雖然嵌入式原生播放器能力越來越強(qiáng),但用戶對視頻分辨率要求也越來越高,采用純軟件解碼的方式,高清視頻容易出現(xiàn)卡頓、馬賽克等現(xiàn)象。
      [0004]因此,如何充分利用嵌入式系統(tǒng)平臺上高效的視頻硬件解碼性能,又能提高HLS協(xié)議支持的靈活性,成為亟待解決的難題。

      【發(fā)明內(nèi)容】

      [0005]本發(fā)明的目的是提供一種能夠克服上述缺陷的代理的HLS客戶端裝置及其實(shí)現(xiàn)方法。
      [0006]在第一方面,本發(fā)明提供了一種基于代理的HLS客戶端裝置,包括管理模塊、代理模塊和原生播放器模塊,其中:所述管理模塊用于向所述代理模塊發(fā)出視頻請求命令;所述代理模塊基于所述視頻請求命令向HLS流媒體服務(wù)器請求流媒體數(shù)據(jù),接收所請求的流媒體數(shù)據(jù)并對其進(jìn)行解析,以及將解析后得到的音視頻流發(fā)送給所述原生播放器模塊;以及所述原生播放器模塊對所述音視頻流進(jìn)行硬解碼并進(jìn)行同步播放。
      [0007]優(yōu)選地,所述代理模塊包括:請求模塊,用于與所述HLS流媒體服務(wù)器進(jìn)行交互,向所述HLS流媒體服務(wù)器發(fā)出HTTP請求并在其響應(yīng)后接收所請求的HLS流媒體數(shù)據(jù);解析模塊,用于對所述HLS流媒體數(shù)據(jù)進(jìn)行解析,并將解析后得到的音視頻流發(fā)送到分發(fā)模塊;分發(fā)模塊,用于向原生播放器分發(fā)所述音視頻流。
      [0008]優(yōu)選地,所述解析模塊對所述HLS流媒體數(shù)據(jù)進(jìn)行解析包括:對流媒體協(xié)議進(jìn)行協(xié)議解析,包括對HLS流媒體數(shù)據(jù)中的主級索引文件和媒體索引文件進(jìn)行解析;以及根據(jù)傳輸流TS封裝格式對HLS流媒體數(shù)據(jù)中的媒體片段進(jìn)行解封裝。
      [0009]優(yōu)選地,所述主級索引文件包含HLS流媒體數(shù)據(jù)的碼率信息,所述解析模塊還用于對所述媒體索引文件進(jìn)行更新,其中:對于直播,若更新后的媒體索引文件有變化,則重新設(shè)置更新周期;若第一次更新后的媒體索引文件無變化,則在設(shè)定的等待時間后進(jìn)行更新;若連續(xù)兩次或更多次更新后的媒體索引文件無變化,則逐步增加所述設(shè)定的等待時間。對于點(diǎn)播,在所述碼率信息發(fā)生變化后進(jìn)行所述媒體索引文件的更新。
      [0010]優(yōu)選地,所述代理模塊還用于向所述管理模塊發(fā)出重定向消息,以便于所述管理模塊基于該重定向消息重新發(fā)送視頻請求命令;以及
      [0011]所述解析模塊還用于進(jìn)行帶寬估計、碼率選擇和資源監(jiān)測。
      [0012]
      [0013]在第二方面,本發(fā)明提供了一種基于代理的HLS客戶端裝置的實(shí)現(xiàn)方法,包括:發(fā)出視頻請求命令;基于所述視頻請求命令向HLS流媒體服務(wù)器請求流媒體數(shù)據(jù),接收所請求的流媒體數(shù)據(jù)并對其進(jìn)行解析,得到音視頻流;以及對所述音視頻流進(jìn)行硬解碼并進(jìn)行同步播放。
      [0014]優(yōu)選地,基于所述視頻請求命令向HLS流媒體服務(wù)器請求流媒體數(shù)據(jù)的步驟,具體為向所述HLS流媒體服務(wù)器發(fā)出HTTP請求并在其響應(yīng)后接收所請求的HLS流媒體數(shù)據(jù)。
      [0015]優(yōu)選地,接收所請求的流媒體數(shù)據(jù)并對其進(jìn)行解析的步驟包括:對流媒體協(xié)議進(jìn)行協(xié)議解析,包括對HLS流媒體數(shù)據(jù)中的主級索引文件和媒體索引文件進(jìn)行解析;以及根據(jù)傳輸流TS封裝格式對HLS流媒體數(shù)據(jù)中的媒體片段進(jìn)行解封裝。
      [0016]優(yōu)選地,所述主級索引文件包含HLS流媒體數(shù)據(jù)的碼率信息,所述解析模塊還用于對所述媒體索引文件進(jìn)行更新,其中:對于直播,若更新后的媒體索引文件有變化,則重新設(shè)置更新周期;若第一次更新后的媒體索引文件無變化,則在設(shè)定的等待時間后進(jìn)行更新;若連續(xù)兩次或更多次更新后的媒體索引文件無變化,則逐步增加所述設(shè)定的等待時間。對于點(diǎn)播,在所述碼率信息發(fā)生變化后進(jìn)行所述媒體索引文件的更新。
      [0017]優(yōu)選地,所述方法還包括:發(fā)出重定向消息,以便基于該重定向消息重新發(fā)送視頻請求命令;以及進(jìn)行帶寬估計、碼率選擇和資源監(jiān)測。
      [0018]本發(fā)明通過在HLS客戶端中嵌入能靈活高效地支持HLS協(xié)議技術(shù)的代理模塊,解決了原生播放器對HLS流媒體支持不足的缺陷,充分利用了原生播放器的硬件解碼性能播放高清視頻,增強(qiáng)了觀看高清視頻的用戶體驗(yàn)。
      【附圖說明】
      [0019]圖1是根據(jù)本發(fā)明實(shí)施例的基于代理的HLS客戶端裝置的系統(tǒng)框圖;
      [0020]圖2是在圖1的解析模塊中進(jìn)行TS封裝解析的示例TS包格式的示意圖;
      [0021]圖3是根據(jù)本發(fā)明實(shí)施例的基于代理的HLS客戶端裝置的工作流程圖;
      [0022]圖4是圖1中的代理模塊的工作流程圖。
      【具體實(shí)施方式】
      [0023]下面通過附圖和實(shí)施例,對本發(fā)明的技術(shù)方案做進(jìn)一步的詳細(xì)描述。
      [0024]圖1是根據(jù)本發(fā)明實(shí)施例的基于代理的HLS客戶端裝置的系統(tǒng)框圖參考附圖1,根據(jù)本發(fā)明的客戶端裝置包括管理模塊、原生播放器模塊和代理模塊,其中代理模塊包括以下子模塊:請求模塊、解析模塊和分發(fā)模塊。管理模塊負(fù)責(zé)客戶端裝置中其余模塊的邏輯控制以及處理VCR視頻命令,包括但不限于視頻請求、播放、暫停、快進(jìn)、快退、選時、切換字幕、退出等。同時,管理模塊還負(fù)責(zé)各模塊間的啟動、等待、同步以及終止控制。原生播放器模塊負(fù)責(zé)音視頻的解碼和播放。請理解,圖1中的附圖標(biāo)記“原生播放器”與此處提到的“原生播放器模塊”指同一模塊。
      [0025]在代理模塊中,請求模塊充當(dāng)代理模塊的網(wǎng)絡(luò)接口,負(fù)責(zé)和HLS流媒體服務(wù)器交互,即向HLS服務(wù)器發(fā)出HTTP請求,在HLS服務(wù)器響應(yīng)后獲取HLS流媒體數(shù)據(jù)。例如,請求模塊的媒體請求格式可以為URL(Uniform Resource Locator)格式,其定位符指向HLS服務(wù)器上索引文件的地址。解析模塊負(fù)責(zé)解析HLS流媒體數(shù)據(jù),得到適合原生播放器播放的音視頻數(shù)據(jù),其功能包括流媒體協(xié)議解析、TS封裝解析以及索引文件更新、算法等擴(kuò)展功能。分發(fā)模塊負(fù)責(zé)向原生播放器分發(fā)音視頻數(shù)據(jù)。
      [0026]下面,對該裝置的關(guān)鍵模塊的實(shí)現(xiàn)進(jìn)行詳細(xì)說明。
      [0027]所述請求模塊向HLS服務(wù)器發(fā)出HTTP請求,并接收HLS服務(wù)器響應(yīng)后發(fā)送的流媒體數(shù)據(jù)。本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,所述請求模塊實(shí)則充當(dāng)HTTP客戶端,可自行編寫該HTTP客戶端的功能或者直接向其中移植成熟的庫。
      [0028]所述解析模塊包含但不限于以下功能:流媒體協(xié)議解析、TS封裝解析、索引文件更新以及帶寬估計、碼率選擇和資源監(jiān)測等等。
      [0029]所述解析模塊中流媒體協(xié)議解析是指對HLS流媒體里的M3U8索引文件(主級索引文件和媒體索引文件)進(jìn)行解析,應(yīng)嚴(yán)格按照HLS標(biāo)準(zhǔn)文檔規(guī)定進(jìn)行實(shí)現(xiàn),其步驟如下:
      [0030]I)解析主級索引文件
      [0031]主級索引文件包含同一視頻內(nèi)容不同碼率的媒體索引文件鏈接,以及各個碼率對應(yīng)的其他信息,例如包括碼率值、平均碼率值、視頻分辨率、音視頻編碼碼率等;
      [0032]2)解析媒體索引文件
      [0033]媒體索引文件包含該碼率下各個視頻段的鏈接以及其他信息,例如包括視頻分段大小、序列號、播放類型、媒體段鏈接等。
      [0034]下面參考圖2對解析模塊中TS的封裝解析的基本原理進(jìn)行描述,圖2是在圖1的解析模塊中進(jìn)行TS封裝解析的示例TS包格式的示意圖。
      [°035] 先簡要介紹一下傳輸流(Transport Stream,TS)中的TS包的結(jié)構(gòu),TS包由包頭和凈荷組成。包頭一般為4Byte,例如包括8bit的同步字節(jié),Ibit的誤碼指示,Ibit的單元起始指示,Ibit的傳輸優(yōu)先級,1313;[1:的?10,213;[1:的加擾控制,213;[1:的4?控制以及413;[1:的連續(xù)性計數(shù)器。有條件編碼的凈荷例如為184Byte,有效負(fù)載的結(jié)尾通過填充適當(dāng)大小的AF對齊,
      [0036]解析模塊中TS封裝解析是指根據(jù)TS封裝格式要求對媒體片段解封裝,其中包括PAT表和PMT表的查找。首先,查找TS流中PID為0x0000的包,PID為0x0000的包負(fù)荷存著PAT(Program Associat 1n Table,節(jié)目關(guān)聯(lián)表)表;PAT表定義了當(dāng)前TS流中所有的節(jié)目,主要包含節(jié)目號碼和每一個節(jié)目對應(yīng)的PMT (Program M
      當(dāng)前第1頁1 2 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
      1