專利名稱:一種交互式網絡電視的時移方法和系統的制作方法
技術領域:
本發明涉及一種網絡電視,尤其涉及的是,一種交互式網絡電視的時移方法和系統。
背景技術:
IPTV(Internet Protocol TV,or Interactive Personal TV,交互式網絡電視),是基于IP網絡的電視,通過利用寬帶網絡,以計算機(PC)或“普通電視機+IPTV機頂盒”為主要終端設備,主要為用戶提供四類業務直播電視(BTV)、點播電視(VOD)、時移電視(Time-shift TV)、基于機頂盒的因特網瀏覽業務等。所述時移電視的時移功能就是回到已經過去的時間點開始觀看。例如觀看直播的體育比賽時出現一個精彩鏡頭,用戶可以回過去再看一遍,然后快進或直接跳到當前播放點。
現有的IPTV業務采用CDN(Content Delivery Network,內容傳輸網絡)技術開展,即節目源放在一個核心媒體服務器上,核心媒體服務器以廣播(Broadcast)/組播(Multicast,也稱多播)方式向外直播節目。在靠近一組用戶的地方放置一個邊緣媒體服務器(簡稱媒體服務器或服務器)。邊緣媒體服務器從核心媒體服務器收到節目后存儲起來,再采用組播方式向其用戶播送。邊緣媒體服務器支持有限時間的時移功能,例如48小時,即用戶最多用時移方式看48小時前的節目。時移電視的內容是用戶定制的,只能基于單播(Unicast)方式提供,對帶寬和服務質量需求很大。
目前運營商大多通過贈送機頂盒(STB,Set of Top Box,在此特指IPTV機頂盒)以有效推廣IPTV,時移功能完全以媒體服務器傳送單播媒體流的方式實現,機頂盒只要實現與媒體服務器的簡單交互,達到切換媒體流的目的即可,這樣做可使機頂盒造價低廉,易于運營商低成本推廣IPTV業務,即使運營商不贈送機頂盒,廉價機頂盒也易于被用戶接受。但是這樣的機頂盒一般配置較低、功能簡單,不能實現本地時移,完全依賴邊緣媒體服務器實現時移功能,媒體服務器的負擔較重,可支持同時時移用戶數有限。
當第一個用戶要觀看時移的節目時,媒體服務器為其創建一個單播流,進行單點傳送;用戶機頂盒退出組播組;這時服務器要同時發送兩個媒體流。當更多的用戶時移觀看節目時,服務器必須建立更多的單播流,負荷顯著增加,對傳輸網絡的帶寬要求也顯著增加。因此提供時移功能的邊緣媒體服務器的負荷很重。
理論上,對于采用組播或廣播方式直播電視節目時用戶數是沒有限制的;但是,現實中由于受媒體服務器的能力和傳輸網絡帶寬限制,對時移用戶數就存在一定限制。每一個用戶的時移操作產生一個單播流,這使得媒體服務器能支持的時移電視用戶數必然是很有限的,例如服務器可以傳輸100個媒體流,其中一個流使用組播方式直播電視節目,這不影響它的用戶數,但是它另外的99個媒體流能力只能另外支持99個用戶進行時移操作,因此能同時進行時移的用戶就只有99個。
綜上,現有技術的邊緣媒體服務器的負荷很重,不能支持過多的時移用戶數量,不能滿足IPTV發展的需求。
因此,現有技術存在缺陷,需要改進。
發明內容
本發明的目的在于提供一種交互式網絡電視的時移方法和系統,用于為用戶提供時移服務時,減輕媒體服務器的負荷,讓媒體服務器能夠支持更多同時發生的時移用戶數量。
本發明的技術方案如下一種交互式網絡電視的時移方法,其用于具有本地時移緩沖區的機頂盒及媒體服務器系統中,其步驟包括A1、機頂盒從媒體服務器接收并播放組播媒體流,同時將所述組播媒體流的數據緩存到時移緩沖區;A2、當進行時移播放時,機頂盒判斷時移后所播放媒體內容是否存在于時移緩沖區,是則執行步驟A3,否則執行步驟A4;A3、機頂盒從時移緩沖區取出內容進行播放,并且繼續錄制當前組播媒體流數據進入時移緩沖區;不執行步驟A4;A4、機頂盒向媒體服務器申請創建單播媒體流后播放所述單播媒體流。
所述的時移方法,其中,步驟A3還包括用戶進行快進操作時,機頂盒判斷快進后所播放內容存在于時移緩沖區,則播放緩沖區的內容,否則播放組播流的內容。
所述的時移方法,其中,步驟A4還包括步驟B1、媒體服務器檢索所述時移單播媒體流可加入的時移組播媒體流,未找到可加入的時移組播媒體流,則執行步驟B2,否則執行步驟B4;B2、媒體服務器檢索到可與所述時移單播媒體流合并的其它時移單播媒體流;B3、媒體服務器為可合并的時移單播媒體流建立時移組播媒體流;所述時移組播媒體流的起始時間點是所述可合并的時移單播媒體流中時移時間最小的單播媒體流的當前播放時間點;B4、媒體服務器通知正在接收所述可合并時移單播媒體流的機頂盒接收所述時移組播媒體流,并停止所述可合并的時移單播媒體流;其中當前時移播放時間點早于所述共同的時移組播媒體流當前播放時間點的機頂盒,繼續接收并播放所述時移單播媒體流,并將所述時移組播媒體流的內容保存到時移緩沖區,直到所述時移單播媒體流播放時間點到達共同的時移組播媒體流起始時間點后,才開始播放所述時移組播媒體流,其內容取自所述機頂盒的時移緩沖區,同時停止所述單播媒體流。
所述的時移方法,其中,步驟B1之前還包括步驟機頂盒記錄以正常速度時移播放單播媒體流的持續時間,判斷所述持續時間達到設定值,將所述持續時間達到設定值的信息通知媒體服務器。
所述的時移方法,其中,步驟B1之前還包括步驟媒體服務器記錄所述機頂盒以正常速度時移播放單播媒體流的持續時間,判斷所述持續時間達到設定值。
所述的時移方法,其中,步驟A4在機頂盒向媒體服務器申請創建單播媒體流時,還包括步驟所述機頂盒將機頂盒能力信息通知所述媒體服務器;其中,所述機頂盒能力信息包括所述機頂盒能否增加一個媒體流的處理、所述時移緩沖區可支持的時移時間長度。
所述的時移方法,其中,步驟A1還包括步驟機頂盒判斷接收的媒體流數據超過時移緩沖區的最大存儲量,按進入時移緩沖區的時間順序丟棄時移緩沖區中最早的媒體流數據,同時錄制當前媒體流數據進入時移緩沖區。
所述的時移方法,其中,機頂盒為所述用戶播放時移單播媒體流過程中,當用戶進行快進操作時,步驟A4還包括步驟所述機頂盒判斷當前媒體流數據在時移緩沖區中是否存在,是則執行步驟A3;否則繼續執行步驟A4。
所述的時移方法,其中,步驟A4還包括步驟所述機頂盒撤出組播組,停止錄制組播媒體流數據進入時移緩沖區。
所述的時移方法,其中,步驟A4還包括步驟所述機頂盒留在組播組,繼續錄制組播媒體流數據進入時移緩沖區。
所述的時移方法,其中,步驟A4還包括步驟C1、所述機頂盒判斷所訪問的當前媒體流數據在時移緩沖區中是否存在,否則播放單播媒體流,不再執行后續步驟;C2、所述機頂盒給媒體服務器發送停播單播媒體流的通知;C3、所述機頂盒播放在時移緩沖區中的所述當前媒體流數據。
所述的時移方法,其中,步驟C1之前還包括步驟所述機頂盒撤出組播組,停止錄制組播媒體流數據進入時移緩沖區;則步驟C3還包括步驟D1、所述機頂盒判斷所訪問的當前媒體流在時移緩沖區中的數據已經播放完畢;D2、機頂盒給媒體服務器發送恢復發送單播媒體流的通知,所述通知包括單播媒體流的接續點;D3、媒體服務器為所述機頂盒發送單播媒體流,機頂盒錄制單播媒體流數據進入時移緩沖區。
所述時移方法,其中步驟D3還包括用戶進行快進操作,所述機頂盒判斷播放數據存在于所述時移緩沖區,則播放時移緩沖區中的內容,否則加入直播組播組,播放直播組播組的內容,并通知媒體服務器刪除所述時移單播流,直播組播組的內容繼續錄制到時移緩沖區。
一種交互式網絡電視的時移系統,其中,其包括至少一具有時移緩沖功能的機頂盒和至少一媒體服務器,所述機頂盒與所述媒體服務器通過網絡連接,所述時移緩沖功能采用時移緩沖區實現。
所述的時移系統,其中,所述時移緩沖區是可提供存儲空間的設備所提供的存儲空間。
所述的時移系統,其中,所述時移緩沖區設置在機頂盒的內部。
所述的時移系統,其中,所述時移緩沖區是隨機存取存儲器、閃存或硬盤。
所述的時移系統,其中,所述時移緩沖區設置在機頂盒的外部,其與所述機頂盒通過網絡連接或專用接口連接。
所述的時移系統,其中,所述可提供存儲空間的設備是基于隨機存取存儲器或閃存的移動存儲設備、移動硬盤、計算機、局域網絡媒體中心、局域網絡存儲設備或個人視頻錄制設備。
采用上述方案,本發明通過將組播媒體流數據存儲在與機頂盒相連接的時移緩沖區上,實現了機頂盒的本地時移功能,從而減輕媒體服務器的負荷,使得媒體服務器支持更多同時發生的時移用戶數量。
圖1為本發明方法的流程圖;圖2為本發明的欣賞直播節目的緩沖方法圖;圖3為本發明的在時移緩沖區內的完全本地時移方法圖;圖4為本發明方法的STB僅支持一個單播流并且時移到錄制節目內容外時初始情況示意圖;圖5為本發明方法的時移欣賞點移到了錄制的節目內容范圍內示意圖;圖6為本發明方法的STB緩沖區中的內容播放完畢后恢復播放單播流的示意圖;圖7為本發明的臨時刪除組播流的時移方法的交互過程示意圖;圖8為本發明的時移的單播流和直播的組播流同時存在示意圖;圖9為本發明的保留組播流的時移方法交互過程圖;圖10為合并兩個單播流開始的示意圖;圖11為合并兩個單播流一個階段的示意圖;圖12為合并兩個單播流另一個階段的示意圖;圖13為合并兩個單播流完成的示意圖。
具體實施例方式
以下對本發明的較佳實施例加以詳細說明。
本發明的基本思想是STB可獲得足夠的存儲空間來存儲足夠長的正在觀看的直播媒體信息,在此基礎上實現STB本地的時移功能,盡量不讓媒體服務器產生新的單播媒體流,以及媒體服務器利用STB的本地時移功能在可行的時候合并多個時移單播媒體流為一個時移組播媒體流,以減輕媒體服務器的負擔。IPTV機頂盒可以支持PVR(Private Video Record,個人視頻錄像),PVR需要的存儲體可以是STB本身擁有的,例如硬盤,也可以是通過通信接口從用戶網絡中其它設備獲得的,例如外置的PVR專用存儲設備。只要STB有PVR功能,就可以從其PVR存儲體中分配一部分空間用作本地時移功能。即使STB沒有PVR功能,也可以使用足夠多的內存,或者內置的閃存,或者使用一個硬盤作為本地時移所需的存儲器。STB也可以通過通信接口從用戶網絡中其它設備獲得本地時移功能所需存儲空間,除了前面所說的PVR存儲設備,局域網絡中用于存儲大量媒體內容并提供相關服務的媒體服務中心、或者專門為其它設備提供存儲服務的存儲設備都可以向STB提供必要的存儲空間。STB還可以使用移動介質所提供的存儲空間實現本地時移功能,例如基于隨機存取存儲器的PCMCIA卡,或基于閃存的存儲卡或U盤,或移動硬盤。當STB本地時移功能所需存儲空間不能獲得時,STB的時移功能就蛻化成完全由媒體服務器實現。
不管STB本地時移功能所需存儲空間來自何處,這樣的存儲空間這里稱為時移緩沖區。
由此,本發明提供了一種交互式網絡電視的時移系統,其包括至少一具有時移緩沖功能的機頂盒和至少一媒體服務器,所述機頂盒與所述媒體服務器通過網絡連接,所述時移緩沖功能采用時移緩沖區實現。所述時移緩沖區是可提供存儲空間的設備所提供的存儲空間。所述時移緩沖區可以設置在機頂盒的內部或外部。所述時移緩沖區設置在機頂盒的內部時,所述時移緩沖區可以是隨機存取存儲器、快速閃存或硬盤等可用介質。所述時移緩沖區設置在機頂盒的外部時,其與所述機頂盒通過網絡連接或專用接口連接。所述可提供存儲空間的設備是計算機、局域網絡媒體中心、網絡存儲設備或個人視頻錄制設備。所述時移緩沖區與所述機頂盒的連接方式包括以太網連接、WiFi連接、PLC連接或USB連接等,本發明不限制具體的連接方式,只要能夠實現本發明所述時移緩沖區與所述機頂盒的連接,均應認為屬于本發明所述連接方式的范疇。所述機頂盒可以從所述能提供存儲空間的設備獲得所需的存儲空間,例如機頂盒具備實現在網絡中搜索可用外部存儲空間的功能,并且所述能提供存儲空間的設備具備實現響應此搜索的功能,并可以根據機頂盒的指示分配存儲空間。
由此,本發明提供了一種交互式網絡電視的時移方法,其用于具有本地時移緩沖區的機頂盒及媒體服務器系統中,如附圖1所示,其主要步驟包括A1、機頂盒從媒體服務器接收并播放直播組播媒體流,同時將直播組播媒體流的數據緩存到時移緩沖區;A2、當進行時移播放時,機頂盒判斷時移后所播放媒體內容是否存在于時移緩沖區,是則執行步驟A3,否則執行步驟A4;A3、機頂盒從時移緩沖區取出內容進行播放,不執行后續步驟;A4、機頂盒向媒體服務器申請創建單播媒體流后播放單播媒體流。
機頂盒為所述用戶播放時移單播媒體流過程中,當用戶進行快進操作時,步驟A3還包括快進后所播放內容存在于時移緩沖區,則播放緩沖區的內容,否則播放組播流的內容。
機頂盒為所述用戶播放時移單播媒體流過程中,當用戶進行快進操作時,步驟A4還可以包括步驟所述機頂盒判斷當前媒體流數據在時移緩沖區中是否存在;當用戶快進操作后,當前媒體流數據已經存在于時移緩沖區中,則機頂盒從時移緩沖區取出內容進行播放;否則媒體服務器繼續向機頂盒播放單播媒體流。
步驟A1所說的組播媒體流緩沖方法如下當機頂盒從媒體服務器接收并播放組播媒體流,同時將所述組播媒體流的數據緩存到時移緩沖區時;假設時移緩沖區可支持最多錄制T秒鐘的節目,機頂盒判斷接收的媒體流數據是否超過T秒;如果沒有超過T秒,則繼續存儲媒體流數據到時移緩沖區;當接收的媒體流數據超過T秒時,機頂盒按進入時移緩沖區的時間順序丟棄時移緩沖區中最早的媒體流數據。
如附圖2所示的時移緩沖區,內容從緩沖區的右側進入,左側移出,并設緩沖區中存儲的內容為t秒,t<=T,這是用戶正常欣賞直播節目沒有作過時移操作的情況,說明如下201)來自媒體服務器的直播媒體流從右側進入時移緩沖區,直播媒體流是一個組播流;202)在這種情況下,緩沖區的最右端對應的就是當前節目正在直播的時間點;203)在這種情況下,用戶正在欣賞的時間點就是當前節目正在直播的時間點,它就在緩沖區右端;204)緩沖區內存儲了最近t秒的節目內容,t最大為T。緩沖區內的內容隨著新的內容的進入而向左移動,超出T秒的早期內容從左端移出丟棄;205)緩沖區的最左端對應的是T秒以前的直播內容;206)T秒以前的節目內容被移出了緩沖區,它們被丟棄了。
在步驟A2中,用戶進行了時移操作,即定位或快退。為了描述方便,對于快退操作,可以理解為多次直接定位操作的組合,每次向后時移一小段時間,則快退過程可以看成是一連串的定位過程,這里只描述每次定位后的情況。假設時移時間即定位后播放時間點與當前直播時間點的差值為s,則根據s與步驟A1中t的關系有不同的處理。如果s<=t(即s小于等于t,下同),STB進行完全本地時移播放,否則STB向媒體服務器申請一個時移單播流進行播放。
步驟A3就是s<=t時的完全本地時移播放,具體描述如下在時移操作后,STB從緩沖區中離緩沖區右端s秒的地方開始取其內容播放,來自網絡的直播組播媒體流繼續進入緩沖區,此時STB不需要與媒體服務器交互,媒體服務器也不為用戶產生一個單播流。附圖3所示為在時移緩沖區內的完全本地時移的情況,說明如下。
301)來自媒體服務器的直播組播媒體流繼續從右側進入時移緩沖區。
302)緩沖區的最右端仍然對應的是當前節目正在直播的時間點。
303)用戶正在欣賞的時間點向后移了s秒,但沒有落在錄制的t秒節目內容之外,因此欣賞的內容是緩存器中的內容。在時移時間點t和當前直播時間點之間的快進、快退都和媒體服務器無關。
304)緩沖區仍存儲的是最近t秒的節目內容,如果開始時移時t<T,則t可以繼續增長到T。
305)緩沖區的最左端對應的仍然是T秒以前的直播內容。
306)如果t=T,T秒以前的節目內容被移出了緩沖區,它們被丟棄了。
當s>t即時移時間比時移緩沖區中緩存的最早內容還要早時,STB不得不向媒體服務器申請一個時移的單播流,即步驟A4。這時STB根據自身能力會有不同的做法。須作說明的是,STB可能僅具有接收和處理一個媒體流的能力,也可能具有接收和處理多個媒體流的能力,例如一個用戶正在欣賞的媒體流和另一個按照用戶預定正在錄制的媒體流,通俗的說就是STB正在接收兩個頻道的媒體數據。甚至STB可以同時接收更多頻道的數據,多個頻道同時錄制,并且/或通過畫中畫功能同時欣賞兩個頻道的節目。不管怎樣,STB能同時接收和處理的媒體流個數是有限的,這不僅局限于STB自身的處理能力,還依賴于接入網絡分配給用戶局域網絡的帶寬。根據STB自身能力的不同,本發明提供了不同的實現方法。
當STB時移到錄制節目內容外時,STB向服務器請求時移的節目內容,告知服務器時移時間s。當然實際消息中肯定還包含用戶的識別符例如STB的地址、媒體流的識別符號例如頻道等,這些都是隱含的,以下不再重復。至于時間信息可以是相對當前直播時間的相對時間值即s,也可以是絕對時間點,本發明不指定具體形式。服務器收到請求后將為此STB創建一個單播流。
如果STB不能再增加一個媒體流,在成功向媒體服務器申請時移單播流之后就退出直播的組播組。同時,所述機頂盒也就停止錄制組播媒體流數據進入時移緩沖區。時移后的STB內部初始情況如附圖4所示,具體說明如下。
401)不再接收來自媒體服務器的直播組播媒體流。
402)當前直播時間點暫時還在緩沖區右端。
403)在這種情況下,用戶正在欣賞的時間點向后移了s秒,s>t,它落在了緩沖區緩存的內容之外。
404)因為STB退出了直播組播組,緩沖區中存儲的內容不再變化。
405)時移后的單播流時間位置即當前欣賞點位于緩沖區外。
由于時移緩沖區中的內容不變,隨著單播流的播放,對應的單播播放時間點逐步右移,最終會落到緩沖區錄制的節目內容范圍內,因此,本發明采用方法所述機頂盒判斷所訪問的當前媒體流數據在時移緩沖區中是否存在;不存在則繼續為所述用戶播放單播媒體流;如果存在,則所述機頂盒為所述用戶播放在時移緩沖區中的所述當前媒體流數據。具體如附圖5所示,說明如下。
501)仍然不接收媒體服務器的直播組播媒體流。
502)這時,當前直播時間點不再指向時移緩沖區的最右端,它右移了。
503)這時,時移欣賞時間點落到緩沖區錄制的內容范圍內,STB可以取緩沖區中的內容播放,也可以繼續取單播流中的內容播放,兩者是一樣的。當時移緩沖區中沒有存儲過內容或存儲的內容很少,STB仍然取單播媒體流的內容播放。
504)這時單播流傳送的內容實際上已存在于緩沖區中。
505)如果用戶在時移欣賞中作過快進操作,此時的時移時間s小于初始時移值。
如附圖5所示,單播流與緩沖區中的內容一致時,服務器是可以不用在這段時間內傳送單播流的,服務器可以在STB請求時移單播流的響應中要求STB將單播流時間點進入緩沖區內容范圍內時將此事件通知服務器,即所述機頂盒給媒體服務器發送停播單播媒體流的通知。此通知中包括一個媒體流精確的時間標簽,服務器能據此知道從哪一個報文開始不必向STB發送,即暫時停止單播流。
在沒有收到服務器要求通知停播單播流的情況下,STB可以向媒體服務器發送停播通知,也可以不發送。而如果服務器明確要求STB發送停播單播流的通知,當STB具備發送該通知的能力時,STB可以發送此通知,也可以不發送此通知,這由STB的能力決定。
當服務器收到STB的停播單播流通知時,服務器就從指定的媒體幀開始停止向STB發送單播流。STB將從自己的緩沖區中取出媒體幀播放。
在上述情況下,如果STB播放完了緩沖區中的內容,必須向服務器請求恢復單播流播放,同樣,這個請求中應該包括精確的時間標簽,以便服務器所發媒體幀能和STB緩沖區中的內容銜接上。為了不產生停頓,STB應該適當提前發出請求。這個提前時間是與STB的時延抖動緩沖區和網絡時延相關的,新的單播流首幀數據必須在時移緩沖區內的內容播放完之前到達STB,但又不導致時延抖動緩沖區溢出。
服務器收到恢復單播流的請求后就恢復向STB發送單播流,并且STB開始錄制單播流內容到緩沖區,此時STB的情況見附圖6。推而廣之,一旦單播流內容能與緩沖區右端銜接上,STB應該開始繼續錄制新的內容到時移緩沖區。如果時移之前時移緩沖區中就沒有內容或因為內容很少因而STB視之為沒有內容,意味著單播流的內容是與時移緩沖區內容能銜接的,這是一種特殊情況,STB應該錄制單播流內容到時移緩沖區。
附圖6即STB緩沖區中的內容播放完畢后恢復單播流播放的方法的說明如下601)STB仍然不接收直播的組播流。
602)直播時間點仍然遠離緩沖區。
603)現在的欣賞點在緩沖區右端,內容取自單播流。
604)單播流的內容與緩沖區中的內容銜接,并錄制到緩沖區中,因此緩沖區中內容再次開始變化。
在圖4的情況下,用戶也可以快退,回到圖4的狀態。在圖6的情況下,用戶也可以快退,回到圖5或圖4的狀態。
本方法增加了STB與媒體服務器之間的交互,并且媒體數據在緩沖區內容和單播流之間切換時,需要考慮以正常速度欣賞的情況下的平滑性,以免畫面抖動,降低用戶體驗。
本方法臨時刪除組播流的時移方法的交互過程如附圖7所示,說明如下701、正常情況下,媒體服務器向STB傳送直播的組播媒體流;702、用戶欣賞直播的節目;703、用戶時移s秒,s>t;704、STB向媒體服務器請求時移;705、媒體服務器創建時移的單播流,STB退出組播組,此時STB不再收到組播流;服務器可能在這時要求STB在必要時向服務器發送暫停單播流的通知;所謂必要,是指單播媒體流的內容與STB緩沖區中的內容一致時,不論欣賞點是正常播放或快進時從左側進入緩沖區還是快退時從右側進入緩沖區;706、媒體服務器向STB發送時移s秒的單播流;707、用戶欣賞時移s秒的節目;708、用戶可能在這時做快進操作;709、STB將快進指令發給媒體服務器,通過媒體服務器實現內容的快進;710、在快進或正常速度欣賞的情況下,欣賞點逐步移到時移緩沖區內;711、STB通知媒體服務器停止單播流,可選;不管是否之前收到服務器的要求,STB都可以發送此通知;712、媒體服務器收到暫停單播流的通知時停止單播流,這是可選的,但如果是服務器要求STB發送暫停單播流通知的,服務器必須暫停此單播流;713、如果單播流暫停了,這時用戶欣賞到的內容來自時移緩沖區;714、用戶可能繼續快進或以正常速度欣賞節目;715、時移緩沖區中的內容播放完了,即欣賞點移出了緩沖區;716、如果單播流之前被暫停,STB向媒體服務器請求恢復時移的單播流,此時的時移時間不一定是原來的s了,例如做過快進快退操作;717、媒體服務器通知STB恢復了時移的單播流,但是這樣的通知不是必須的;718、媒體服務器傳送時移的單播流;719、用戶繼續欣賞時移的節目,這時來自單播流的內容也錄制到時移緩沖區,緩沖區中的內容仍然是連續的最近t秒的內容,只不過這時所謂的“最近”是相對于時移單播流的;720、用戶快進;721、STB將快進指令發給媒體服務器,通過媒體服務器實現內容的快進;722、媒體服務器發現快進到了當前直播時間點;723、媒體服務器通知STB刪除了單播流,這個通知不是必須的;STB加入直播組播組,考慮到傳輸延時和網絡結點延時,這個加入操作應該適當提前,這需要STB預測快進操作將到達當前直播時間點。
724、媒體服務器恢復向STB傳送組播的媒體流,這是時移緩沖區錄制的內容來自組播流;725、用戶欣賞直播的節目。
在步驟720,用戶進行快進一段時間然后繼續正常的欣賞,此時STB的時移緩沖區錄制不到快進過程中連續的節目內容,時移緩沖區已錄制的內容應丟棄。
在步驟A4,如果STB可再增加一個媒體流,當時移時間s大于緩沖區存儲的節目時長t時,STB不必退出直播組播組,此時時移的單播流和直播的組播流同時存在。此方法時移操作后STB的初始情況如附圖8所示,說明如下。
801)來自媒體服務器的直播組播媒體流繼續從右側進入時移緩沖區。
802)在這種情況下,緩沖區的最右端仍然對應的是當前節目正在直播的時間點。
803)在這種情況下,用戶正在欣賞的時間點向后移了s秒,s>t,它落在了緩沖區之外。
804)緩沖區存儲的是最近t秒的節目內容。
805)緩沖區的最左端對應的仍然是T秒以前的直播內容。
806)如果t=T,T秒以前的節目內容被移出了緩沖區,它們被丟棄了。
807)此時用戶欣賞到的內容是一個單播流的內容。
在這種方法下,一旦單播流的內容在時移緩沖區中已存在,意即用戶快進使s<t,則STB應主動通知服務器停止單播流,并從緩沖區取內容。如果STB未主動發送停止單播流的通知,則當STB快進到當前直播時間點時,服務器主動刪除單播流,并通知STB切換到組播流。由于緩沖區錄制的內容始終來自直播的組播流且組播流不停止,于是不存在上一方法中可能存在的緩沖區中內容斷檔的情況。并且,此時只要播放的內容存在于時移緩沖區,STB就可切換到時移緩沖區而通知媒體服務器停止單播流。整個保留組播流的時移方法交互過程如附圖9所示,具體說明如下。
901、媒體服務器以組播流直播節目;902、用戶正常地欣賞直播節目;903、用戶要求時移s秒當前節目;904、STB發現s大于t,向媒體服務器發送時移請求,請求消息中應包含時移時間,以及其它必要信息。;905、媒體服務器為STB創建一個時移了s秒的單播流;906、由于STB沒有從組播組中撤出,因此STB同時收到時移的單播流和直播的組播流;907、用戶欣賞單播流的內容;908、用戶快進;909、STB將快進指令發給服務器;910、媒體服務器判斷是否快進到當前直播時間點,如果是,直接轉步驟912;911、STB發現s<t,通知媒體服務器刪除單播流,并從緩沖區取內容;912、服務器通知STB刪除了單播流,這個通知不是必須的;913、服務器繼續傳送組播流;914、此時用戶正常欣賞節目,可能還是處于時移狀態,但s<t。
在步驟A4,如果用戶始終以正常速度欣賞節目,而不再快進,則機頂盒始終播放時移單播流,時移緩沖區就失去意義,接收直播組播流也沒有必要。此時,媒體服務器可利用機頂盒具有的本地時移功能,將時移時間相近的多個同源時移單播流合并為一個時移的組播流,機頂盒可以在時移緩沖區的輔助下維持正常的時移播放,而媒體服務器的負載則下降了。以下說明在本發明方法中,當用戶固定時移欣賞節目,且s>T時,單播流的合并方法。
媒體服務器或STB必須能識別出這種情況。
可以由媒體服務器檢測時移單播流持續的時間,然后決定是否將同源即同頻道或同節目的時移單播流加入到一個同源時移組播組。在服務器進行合并操作前應從STB獲得STB的能力,包括STB的時移緩沖區可支持的時移時長、是否可增加一個媒體流。這可以在步驟A4當機頂盒申請時移單播流的時候就隨同時移時間一起發給媒體服務器,也可以在媒體服務器準備合并單播流時向機頂盒查詢而得到。合并單播流的方法是刪除時移單播流并創建時移組播流,并通知STB時移單播流已刪除以及應加入的組播流。
也可以由STB檢測時移單播流持續的時間,當這個持續時間超過一個閾值后,STB向媒體服務器發送一個事件,并將自己的能力發送給服務器。之后的事情由媒體服務器完成,與前面所描述的類似。所說的時移單播流持續的時間閾值在STB出廠有一個缺省值,在STB獲得配置時可以重新設置這個值,當STB連接到媒體服務器時媒體服務器可以再次對此閾值進行設置,并且不同的媒體服務器可能設置不同的閾值,即不同的媒體服務器使用不同的閾值,它們互不影響。
綜上所述,媒體服務器或STB識別上述情況的唯一條件就是,為STB創建的單播流持續以正常速度播放了一定的時間,例如5分鐘。這個時間是從最近一次時移操作開始的,即任何快進、快退、暫停后的繼續播放、定位時移即按時間直接跳轉都應將這個持續時間歸零,而在時移操作過程中不應計時。
需要說明的是,以下都是對于同源媒體流而言,不同源的媒體流是不能合并的。
對于一個時移單播流,如果存在一個時移組播流,這個時移組播流的時移時間小于這個時移單播流的時移時間,且它們的差值(指絕對值)小于這個時移單播流對應的STB的時移緩沖區可支持的時移時長,并且這個STB有能力增加一個媒體流的處理,則可將這個時移單播流合并到這個時移組播流。媒體服務器將所說的時移差值和所加入的時移組播組通知這個STB,STB收到通知后立即加入通知中的時移組播組,并將時移緩沖區清空,將來自時移組播流的內容錄制到時移緩沖區,同時繼續播放時移單播流的內容。在經過所說的時移差值后,媒體服務器刪除這個時移單播流,而STB轉而從時移緩沖區取內容播放。為了確保STB播放內容的連續,媒體服務器應該比所說的時移差值稍長的時間后再刪除這個時移單播流(以下同)。
如果不存在上述的時移組播流,則媒體服務器檢索兩個時移時間相近的單播流。時移較大的那個單播流所對應的STB必須具有時移緩沖區,并且其時移緩沖區能支持的時移時長大于這兩個時移單播流的時移差值。媒體服務器建立一個時移的組播流,該組播流的時移時間就是那個時移時間最小的單播流的時移時間。媒體服務器分別通知兩個STB將刪除其單播流和應加入的組播組。兩個STB在收到通知后都立即加入到時移組播組。時移時間最小的那個STB在收到通知后立即切換到組播流,如果有時移緩沖區則將時移組播流的內容錄制到時移緩沖區。時移時間較大的那個繼續播放單播流的內容,但將組播流的內容錄制到時移緩沖區,直到經過所說的時間差值后轉而從時移緩沖區取內容播放。媒體服務器在通知STB之后立即刪除時移時間最小的那個單播流,并在經過所說的時移差值之后刪除另一個單播流。
以下示例以兩個用戶來進行說明,但是本發明方法可以應用于多用戶環境中。例如A、B兩個用戶分別時移20分鐘和23分鐘欣賞同一個頻道的節目,A、B的STB都具有本地時移緩沖區,它們緩沖區的大小不一定相同,但假設都小于20分鐘且大于3分鐘。合并時以時移時間最小的單播流為準,本例兩個單播流合并后新的組播流為時移20分鐘。對于B,新的組播流與其時移時間有3分鐘的差距,因此服務器需要向B的STB繼續發送單播流3分鐘,同時B的STB也接收組播流。B的STB繼續播放原單播流的內容,同時將組播流的內容保存到時移緩沖區,3分鐘后,單播流停止,從緩沖區取內容播放。合并兩個單播流一開始、1分鐘后、3分鐘后、4分鐘后的情況分別如附圖10、附圖11、附圖12、附圖13所示。
附圖10說明如下1001)合并后的時移了20分鐘的組播流Sab發送到STB A和STB B。
1002)STB B的單播流Sb仍然繼續發送給STB B,因此STB B此時接收兩個媒體流,它們之間相差3分鐘。
1003)A欣賞的內容開始取自組播流Sab。
1004)B欣賞的內容仍然取自單播流Sb。
過了1分鐘后,如附圖11所示,基本情況與附圖10類似,不再贅述,但是A和B的STB中的緩沖區存了1分鐘的內容,都是來自組播流Sab的。
又過了2分鐘后,單播流Sb被刪除了,如附圖12所示,具體說明如下1201)組播流Sab繼續傳送到STB A和STB B。
1202)A的欣賞點就是組播流Sab的當前播放點,緩沖區中已經錄制了3分鐘的內容。
1203)B的欣賞點在緩沖區內,緩沖區中已經錄制了3分鐘的內容,此時單播流Sb刪除了,STB從緩沖區中取內容播放。
單播流Sb刪除1分鐘后,如附圖13所示,基本情況與附圖12類似,不再贅述,只是STB的緩沖區中的內容又多了1分鐘。需注意STB B的欣賞點指向緩沖區固定的位置,它離緩沖區右端的距離是3分鐘的內容。
在上述描述的例子的基礎上,如果有用戶C時移同一頻道22分鐘或者24分鐘,其STB時移緩沖區僅支持10分鐘,則可以將其單播流并入Sab,新的組播流仍然時移20分鐘,只是C的STB也加入這個組播組。
用戶在時移組播的基礎上重新時移,包括暫停、快退、快進,只要欣賞點還未移出時移緩沖區,則繼續留在組播組里,而一旦其欣賞點移出時移緩沖區,則STB必須通知服務器為其另外創建單播流,并脫離那個組播組。這個過程和在直播的基礎上進行時移是一樣的,只是在STB接收時移組播流內容時可以快進到直播時間點,而不僅僅是時移組播流的當前播放點,只不過STB越過時移組播流的當前播放點之后必然離開這個組播組。
應當理解的是,對本領域普通技術人員來說,可以根據上述說明加以改進或變換,而所有這些改進和變換都應屬于本發明所附權利要求的保護范圍。
權利要求
1.一種交互式網絡電視的時移方法,其用于具有本地時移緩沖區的機頂盒及媒體服務器系統中,其步驟包括A1、機頂盒從媒體服務器接收并播放組播媒體流,同時將所述組播媒體流的數據緩存到時移緩沖區;A2、當進行時移播放時,機頂盒判斷時移后所播放媒體內容是否存在于時移緩沖區,是則執行步驟A3,否則執行步驟A4;A3、機頂盒從時移緩沖區取出內容進行播放,并且繼續錄制當前組播媒體流數據進入時移緩沖區;不執行步驟A4;A4、機頂盒向媒體服務器申請創建單播媒體流后播放所述單播媒體流。
2.根據權利要求1所述的時移方法,其特征在于,步驟A3還包括用戶進行快進操作時,機頂盒判斷快進后所播放內容存在于時移緩沖區,則播放緩沖區的內容,否則播放組播流的內容。
3.根據權利要求1所述的時移方法,其特征在于,步驟A4還包括步驟B1、媒體服務器檢索所述時移單播媒體流可加入的時移組播媒體流,未找到可加入的時移組播媒體流,則執行步驟B2,否則執行步驟B4;B2、媒體服務器檢索到可與所述時移單播媒體流合并的其它時移單播媒體流;B3、媒體服務器為可合并的時移單播媒體流建立時移組播媒體流;所述時移組播媒體流的起始時間點是所述可合并的時移單播媒體流中時移時間最小的單播媒體流的當前播放時間點;B4、媒體服務器通知正在接收所述可合并時移單播媒體流的機頂盒接收所述時移組播媒體流,并停止所述可合并的時移單播媒體流;其中當前時移播放時間點早于所述共同的時移組播媒體流當前播放時間點的機頂盒,繼續接收并播放所述時移單播媒體流,并將所述時移組播媒體流的內容保存到時移緩沖區,直到所述時移單播媒體流播放時間點到達共同的時移組播媒體流起始時間點后,才開始播放所述時移組播媒體流,其內容取自所述機頂盒的時移緩沖區,同時停止所述單播媒體流。
4.根據權利要求3所述的時移方法,其特征在于,步驟B1之前還包括步驟機頂盒記錄以正常速度時移播放單播媒體流的持續時間,判斷所述持續時間達到設定值,將所述持續時間達到設定值的信息通知媒體服務器。
5.根據權利要求3所述的時移方法,其特征在于,步驟B1之前還包括步驟媒體服務器記錄所述機頂盒以正常速度時移播放單播媒體流的持續時間,判斷所述持續時間達到設定值。
6.根據權利要求1所述的時移方法,其特征在于,步驟A4在機頂盒向媒體服務器申請創建單播媒體流時,還包括步驟所述機頂盒將機頂盒能力信息通知所述媒體服務器;其中,所述機頂盒能力信息包括所述機頂盒能否增加一個媒體流的處理、所述時移緩沖區可支持的時移時間長度。
7.根據權利要求1所述的時移方法,其特征在于,步驟A1還包括步驟機頂盒判斷接收的媒體流數據超過時移緩沖區的最大存儲量,按進入時移緩沖區的時間順序丟棄時移緩沖區中最早的媒體流數據,同時錄制當前媒體流數據進入時移緩沖區。
8.根據權利要求1所述的時移方法,其特征在于,機頂盒為所述用戶播放時移單播媒體流過程中,當用戶進行快進操作時,步驟A4還包括步驟所述機頂盒判斷當前媒體流數據在時移緩沖區中是否存在,是則執行步驟A3;否則繼續執行步驟A4。
9.根據權利要求1所述的時移方法,其特征在于,步驟A4還包括步驟所述機頂盒撤出組播組,停止錄制組播媒體流數據進入時移緩沖區。
10.根據權利要求1所述的時移方法,其特征在于,步驟A4還包括步驟所述機頂盒留在組播組,繼續錄制組播媒體流數據進入時移緩沖區。
11.根據權利要求1所述的時移方法,其特征在于,步驟A4還包括步驟C1、所述機頂盒判斷所訪問的當前媒體流數據在時移緩沖區中是否存在,否則播放單播媒體流,不再執行后續步驟;C2、所述機頂盒給媒體服務器發送停播單播媒體流的通知;C3、所述機頂盒播放在時移緩沖區中的所述當前媒體流數據。
12.根據權利要求11所述的時移方法,其特征在于,步驟C1之前還包括步驟所述機頂盒撤出組播組,停止錄制組播媒體流數據進入時移緩沖區;則步驟C3還包括步驟D1、所述機頂盒判斷所訪問的當前媒體流在時移緩沖區中的數據已經播放完畢;D2、機頂盒給媒體服務器發送恢復發送單播媒體流的通知,所述通知包括單播媒體流的接續點;D3、媒體服務器為所述機頂盒發送單播媒體流,機頂盒錄制單播媒體流數據進入時移緩沖區。
13.根據權利要求12所述時移方法,其特征在于步驟D3還包括用戶進行快進操作,所述機頂盒判斷播放數據存在于所述時移緩沖區,則播放時移緩沖區中的內容,否則加入直播組播組,播放直播組播組的內容,并通知媒體服務器刪除所述時移單播流,直播組播組的內容繼續錄制到時移緩沖區。
14.一種交互式網絡電視的時移系統,其特征在于,其包括至少一具有時移緩沖功能的機頂盒和至少一媒體服務器,所述機頂盒與所述媒體服務器通過網絡連接,所述時移緩沖功能采用時移緩沖區實現。
15.根據權利要求14所述的時移系統,其特征在于,所述時移緩沖區是可提供存儲空間的設備所提供的存儲空間。
16.根據權利要求15所述的時移系統,其特征在于,所述時移緩沖區設置在機頂盒的內部。
17.根據權利要求16所述的時移系統,其特征在于,所述時移緩沖區是隨機存取存儲器、閃存或硬盤。
18.根據權利要求15所述的時移系統,其特征在于,所述時移緩沖區設置在機頂盒的外部,其與所述機頂盒通過網絡連接或專用接口連接。
19.根據權利要求18所述的時移系統,其特征在于,所述可提供存儲空間的設備是基于隨機存取存儲器或閃存的移動存儲設備、移動硬盤、計算機、局域網絡媒體中心、局域網絡存儲設備或個人視頻錄制設備。
全文摘要
本發明提供了一種交互式網絡電視的時移方法,用于具有本地時移緩沖區的機頂盒及媒體服務器系統中,包括步驟A1.機頂盒從媒體服務器接收并播放組播媒體流,同時將組播媒體流的數據緩存到時移緩沖區;A2.當進行時移播放時,機頂盒判斷時移后所播放媒體內容是否存在于時移緩沖區,否則執行步驟A4;A3.機頂盒從時移緩沖區取出內容進行播放,不執行后續步驟;A4.機頂盒向媒體服務器申請創建單播媒體流后播放單播媒體流。本發明還提供了一種交互式網絡電視的時移系統。通過將組播媒體流數據存儲在與機頂盒相連接的時移緩沖區,實現了機頂盒的本地時移功能,從而減輕媒體服務器的負荷,使得媒體服務器支持更多同時發生的時移用戶數量。
文檔編號H04N5/00GK101094378SQ20061006126
公開日2007年12月26日 申請日期2006年6月21日 優先權日2006年6月21日
發明者丁志明 申請人:華為技術有限公司