一種面向雲環境下的網絡電視播放方法及系統的製作方法
2023-11-02 21:07:57 2
一種面向雲環境下的網絡電視播放方法及系統的製作方法
【專利摘要】本發明公開了一種面向雲環境下的網絡電視播放方法及系統,該系統包括客戶端、伺服器端和配置在伺服器端的虛擬機,虛擬機中的網絡電視軟體與外部媒體源建立連接,從網絡中接收待解碼的網絡電視數據流;虛擬機中的網絡電視攔截模塊攔截網絡電視數據流,通過添加在伺服器端內部的媒體通道將待解碼的網絡電視數據流發送至客戶端;客戶端通過添加在其內部的媒體通道接收並解碼待解碼的網絡電視數據流,將解碼後的信息進行顯示。本發明通過在伺服器端和客戶端分別添加用於網絡電視數據流的傳輸的媒體通道,從而實現網絡電視數據流在客戶端的解碼及播放。在保證了可用性和可靠性的前提下,可以在很大程度上滿足用戶對網絡電視觀看的需求。
【專利說明】—種面向雲環境下的網絡電視播放方法及系統
【技術領域】
[0001]本發明涉及雲計算與虛擬化、桌面虛擬化領域,尤其涉及一種面向雲環境下的網絡電視播放方法及系統。
【背景技術】
[0002]虛擬化概念最早出現在20世紀70年代,那時,大型計算機就一直在同時運行多個作業系統實例,且每個實例之間彼此獨立。虛擬化的主要目的是對IT基礎設施進行簡化。它可以簡化對資源以及對資源管理的訪問,降低消費者與資源之間的耦合程度。虛擬機是對真實計算環境的抽象和模擬,虛擬機監控器VMM需要為每個虛擬機分配一套數據結構來管理它們狀態,包括虛擬處理器的全套寄存器,物理內存的使用情況和虛擬設備的狀態等
坐寸o
[0003]在雲計算的模式下,個人計算機將從以桌面系統為中心轉向以網絡為中心,所有的服務和應用都可以按照用戶的需要彈性地在線提供。桌面虛擬化技術是作業系統和應用均運行於遠端的伺服器上,通過本地的客戶端控制該作業系統和應用,並將屏幕信息回傳到客戶端的技術。桌面虛擬化技術的本質是將桌面的操作環境與機器運行環境分離,實現在任何地點,通過非特定設備(例如不同的臺式機、筆記本、甚至包括手機)都可以實現對桌面的訪問與操作。伴隨著虛擬化技術蓬勃發展,作為虛擬化領域的熱門技術,桌面虛擬化得到了極大的發展,桌面虛擬化技術的進步和用戶需求也逐漸興起,
[0004]現有的桌面虛擬化技術中,用戶通過遠程顯示協議客戶端登錄遠程桌面後,運行網絡電視軟體播放視頻(例如PPTV,PPS, QQlive等等),網絡電視軟體將視頻在伺服器端顯示後,對整個虛擬機桌面進行截屏,以及後續壓縮編碼後傳輸給遠程顯示協議客戶端,由於視頻畫面變化的頻率非常高,導致需要頻繁的編碼傳輸圖片,這樣不僅加重了伺服器端CPU的負擔,影響性能,同時需要很高的網絡帶寬,進而影響用戶使用時的體驗。
[0005]由於上述幾個缺點,各遠程顯示協議都採用一些方法來改善此問題,例如不整屏傳輸,只傳輸變化的區域圖片,或對於變化較快、比較大的畫面採用有損壓縮算法壓縮後再傳輸,但即使採用以上方法進行優化後,仍不能有效解決網絡電視的用戶體驗問題。
【發明內容】
[0006]本發明所要解決的技術問題之一是需要提供一種面向雲環境下的網絡電視播放系統,該系統能減輕伺服器端CPU的負擔,對資源需求較小,增強用戶體驗。另外,還提供了一種面向雲環境下的網絡電視播放方法。
[0007]為了解決上述技術問題,本發明提供了一種面向雲環境下的網絡電視播放系統,包括客戶端、伺服器端和配置在伺服器端的虛擬機,所述虛擬機包括網絡電視軟體和網絡電視攔截模塊,其中,所述虛擬機中的網絡電視軟體與外部媒體源建立連接,並從網絡中接收待解碼的網絡電視數據流;所述虛擬機中的網絡電視攔截模塊攔截所述網絡電視數據流,並通過添加在所述伺服器端內部的媒體通道將所述待解碼的網絡電視數據流發送至所述客戶端;所述客戶端通過添加在其內部的媒體通道接收並解碼所述待解碼的網絡電視數據流,並將解碼後的信息進行顯示。
[0008]在一個實施例中,在所述網絡電視軟體啟動時,所述網絡電視攔截模塊獲取有關網絡電視軟體的窗口初始化參數並發送至所述客戶端,所述窗口初始化參數包括網絡電視菜單區域的位圖數據;所述客戶端根據所述窗口初始化參數確定所要顯示的網絡電視菜單欄和視頻播放內容區域。
[0009]在一個實施例中,所述客戶端捕獲用戶對所述網絡電視菜單欄的調整操作,並將所述調整操作轉換成調整指令發送至所述伺服器端;所述伺服器端的虛擬機根據所述調整指令對其內部的網絡電視軟體進行操作;所述虛擬機中的網絡軟體攔截模塊進一步捕捉對所述網絡電視軟體的操作信息,並轉換成所述客戶端識別的操作指令發送至所述客戶端;所述客戶端根據所述操作指令執行相應的操作動作。
[0010]在一個實施例中,所述客戶端為遠程顯示協議客戶端,所述伺服器為遠程顯示協議伺服器。
[0011 ] 在一個實施例中,利用QEMU模擬器建立所述虛擬機。
[0012]根據本發明的另一方面,還提供了一種面向雲環境下的網絡電視播放方法,包括:虛擬機中的網絡電視軟體與外部媒體源建立連接,並從網絡中接收待解碼的網絡電視數據流;所述虛擬機中的網絡電視攔截模塊攔截所述網絡電視數據流,並通過添加在所述伺服器端內部的媒體通道將所述待解碼的網絡電視數據流發送至客戶端;所述客戶端通過添加在其內部的媒體通道接收並解碼所述待解碼的網絡電視數據流,並將解碼後的信息進行顯
/Jn o
[0013]在一個實施例中,在所述網絡電視軟體啟動時,所述網絡電視攔截模塊獲取有關網絡電視軟體的窗口初始化參數並發送至所述客戶端,所述窗口初始化參數包括網絡電視菜單區域的位圖數據;所述客戶端根據所述窗口初始化參數確定所要顯示的網絡電視菜單欄和視頻播放內容區域。
[0014]在一個實施例中,所述客戶端捕獲用戶對所述網絡電視菜單欄的調整操作,並將所述調整操作轉換成調整指令發送至所述伺服器端;所述伺服器端的虛擬機根據所述調整指令對其內部的網絡電視軟體進行操作;所述虛擬機中的網絡軟體攔截模塊進一步捕捉對所述網絡電視軟體的操作信息,並轉換成所述客戶端識別的操作指令發送至所述客戶端;所述客戶端根據所述操作指令執行相應的操作動作。
[0015]與現有技術相比,本發明的一個或多個實施例可以具有如下優點:
[0016]本發明通過在遠程顯示協議的伺服器端和客戶端分別添加一個用於網絡電視數據流的傳輸的媒體通道,從而實現網絡電視數據流在客戶端的解碼及播放。本發明在保證了可用性和可靠性的前提下,可以在很大程度上滿足用戶對網絡電視觀看的需求,獲得較好的用戶體驗和較高的實用價值。
[0017]本發明的其它特徵和優點將在隨後的說明書中闡述,並且,部分地從說明書中變得顯而易見,或者通過實施本發明而了解。本發明的目的和其他優點可通過在說明書、權利要求書以及附圖中所特別指出的結構來實現和獲得。
【專利附圖】
【附圖說明】[0018]附圖用來提供對本發明的進一步理解,並且構成說明書的一部分,與本發明的實施例共同用於解釋本發明,並不構成對本發明的限制。在附圖中:
[0019]圖1為根據本發明一實施例的面向雲環境下的網絡電視播放系統的架構示意圖;
[0020]圖2為圖1所示系統進行網絡電視播放啟動過程的流程示意圖;
[0021]圖3為圖1所示系統進行網絡電視播放過程的流程示意圖;
[0022]圖4為圖1所示系統進行網絡電視界面調整過程的流程示意圖。
【具體實施方式】
[0023]以下將結合附圖及實施例來詳細說明本發明的實施方式,藉此對本發明如何應用技術手段來解決技術問題,並達成技術效果的實現過程能充分理解並據以實施。需要說明的是,只要不構成衝突,本發明中的各個實施例以及各實施例中的各個特徵可以相互結合,所形成的技術方案均在本發明的保護範圍之內。
[0024]另外,在附圖的流程圖示出的步驟可以在諸如一組計算機可執行指令的計算機系統中執行,並且,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同於此處的順序執行所示出或描述的步驟。
[0025]本發明通過修改遠程顯示協議客戶端(簡稱客戶端)與遠程顯示協議伺服器端(簡稱服務端),在客戶端和伺服器端分別添加了媒體通道(Media Channel)來傳輸網絡電視信息。由於在本發明中先通過Media Channel將待解碼的網絡電視數據流直接發送到遠程顯示協議客戶端,然後遠程顯示協議客戶端通過Media Channel接收到壓縮的網絡電視數據流,遠程顯示協議客戶端對網絡電視數據流進行解碼操作,並顯示在視頻播放區域。解決了遠程顯示協議伺服器端先將數據流顯示後再壓縮截圖傳輸給客戶端引起的伺服器端資源需求過大的問題,進而解決現有技術下網絡電視播放用戶體驗不佳的問題。
[0026]圖1根據本發明一實施例的面向雲環境下的網絡電視播放系統的架構示意圖,下面參考圖1來詳細說明該系統的整體架構。
[0027]如圖1所示,處於雲環境下的該網絡電視系統包括作為客戶端(本地終端)的物理機A和至少一個作為伺服器的遠端物理機B,為便於描述,此處僅設置了一個伺服器。在物理機B端部署了至少一個虛擬機C。
[0028]需要說明的是,在本系統的伺服器端添加了 Media Channel BI,並在該伺服器端啟動時創建這個Media Channel BI。同時,在本系統的客戶端中添加了Media Channel Al,並在該客戶端啟動時創建Media Channel Al,客戶端的Media Channel Al用來與伺服器端的Media Channel BI建立連接,二者建立的連接通道僅用來傳輸從外部網絡中接收到的網絡電視數據流。
[0029]QEMU是一個開源的模擬器,它能夠動態模擬特定架構的CPU指令,如X86,PPC,ARM等等。允許對一個完整的PC環境進行虛擬化(包括磁碟、圖形適配器和網絡設備)。客戶作業系統所生成的任何I/o請求都會被中途截獲,並重新發送到QEMU進程模擬的用戶模式中。QEMU在啟動後調用遠程顯示協議伺服器端共享庫,當遠程顯示協議客戶端與伺服器端建立連接後,QEMU將虛擬機vm的操作信息通過此伺服器端共享庫發送到遠程顯示協議客戶端。因此,優選採用這個QEMU模擬器來實現在本實施例中的虛擬機C。
[0030]另外,配置在伺服器端的虛擬機C中安裝有網絡電視軟體Cl (例如PPTV、PPS、QQlive等軟體)和網絡電視助手模塊C2。
[0031]其中,網絡電視軟體Cl主要與外部媒體源建立連接,並從外部網絡中接收待解碼的網絡電視數據流。而網絡電視助手模塊C2在網絡電視軟體Cl啟動後,獲取有關網絡電視軟體Cl的窗口初始化參數(如窗口的位置,窗口大小等)並發送至客戶端,窗口初始化參數包括網絡電視菜單區域的位圖數據。而且,網絡電視助手模塊C2在網絡軟體Cl接收待解碼的網絡電視數據流時,還攔截網絡電視數據流,並通過添加在伺服器端內部的MediaChannel BI將待解碼的網絡電視數據流發送至客戶端。
[0032]網絡電視助手模塊C2除了進行上述操作外,還捕捉獲取虛擬機C對於網絡電視軟體Cl的操作信息(如對網絡電視窗口的移動、電視臺頻道切換、關閉等操作),並將這些操作信息轉換為客戶端可以識別的控制指令發送到客戶端中。
[0033]也就是說,虛擬機C通過其內部的網絡電視軟體Cl與外部媒體源進行交互,通過網絡電視助手模塊C2與遠程顯示協議客戶端進行交互,進而實現捕捉網絡電視軟體Cl的控制動作、攔截從媒體源接收的數據流,以及直接轉發給客戶端的功能。由於本實施例的客戶端和伺服器端優選分別是遠程顯示協議客戶端和遠程顯示協議伺服器,因此所傳輸的數據按照遠程顯示協議進行封裝。
[0034]請再次參考圖1,該客戶端包括控制模塊A2和播放模塊A3。其中控制模塊A2與虛擬機C中的網絡電視助手模塊C2進行交互。
[0035]該控制模塊A2在接收到來自網絡電視助手模塊C2發送的窗口初始化參數後,根據窗口初始化參數確定所要顯示的網絡電視菜單欄和視頻播放內容區域。即根據網絡電視菜單區域的位圖數據確定初始化參數中的網絡電視窗口坐標數據定義的範圍,在確定的範圍內生成並顯示網絡電視軟體Cl的菜單區域及播放區域,並在本地進行窗口初始化。
[0036]另外,該控制模塊A2還捕獲用戶對網絡電視菜單欄的調整操作,並將調整操作轉換成調整指令發送至伺服器端。然後虛擬機C根據調整指令對網絡電視軟體Cl進行操作,在此過程中,網絡電視助手模塊C2進一步捕獲對該網絡電視軟體Cl的操作信息,並轉換成客戶端所識別的操作指令發送到客戶端中。最後,該控制模塊A2在接收到來自網絡電視助手模塊C2發送的操作指令(比如點擊網絡電視界面上的按鈕、連結等)後,根據這些操作指令執行相應的操作動作,從而使客戶端可以按照伺服器的要求進行網絡電視界面的顯示。
[0037]對於客戶端A的播放模塊A3,其主要在通過配置在客戶端的Media Channel Al接收到網絡電視數據流時,將網絡電視數據流進行解碼和緩衝,並在視頻播放區域顯示出來。
[0038]為了進一步理解本發明,下面詳細說明該系統在網絡電視播放啟動過程、播放過程和界面調整過程的整個流程。
[0039]圖2是關於該網絡電視播放系統在進行網絡電視播放啟動的流程示意圖,如圖2所示,具體包括以下步驟:
[0040]步驟S201,虛擬機C啟動運行其內部的網絡電視軟體Cl。網絡電視軟體Cl例如是PPTV、PPS、QQlive等流行的網絡電視軟體。
[0041]步驟S202,網絡電視助手模塊C2捕獲到此網絡電視軟體Cl啟動。
[0042]步驟S203,網絡電視助手模塊C2將軟體啟動消息及窗口初始化參數發送到客戶端。該窗口初始化參數包括網絡電視菜單區域的位圖數據。
[0043]步驟S204,客戶端根據窗口初始化參數顯示並繪製菜單欄及播放區域。[0044]進一步的,該步驟具體由客戶端的控制模塊A2來實現,該控制模塊A2在網絡電視軟體窗口坐標數據定義的範圍內生成並顯示網絡電視軟體的菜單區域。根據播放區域的坐標信息確定客戶端需要播放的區域,在確定的範圍內生成並顯示網絡電視軟體菜單區域及播放區域,在本地進行窗口初始化,從而保證在客戶端看到的播放界面能夠在伺服器允許的窗口範圍內顯示。
[0045]圖3是關於該網絡電視播放系統在進行網絡電視播放的流程示意圖,如圖3所示,具體包括以下步驟:
[0046]步驟S301,網絡電視軟體Cl與外部媒體源建立連接,並接收網絡電視數據流。
[0047]步驟S302,網絡電視助手模塊C2攔截網絡電視軟體Cl接收的網絡電視數據流。
[0048]步驟S303,網絡電視助手模塊C2將網絡電視數據流發送到客戶端。
[0049]具體地,網絡電視助手模塊C2將數據流直接發送至遠程顯示協議伺服器端中,繼而通過伺服器的Media Channel BI發送到遠程顯示協議客戶端中。
[0050]步驟S304,客戶端通過其內部的Media Channel Al接收到伺服器端發送過來的數據流。
[0051]步驟S305,客戶端基於數據流進行視頻播放。
[0052]具體地,本步驟由播放模塊A3實現,當接收到網絡電視數據流,由此模塊將數據流解碼和緩衝,並在視頻播放區域顯示出來。
[0053]容易理解,在遠程顯示協議客戶端進行網絡電視的播放之後,用戶很可能會對當前顯示的電視內容進行調整。因此,還可以通過虛擬機C內的網絡電視軟體Cl和網絡電視助手模塊C2以及客戶端的控制模塊A2和播放模塊A3來實現界面調整,如圖4所示,具體流程如下:
[0054]步驟S401,客戶端將用戶進行的界面調整操作發送給伺服器端。
[0055]具體地,客戶端的控制模塊A2捕獲到用戶對網絡電視界面的調整操作時,將調整操作轉換為調整指令,發送給伺服器端。繼而發送給虛擬機C中的網絡電視助手模塊C2中。其中,調整操作是由虛擬桌面客戶端的用戶觸發的,如對網絡電視軟體的窗口進行調整大小、位置、切換頻道、關閉軟體等。
[0056]步驟S402,虛擬機C根據調整指令執行界面調整操作。
[0057]具體地,虛擬機C中的網絡電視助手模塊C2接收到從遠程顯示協議伺服器端發來的網絡電視調整指令,根據該網絡電視調整指令對虛擬機C中的網絡電視軟體Cl進行調整操作。
[0058]步驟S403,將虛擬機C中實際的調整操作發送給客戶端。
[0059]具體地,虛擬機C中的網絡電視助手模塊C2捕獲對網絡電視軟體Cl執行的調整操作,並將調整操作轉換成客戶端A識別的操作指令,通過遠程顯示協議發送給遠程顯示協議客戶端。
[0060]步驟S404,客戶端根據操作指令執行相應的界面調整操作。
[0061]具體地,遠程顯示協議客戶端接收到該實際調整操作後,由控制模塊A2進行處理,對遠程顯示協議客戶端的虛擬網絡界面執行相應的調整操作,進行界面上的相關顯示,保證虛擬機C和遠程顯示協議客戶端雙方網絡電視軟體調整的一致性。
[0062]在典型應用中,優選地,物理機A和物理機B及其上所創建的一個或一個以上虛擬機C處於雲計算系統中。
[0063]本發明在保證了可用性和可靠性的前提下,可以在很大程度上滿足用戶對網絡電視流暢播放的需求,具有較高的實用價值和商業價值。
[0064]本領域的技術人員應該明白,上述的本發明的各模塊或各步驟可以用通用的計算裝置來實現,它們可以集中在單個的計算裝置上,或者分布在多個計算裝置所組成的網絡上,可選地,它們可以用計算裝置可執行的程序代碼來實現,從而,可以將它們存儲在存儲裝置中由計算裝置來執行,或者將它們分別製作成各個集成電路模塊,或者將它們中的多個模塊或步驟製作成單個集成電路模塊來實現。這樣,本發明不限制於任何特定的硬體和軟體結合。
[0065]雖然本發明所揭露的實施方式如上,但所述的內容只是為了便於理解本發明而採用的實施方式,並非用以限定本發明。任何本發明所屬【技術領域】內的技術人員,在不脫離本發明所揭露的精神和範圍的前提下,可以在實施的形式上及細節上作任何的修改與變化,但本發明的專利保護範圍,仍須以所附的權利要求書所界定的範圍為準。
【權利要求】
1.一種面向雲環境下的網絡電視播放系統,包括客戶端、伺服器端和配置在伺服器端的虛擬機,其特徵在於,所述虛擬機包括網絡電視軟體和網絡電視攔截模塊,其中, 所述虛擬機中的網絡電視軟體與外部媒體源建立連接,並從網絡中接收待解碼的網絡電視數據流; 所述虛擬機中的網絡電視攔截模塊攔截所述網絡電視數據流,並通過添加在所述伺服器端內部的媒體通道將所述待解碼的網絡電視數據流發送至所述客戶端; 所述客戶端通過添加在其內部的媒體通道接收並解碼所述待解碼的網絡電視數據流,並將解碼後的信息進行顯示。
2.根據權利要求1所述的網絡電視播放系統,其特徵在於, 在所述網絡電視軟體啟動時,所述網絡電視攔截模塊獲取有關網絡電視軟體的窗口初始化參數並發送至所述客戶端,所述窗口初始化參數包括網絡電視菜單區域的位圖數據;所述客戶端根據所述窗口初始化參數確定所要顯示的網絡電視菜單欄和視頻播放內容區域。
3.根據權利要求2所述的網絡電視播放系統,其特徵在於, 所述客戶端捕獲用戶對所述網絡電視菜單欄的調整操作,並將所述調整操作轉換成調整指令發送至所述伺服器端; 所述伺服器端的虛擬機 根據所述調整指令對其內部的網絡電視軟體進行操作; 所述虛擬機中的網絡軟體攔截模塊進一步捕捉對所述網絡電視軟體的操作信息,並轉換成所述客戶端識別的操作指令發送至所述客戶端; 所述客戶端根據所述操作指令執行相應的操作動作。
4.根據權利要求1-3中任一項所述的網絡電視播放系統,其特徵在於,所述客戶端為遠程顯示協議客戶端,所述伺服器為遠程顯示協議伺服器。
5.根據權利要求1所述的網絡電視播放系統,其特徵在於, 利用QEMU模擬器建立所述虛擬機。
6.—種面向雲環境下的網絡電視播放方法,其特徵在於,包括: 虛擬機中的網絡電視軟體與外部媒體源建立連接,並從網絡中接收待解碼的網絡電視數據流; 所述虛擬機中的網絡電視攔截模塊攔截所述網絡電視數據流,並通過添加在所述伺服器端內部的媒體通道將所述待解碼的網絡電視數據流發送至客戶端; 所述客戶端通過添加在其內部的媒體通道接收並解碼所述待解碼的網絡電視數據流,並將解碼後的信息進行顯示。
7.根據權利要求6所述的網絡電視播放方法,其特徵在於, 在所述網絡電視軟體啟動時,所述網絡電視攔截模塊獲取有關網絡電視軟體的窗口初始化參數並發送至所述客戶端,所述窗口初始化參數包括網絡電視菜單區域的位圖數據;所述客戶端根據所述窗口初始化參數確定所要顯示的網絡電視菜單欄和視頻播放內容區域。
8.根據權利要求7所述的網絡電視播放方法,其特徵在於, 所述客戶端捕獲用戶對所述網絡電視菜單欄的調整操作,並將所述調整操作轉換成調整指令發送至所述伺服器端;所述伺服器端的虛擬機根據所述調整指令對其內部的網絡電視軟體進行操作; 所述虛擬機中的網絡軟體攔截模塊進一步捕捉對所述網絡電視軟體的操作信息,並轉換成所述客戶端識別的操作指令發送至所述客戶端; 所述客戶端根據所述操作指令執行相應的操作動作。
9.根據權利要求6-8中任一項所述的網絡電視播放方法,其特徵在於,所述客戶端為遠程顯示協議客戶端,所述伺服器為遠程顯示協議伺服器。
10.根據權利要求6所述的網絡電視播放方法,其特徵在於, 利用QEMU模擬器建立所述虛擬機。
【文檔編號】H04L29/08GK103618968SQ201310554219
【公開日】2014年3月5日 申請日期:2013年11月8日 優先權日:2013年11月8日
【發明者】陳俊秀 申請人:中標軟體有限公司