流媒體的回看媒體流帶寬控制系統及方法
【專利摘要】本發明涉及網絡通信領域,提供一種流媒體的回看媒體流帶寬控制系統及方法,用于對流媒體的回看媒體流帶寬進行控制,所述控制系統包括服務端和客戶端,所述服務端具體包括實時節目編碼模塊、節目錄制模塊、節目回看控制模塊、實時媒體流計數器和回看節目發送包計數器,所述客戶端具體包括流媒體播放器,通過使用實時媒體流計數器作為參考計數器,結合回看節目發送包計數器,本發明能夠在回看媒體流發送過程中均衡地利用網絡帶寬,避免了媒體流數據出現“浪涌”而導致網絡數據傳輸效率下降的情況,提高了整個網絡的帶寬資源利用率。
【專利說明】流媒體的回看媒體流帶寬控制系統及方法
【技術領域】
[0001] 本發明涉及網絡通信領域,特別涉及一種流媒體的回看媒體流帶寬控制系統及方 法。
【背景技術】
[0002] 流媒體是指采用流式傳輸的方式在互聯網或內聯網播放的媒體格式,流媒體在播 放前并不下載整個媒體流文件,只將開始內容存入內存,在媒體播放軟件中對媒體流數據 包進行緩存并使媒體數據正確地輸出。流媒體實現的關鍵技術就是流式傳輸,流式傳輸主 要指將整個音頻、視頻、三維媒體等多媒體文件經過特定的壓縮方式解析成一個個媒體流 數據包,由服務端向客戶端傳送,其中客戶端中的流媒體播放器本身具有一定緩沖能力, 但是如果服務端發送的媒體流數據量過大,媒體流數據出現"浪涌",這時網絡數據將超過 播放器的緩沖能力,如果服務端是采用UDP(User Data Protocol,用戶數據報協議)方式 向客戶端發送媒體流數據,則會導致丟包;如果服務端是采用TCP (Transmission Control Protocol,傳輸控制協議)方式向客戶端發送媒體流數據,則TCP協議棧的重傳機制會不斷 嘗試重發數據,這樣會導致網絡有效帶寬降低。
【發明內容】
[0003] 本發明提供一種流媒體的回看媒體流帶寬控制系統及方法,用于對回看媒體流帶 寬進行控制,以提高網絡帶寬資源利用率。
[0004] 為了解決以上的技術問題,本發明的第一個方面是提供一種流媒體的回看媒體流 帶寬控制系統,所述系統包括服務端和客戶端,所述服務端具體包括實時節目編碼模塊、節 目錄制模塊、節目回看控制模塊、實時媒體流計數器和回看節目發送包計數器,所述客戶端 具體包括流媒體播放器,
[0005] 所述實時節目編碼模塊用于以固定碼率輸出采用UDP方式封裝的媒體流數據包, 其中每個媒體流數據包封裝了固定長度的媒體數據;
[0006] 所述節目錄制模塊用于接收來自實時節目編碼模塊的媒體流數據包并保存為磁 盤文件;
[0007] 所述實時媒體流計數器用于對實時節目編碼模塊輸出的媒體流數據包進行計 數;
[0008] 所述回看節目發送包計數器用于對節目回看控制模塊發送的媒體流數據包進行 計數,其中回看節目發送包計數器的初始值為:當節目回看控制模塊接收到客戶端的節目 回放請求信號時,實時媒體流計數器的當前計數值;
[0009] 所述節目回看控制模塊用于循環檢測實時媒體流計數器的計數值和回看節目發 送包計數器的計數值,如果檢測到回看節目發送包計數器的計數值小于實時媒體流計數器 的計數值,則讀取節目錄制模塊中的磁盤文件,并向客戶端流媒體播放器發送媒體流數據 包,發送后回看節目發送包計數器的計數值加一;
[0010] 所述流媒體播放器用于向節目回看控制模塊發送回看請求信號。
[0011] 在第一個方面的第一種可能實現方式中,所述服務端和客戶端處于同一局域網 內。
[0012] 在第一個方面的第二種可能實現方式中,所述節目回看控制模塊使用UDP方式向 客戶端發送媒體流數據包,其中發送的每個媒體流數據包中的數據長度等于實時節目編碼 模塊輸出的每個媒體流數據包所封裝的媒體流數據長度。
[0013] 在第一個方面的第三種可能實現方式中,所述節目回看控制模塊使用TCP方式向 客戶端發送媒體流數據包,其中發送的每個媒體流數據包中的數據長度等于實時節目編碼 模塊輸出的每個媒體流數據包所封裝的媒體流數據長度。
[0014] 在第一個方面的第四種可能實現方式中,所述流媒體播放器還用于接收節目回看 控制模塊發送的媒體流數據包并進行解碼顯示。
[0015] 本發明的第二個方面是提供一種流媒體的回看媒體流帶寬控制方法,所述方法包 括:
[0016] 步驟A :服務端的實時節目編碼模塊于以固定碼率輸出采用UDP方式封裝的媒體 流數據包,其中每個媒體流數據包封裝了固定長度的媒體數據;
[0017] 步驟B:服務端的節目錄制模塊接收來自實時節目編碼模塊的媒體流數據包并保 存為磁盤文件;
[0018] 步驟C:服務端的實時媒體流計數器對實時節目編碼模塊輸出的媒體流數據包進 行計數;
[0019] 步驟D :客戶端的流媒體播放器向節目回看控制模塊發送回看請求信號;
[0020] 步驟E:將服務端的回看節目發送包計數器的初始值設置為實時媒體流計數器的 當前計數值;
[0021] 步驟F :服務端的節目回看控制模塊循環檢測實時媒體流計數器的計數值和回看 節目發送包計數器的計數值,如果檢測到回看節目發送包計數器的計數值小于實時媒體流 計數器的計數值,則讀取節目錄制模塊中的磁盤文件,向客戶端的流媒體播放器發送媒體 流數據包,發送后回看節目發送包計數器的計數值加一。
[0022] 在第二個方面的第一種可能實現方式中,所述服務端和客戶端處于同一局域網 內。
[0023] 在第二個方面的第二種可能實現方式中,所述步驟F中,節目回看控制模塊使用 UDP方式向客戶端發送媒體流數據包,其中發送的每個媒體流數據包中的數據長度等于實 時節目編碼模塊輸出的每個媒體流數據包所封裝的媒體流數據長度。
[0024] 在第二個方面的第三種可能實現方式中,所述步驟F中,節目回看控制模塊使用 TCP方式向客戶端發送媒體流數據包,其中發送的每個媒體流數據包中的數據長度等于實 時節目編碼模塊輸出的每個媒體流數據包所封裝的媒體流數據長度。
[0025] 在第二個方面的第四種可能實現方式中,在步驟F之后還包括:流媒體播放器接 收節目回看控制模塊發送的媒體流數據包并進行解碼顯示。
[0026] 從以上技術方案可以看出,通過采用本發明所提供的流媒體的回看媒體流帶寬控 制系統及方法,實現了對回放節目媒體流的流量帶寬控制,本發明能夠在回看媒體流發送 過程中均衡地利用網絡帶寬,避免了媒體流數據出現"浪涌"而導致網絡數據傳輸效率下降 的情況,提高了整個網絡的帶寬資源利用率。
【專利附圖】
【附圖說明】
[0027] 圖1為本發明實施例一提供的流媒體的回看媒體流帶寬控制系統結構框圖;
[0028] 圖2A為本發明實施例二提供的流媒體的回看媒體流帶寬控制方法流程圖;
[0029] 圖2B為本發明實施例二提供的流媒體的回看媒體流帶寬控制方法流程圖。
【具體實施方式】
[0030] 為使本發明的目的、技術方案和優點更加清楚,下面將結合附圖,對本發明的具體 實施方式進行清楚、完整的描述,顯然,所描述的實施例是本發明的一部分實施例,而不是 全部實施例,也不是對本發明的限制。基于本發明的實施例,本領域普通技術人員在不付出 創造性勞動前提下所獲得的所有其他實施例,都屬于本發明的保護范圍。
[0031] 如圖1所示,圖1為本發明實施例一提供的流媒體的回看媒體流帶寬控制系統結 構框圖,所述系統包括服務端和客戶端,所述服務端具體包括實時節目編碼模塊101、節目 錄制模塊102、節目回看控制模塊103、實時媒體流計數器105和回看節目發送包計數器 106,所述客戶端具體包括流媒體播放器104。
[0032] 作為一種優選實施例,客戶端與服務端處于同一局域網。
[0033] 實時節目編碼模塊101用于以固定碼率輸出采用UDP方式封裝的媒體流數據包, 其中每個媒體流數據包封裝有固定長度的媒體數據。具體地,實時節目編碼模塊101接收 實時節目源,通過編碼后形成以UDP方式封裝的媒體流數據包,并以固定碼率進行輸出。
[0034] 節目錄制模塊102用于接收來自實時節目編碼模塊101的媒體流數據包并保存為 磁盤文件。
[0035] 實時媒體流計數器105用于對實時節目編碼模塊101輸出的媒體流數據包進行計 數。需要說明,實時媒體流計數器105是一個參考計數器,回看節目發送包計數器106的初 始計數值以實時媒體流計數器105的計數值為參考,通過實時媒體流計數器105和節目發 送包計數器106,可以實現對發送的媒體流數據包進行控制。
[0036] 回看節目發送包計數器106用于對節目回看控制模塊103發送的媒體流數據包進 行計數,其中回看節目發送包計數器106的初始值為:當節目回看控制模塊103接收到客戶 端的節目回放請求信號時,實時媒體流計數器105的當前計數值。
[0037] 節目回看控制模塊103用于循環檢測實時媒體流計數器105的計數值和回看節目 發送包計數器106的計數值,如果檢測到回看節目發送包計數器106的計數值小于實時媒 體流計數器105的計數值,則讀取節目錄制模塊102中的磁盤文件,向客戶端流媒體播放器 104發送媒體流數據包,發送后回看節目發送包計數器106的計數值加一。
[0038] 具體地,節目回看控制模塊103可以使用UDP方式向客戶端發送媒體流數據包,每 個發送的媒體流數據包中的數據長度等于實時節目編碼模塊101輸出的每個媒體流數據 包所封裝的媒體流數據長度。需要說明,如果節目回看控制模塊103沒有檢測到回看節目 發送包計數器106的計數值小于實時媒體流計數器105的計數值,則不會讀取節目錄制模 塊102中的磁盤文件,也就不會向客戶端流媒體播放器104發送媒體流數據包,因此回看節 目發送包計數器106的計數值保持不變。
[0039] 作為一種優選實施例,節目回看控制模塊103也可以使用TCP方式向客戶端發送 媒體流數據包,其中每個媒體流數據包中的數據長度等于實時節目編碼模塊101輸出的每 個媒體流數據包所封裝的媒體流數據長度。
[0040] 流媒體播放器104運行在客戶端,用于向節目回看控制模塊103發送回看請求信 號。當節目回看控制模塊103發送媒體流數據包后,客戶端流媒體播放器104接收媒體流 數據包并進行解碼顯示。
[0041] 具體地,采用本發明實施例一所提供的直播流媒體節目的回看媒體流帶寬控制系 統,對回看媒體流帶寬進行控制的方法可以參考下述的具體方法實施例。
[0042] 如圖2A和圖2B所示,圖2A和圖2B為本發明實施例二提供的流媒體的回看媒體 流帶寬控制方法流程圖,所述方法包括:
[0043] 步驟201 :實時節目編碼模塊以固定碼率輸出UDP方式封裝的媒體流數據包,同時 實時媒體流計數器對實時節目編碼模塊輸出的媒體流數據包進行計數。
[0044] 具體地,實時節目編碼模塊和實時媒體流計數器運行在服務端,實時節目編碼模 塊接收實時節目源,通過編碼后形成以UDP方式封裝的媒體流數據包,并以固定碼率進行 輸出,以此同時,實時媒體流計數器對實時節目編碼模塊輸出的媒體流數據包進行計數。
[0045] 步驟202 :節目錄制模塊接收來自實時節目編碼模塊的媒體流數據包并保存為磁 盤文件。
[0046] 節目錄制模塊運行在服務端,節目錄制模塊接收媒體流數據包并進行錄制形成媒 體文件,同時將此媒體文件保存為磁盤文件方便后續步驟進行讀取。
[0047] 步驟203 :客戶端的流媒體播放器向節目回看控制模塊發送回看請求信號。
[0048] 節目回看控制模塊處于服務端,步驟201和步驟202執行的同時,如果回看控制模 塊收到客戶端的流媒體播放器發送的回看請求信號,則執行步驟204。
[0049] 步驟204 :節目回看控制模塊將回看節目發送包計數器的初始值設置為實時媒體 流計數器的當前計數值。
[0050] 具體地,回看節目發送包計數器處于服務端,通過執行步驟201可以得到實時媒 體流計數器的當前計數值,將實時媒體流計數器的當前計數值設置為回看節目發送包計數 器的初始值。綜合步驟203和步驟204,只要回看控制模塊收到客戶端的流媒體播放器發送 的回看請求信號,則會導致實時媒體流計數器的計數值與回看節目發送包計數器的計數值 相等。
[0051] 步驟205 :節目回看控制模塊循環檢測實時媒體流計數器的計數值和回看節目發 送包計數器的計數值,如果回看節目發送包計數器的計數值小于實時媒體流計數器的計數 值,則執行下一步驟。
[0052] 需要說明的是,由于執行了步驟204, 一開始會檢測到回看節目發送包計數器的計 數值等于實時媒體流計數器的計數值,與此同時步驟201繼續執行,實時媒體流計數器的 計數值增加,此時節目回看控制模塊會檢測到回看節目發送包計數器的計數值小于實時媒 體流計數器的計數值,則執行步驟206。
[0053] 步驟206 :節目回看控制模塊讀取節目錄制模塊中的磁盤文件,向客戶端的流媒 體播放器發送媒體流數據包,發送后回看節目發送包計數器的計數值加一。
[0054] 具體地,節目錄制模塊中的磁盤文件包含媒體流數據包,節目回看控制模塊讀取 磁盤文件,向客戶端的流媒體播放器發送磁盤文件中的媒體流數據包,發送后回看節目發 送包計數器的計數值加一,這說明,節目回看控制模塊每發送一次媒體流數據包,回看節目 發送包計數器的計數值就累加一次。同時,節目回看控制模塊繼續檢測實時媒體流計數器 的計數值和回看節目發送包計數器的計數值,直到媒體文件中的媒體流數據包全部發送 完,這就是步驟205所說的"循環檢測"。
[0055] 作為一種優選實施例,所述服務端和客戶端處于同一局域網。
[0056] 作為另一種優選實施例,所述控制方法在執行步驟206以后,還執行以下步驟:流 媒體播放器接收節目回看控制模塊發送的媒體流數據包并進行解碼顯示。
[0057] 作為另一種優選實施例,步驟206節目回看控制模塊使用UDP方式向客戶端發送 媒體流數據包,每個發送的媒體流數據包中的數據長度等于實時節目編碼模塊輸出的每個 媒體流數據包所封裝的媒體流數據長度。
[0058] 作為另一種優選實施例,步驟206節目回看控制模塊使用TCP方式向客戶端發送 媒體流數據包,每個發送的媒體流數據包中的數據長度等于實時節目編碼模塊輸出的每個 媒體流數據包所封裝的媒體流數據長度。
[0059] 綜合實施例一及其優選實施例,通過使用實時媒體流計數器作為參考計數器,結 合回看節目發送包計數器,能夠使客戶端流媒體播放器緩沖區的數據量維持在一個平穩水 平,無論節目回看控制模塊采用UDP方式還是TCP方式向客戶端發送媒體流數據包,本發明 都能夠在回看媒體流發送過程中均衡地利用網絡帶寬,避免了媒體流數據出現"浪涌"而導 致網絡數據傳輸效率下降的情況,提高了整個網絡的帶寬資源利用率。
【權利要求】
1. 一種流媒體的回看媒體流帶寬控制系統,其特征在于所述系統包括服務端和客戶 端,所述服務端具體包括實時節目編碼模塊、節目錄制模塊、節目回看控制模塊、實時媒體 流計數器和回看節目發送包計數器,所述客戶端具體包括流媒體播放器, 所述實時節目編碼模塊用于以固定碼率輸出采用UDP方式封裝的媒體流數據包,其中 每個媒體流數據包封裝了固定長度的媒體數據; 所述節目錄制模塊用于接收來自實時節目編碼模塊的媒體流數據包并保存為磁盤文 件; 所述實時媒體流計數器用于對實時節目編碼模塊輸出的媒體流數據包進行計數; 所述回看節目發送包計數器用于對節目回看控制模塊發送的媒體流數據包進行計數, 其中回看節目發送包計數器的初始值為:當節目回看控制模塊接收到客戶端的節目回放請 求信號時,實時媒體流計數器的當前計數值; 所述節目回看控制模塊用于循環檢測實時媒體流計數器的計數值和回看節目發送包 計數器的計數值,如果檢測到回看節目發送包計數器的計數值小于實時媒體流計數器的計 數值,則讀取節目錄制模塊中的磁盤文件,并向客戶端流媒體播放器發送媒體流數據包,發 送后回看節目發送包計數器的計數值加一; 所述流媒體播放器用于向節目回看控制模塊發送回看請求信號。
2. 根據權利要求1所述的系統,其特征在于所述服務端和客戶端處于同一局域網內。
3. 根據權利要求1或2所述的系統,其特征在于所述節目回看控制模塊使用UDP方式 向客戶端發送媒體流數據包,其中發送的每個媒體流數據包中的數據長度等于實時節目編 碼模塊輸出的每個媒體流數據包所封裝的媒體流數據長度。
4. 根據權利要求1或2所述的系統,其特征在于所述節目回看控制模塊使用TCP方式 向客戶端發送媒體流數據包,其中發送的每個媒體流數據包中的數據長度等于實時節目編 碼模塊輸出的每個媒體流數據包所封裝的媒體流數據長度。
5. 根據權利要求1或2所述的系統,其特征在于所述流媒體播放器還用于接收節目回 看控制模塊發送的媒體流數據包并進行解碼顯示。
6. -種流媒體的回看媒體流帶寬控制方法,其特征在于所述方法包括以下步驟: 步驟A :服務端的實時節目編碼模塊于以固定碼率輸出采用UDP方式封裝的媒體流數 據包,其中每個媒體流數據包封裝了固定長度的媒體數據; 步驟B :服務端的節目錄制模塊接收來自實時節目編碼模塊的媒體流數據包并保存為 磁盤文件; 步驟C:服務端的實時媒體流計數器對實時節目編碼模塊輸出的媒體流數據包進行計 數; 步驟D :客戶端的流媒體播放器向節目回看控制模塊發送回看請求信號; 步驟E:將服務端的回看節目發送包計數器的初始值設置為實時媒體流計數器的當前 計數值; 步驟F :服務端的節目回看控制模塊循環檢測實時媒體流計數器的計數值和回看節目 發送包計數器的計數值,如果檢測到回看節目發送包計數器的計數值小于實時媒體流計數 器的計數值,則讀取節目錄制模塊中的磁盤文件,向客戶端的流媒體播放器發送媒體流數 據包,發送后回看節目發送包計數器的計數值加一。
7. 根據權利要求6所述的方法,其特征在于所述服務端和客戶端處于同一局域網內。
8. 根據權利要求6或7所述的方法,其特征在于所述步驟F中,節目回看控制模塊使 用UDP方式向客戶端發送媒體流數據包,其中發送的每個媒體流數據包中的數據長度等于 實時節目編碼模塊輸出的每個媒體流數據包所封裝的媒體流數據長度。
9. 根據權利要求6或7所述的方法,其特征在于所述步驟F中,節目回看控制模塊使 用TCP方式向客戶端發送媒體流數據包,其中發送的每個媒體流數據包中的數據長度等于 實時節目編碼模塊輸出的每個媒體流數據包所封裝的媒體流數據長度。
10. 根據權利要求6或7所述的方法,其特征在于在步驟F之后還包括:流媒體播放器 接收節目回看控制模塊發送的媒體流數據包并進行解碼顯示。
【文檔編號】H04L29/06GK104092690SQ201410334338
【公開日】2014年10月8日 申請日期:2014年7月15日 優先權日:2014年7月15日
【發明者】唐文東 申請人:金亞科技股份有限公司