新四季網

頻道切換的方法及裝置與流程

2023-06-08 09:21:16 2


本發明實施例涉及視頻領域,並且更具體地,涉及頻道切換的方法及裝置。



背景技術:

OTT是「Over The Top」的縮寫,是指通過網際網路向用戶提供各種應用服務。這種應用和目前運營商所提供的通信業務不同,它僅利用運營商的網絡,而服務則由運營商之外的第三方提供。目前,典型的OTT業務有網際網路電視業務(OTT視頻業務),蘋果應用商店等。

「Over The Top」這個詞彙來源於籃球等體育運動,是「過頂傳球」之意,指的是籃球運動員在他們頭之上來回傳送籃球而達到目的地。網際網路企業利用電信運營商的寬帶網絡發展自己的業務,如國外的谷歌、蘋果、Skype、Netflix、國內的QQ等。如Netflix網絡視頻以及各種移動應用商店裡的應用就都是OTT。不少OTT服務商直接面向用戶提供服務和計費,使運營商淪為單純的「傳輸管道」,根本無法觸及管道中傳輸的巨大價值。

OTT視頻業務近年來呈現快速發展的趨勢,不僅傳統的視頻網站進軍OTT領域,傳統的電信運營商也開始涉足OTT業務分一杯羹,如德國電信計劃在2016年推出的4K視頻業務,就是IPTV+OTT的模式。與傳統的IPTV業務類似,OTT業務主要場景同樣包括直播和點播。不同的是:傳統的IPTV業務多採用RTP/RTSP協議,底層多基於不可靠傳輸的UDP協議;而OTT的直播和點播,多採用HLS/DASH/MSS等流媒體協議,底層基於可靠傳輸的TCP協議。而且,電信運營商傳統的IPTV業務包含點播和直播,其中直播多採用RTP組播的方式,這種方式對網絡有較高的要求,通常要求專網專用。如果電信運營商想要在同一網絡中既提供普通數據業務(如寬帶上網),同時又提供直播和點播等視頻業務,那麼OTT業務比傳統IPTV業務更適合,因為OTT業務多採用單播的方式。因此,OTT業務較之傳統IPTV業務的優勢是顯而易見的。

然而,傳統的IPTV直播業務發展多年,已經形成一套較為穩定的CBR組播+倍速單播+組播切換的FCC方案,並形成相應的IETF標準(draft-ietf-avt-rapid-acquisition-for-rtp),這可以將IPTV直播下的頻道切換時延控制在1秒左右,引入的時移深度亦可控。而在OTT場景的直播業務中,由於底層流化協議和傳輸方式發生變化,IPTV的FCC解決方案已經不再適用,而OTT採用的主流協議HLS/DASH/MSS中也沒有FCC相關的建議或者標準,由此使得OTT場景的直播業務中,頻道切換時延較大,且頻道切換引入的時移也較大。



技術實現要素:

本發明實施例提供一種頻道切換方法及裝置,應用在OTT視頻業務,,能夠減少頻道切換過程中的時延,為OTT場景下的直播業務提供高效的頻道切換功能。

第一方面,本發明實施例提供一種頻道切換方法,應用在OTT(Over The Top)視頻業務,所述方法包括:

接收第一頻道的直播碼流,所述第一頻道的直播碼流中包含N個媒體文件集合,其中,第一媒體文件集合中包含n個媒體文件,其中N為大於或等於1的整數,n為大於或等於2的整數,所述第一媒體文件集合為所述N個媒體文件集合中的任意一個媒體文件集合;

採用不同編碼方式對所述第一頻道的直播碼流分別進行編碼,同時生成主流和輔流;所述主流包含所述N個媒體文件集合和主流編碼信息,所述輔流包含所述N個媒體文件集合和輔流編碼信息,所述主流用於直播,所述輔流用於頻道切換;

根據所述第一頻道的頻道信息、所述主流的編碼信息和所述輔流的編碼信息,生成所述第一頻道的播放列表,所述播放列表用於當客戶端發出頻道切換指令時,指引所述客戶端根據所述主流和所述輔流進行頻道切換。

第一方面的頻道切換方法是由伺服器執行的,伺服器通過採用不同編碼方式對所述第一頻道的直播碼流分別進行編碼生成主流和輔流,其中主流用於直播,輔流則專門用於頻道切換,由此使得發生頻道切換時由專門的輔流指引進行,從而提高頻道切換的效率。

在第一方面的一種可能的實現方式中,所述採用不同編碼方式對所述第一頻道的直播碼流分別進行編碼,同時生成主流和輔流,包括:

採用視頻編碼標準對所述第一頻道的直播碼流進行編碼生成主流;

採用視頻編碼標準對所述第一頻道的直播碼流進行編碼,並在所述第一頻道的直播碼流中插入輔助幀生成輔流。

由於這種實現方式在第一頻道的直播碼流中插入輔助幀生成輔流,這樣為頻道切換時碼流的接入提供了更多的接入點,從而能夠即時的獲取解碼刷新的圖像幀進行播放,使得頻道切換可以有更少的切換時延。

可選的,在這種可能的實現方式中,所述輔助幀包括:可獨立解碼的切換I幀和依賴所述切換I幀解碼的切換P幀,所述在所述第一頻道的直播碼流中插入輔助幀生成輔流,具體包括:

在所述第一頻道的直播碼流所包含的N個媒體文件集合中的每一個媒體文件中,將所述切換I幀和所述切換P幀依次插入;所述切換I幀和所述切換P幀用於為所述輔流提供多於所述主流的碼流接入點。

由於輔助幀包括可獨立解碼的切換I幀和依賴所述切換I幀解碼的切換P幀,且切換I幀和切換P幀依次插入到直播碼流中生成輔流,這樣,這些切換I幀和切換P幀可以為頻道切換提供多於主流的碼流接入點,使得終端可以根據這些切換I幀和切換P幀即時的獲取解碼刷新的圖像幀進行播放,從而使頻道切換可以有更少的切換時延。

需要說明的是,此處的依次插入是將切換I幀和切換P幀間隔插入的,且這種插入方式可以是均勻的插入,也可以不做均勻插入而按照其他規則進行插入。

在第一方面的一種可能的實現方式中,所述n個媒體文件中的每一個媒體文件均包含一個或多個GOP(group of picture畫面組),其中,每一個GOP中包含兩幀或兩幀以上圖像幀;

所述將所述切換I幀和所述切換P幀依次插入具體包括:將所述切換I幀和所述切換P幀按預設密度依次插入,其中所述預設密度根據所述GOP的長度設置,所述GOP的長度由所述GOP所包含的圖像幀的數目表徵。

在第一方面的另一種可能的實現方式中,所述第一頻道的播放列表中包含所述主流的編碼信息、所述輔流的編碼信息、所述第一頻道的ID號以及所述N個媒體文件集合中所包含的媒體文件的下載連結。

第二方面,本發明實施例提供一種頻道切換方法,應用在OTT(Over The Top)視頻業務,所述方法包括:

發出頻道切換指令,並停止獲取當前播放頻道的媒體文件;

向伺服器請求第一頻道的播放列表,所述第一頻道為所述頻道切換指令指示的待切換至的新頻道;

接收所述第一頻道的播放列表,並根據所述第一頻道的播放列表和主流、輔流進行頻道切換,所述主流和所述輔流是採用不同編碼方式對所述第一頻道的直播碼流分別進行編碼得到的。

第二方面的頻道切換方法是由終端執行的,終端通過接收第一頻道的播放列表,並根據第一頻道的播放列表和主流、輔流進行頻道切換,其中主流和輔流是採用不同編碼方式對所述第一頻道的直播碼流分別進行編碼得到的,其中主流用於直播,輔流則專門用於頻道切換,由此使得發生頻道切換時由專門的輔流指引進行,從而提高頻道切換的效率。

在第二方面的一種可能的實現方式中,所述第一頻道的播放列表中包含主流的編碼信息、輔流的編碼信息、所述第一頻道的ID號以及所述第一頻道的直播碼流中包含的N個媒體文件集合中的媒體文件的下載連結,所述N為大於或等於1的整數。

在第二方面的另一種可能的實現方式中,所述根據所述第一頻道的播放列表和主流、輔流進行頻道切換包括:

根據所述第一頻道的播放列表選擇所述輔流中離所述頻道切換指令的接收時刻最近的碼流接入點;並根據所述第一頻道的播放列表中的所述N個媒體文件集合所包含的媒體文件的下載連結,下載當前媒體文件中尚未播放的圖像幀並播放所述圖像幀,所述當前媒體文件為所述輔流中與所述最近的碼流接入點一一對應的圖像幀所在的媒體文件;直至所述當前媒體文件中的所有圖像幀均播放完畢則切換到所述主流中與所述當前媒體文件一一對應的媒體文件的下一個媒體文件進行播放。

由於該實現方式為頻道切換提供了輔流,而不僅僅依賴於主流進行頻道切換,我們知道,主流中一個媒體文件只有一個碼流接入點用於接入,且主流的解碼依賴性比較複雜,而該實現方法中提供的輔流為頻道切換提供了另一種可能,使得發生頻道切換時可以根據第一頻道的播放列表選擇輔流中離頻道切換指令的接收時刻最近的碼流接入點進行接入,由此減少了切換時延且引入更少的切換時移。

根據上一種可能的實現方式,在第二方面的另一種可能的實現方式中,所述方法還包括:

在所述下載當前媒體文件中尚未播放的圖像幀之後,所述直至所述當前媒體文件中的所有圖像幀均播放完畢之前,下載所述主流中與所述當前媒體文件一一對應的媒體文件的下一個媒體文件。

這種可能的實現方式在輔流播放完畢之前即開始下載主流中與當前媒體文件一一對應的媒體文件的下一個媒體文件,這樣,一旦當前媒體文件播放完成,就可以直接接入主流的下一個媒體文件開始播放,由此使得輔流和主流之間的切換無縫連結,減少切換時延。

在第二方面的又一種可能的實現方式中,所述主流和所述輔流是採用不同編碼方式對所述第一頻道的直播碼流分別進行編碼得到的,具體包括:

所述主流為採用視頻編碼標準對所述第一頻道的直播碼流進行編碼生成的;

所述輔流為採用視頻編碼標準對所述第一頻道的直播碼流進行編碼,並在所述第一頻道的直播碼流中插入輔助幀生成的。

由於這種實現方式在第一頻道的直播碼流中插入輔助幀生成輔流,這樣為頻道切換時碼流的接入提供了更多的接入點,從而能夠即時的獲取解碼刷新的圖像幀進行播放,使得頻道切換可以有更少的切換時延。

在第二方面的再一種可能的實現方式中,所述輔助幀包括:可獨立解碼的切換I幀和依賴所述切換I幀解碼的切換P幀,所述在所述第一頻道的直播碼流中插入輔助幀,具體包括:

在所述第一頻道的直播碼流所包含的N個媒體文件集合中的每一個媒體文件中,將所述切換I幀和所述切換P幀按預設密度依次插入;所述切換I幀和所述切換P幀用於為所述輔流提供多於所述主流的碼流接入點。

由於輔助幀包括可獨立解碼的切換I幀和依賴所述切換I幀解碼的切換P幀,且切換I幀和切換P幀按照預設密度依次插入到直播碼流中生成輔流,這樣,這些切換I幀和切換P幀可以為頻道切換提供多於主流的碼流接入點,使得終端可以根據這些切換I幀和切換P幀即時的獲取解碼刷新的圖像幀進行播放,從而使頻道切換可以有更少的切換時延。

第三方面,本發明實施例提供一種頻道切換裝置,應用在OTT(Over The Top)視頻業務,其特徵在於,所述裝置包括:

接收模塊,用於接收第一頻道的直播碼流,所述第一頻道的直播碼流中包含N個媒體文件集合,其中,第一媒體文件集合中包含n個媒體文件,其中N為大於或等於1的整數,n為大於或等於2的整數,所述第一媒體文件集合為所述N個媒體文件集合中的任意一個媒體文件集合;

編碼模塊,用於採用不同編碼方式對所述第一頻道的直播碼流分別進行編碼,同時生成主流和輔流;所述主流包含所述N個媒體文件集合和主流編碼信息,所述輔流包含所述N個媒體文件集合和輔流編碼信息,所述主流用於直播,所述輔流用於頻道切換;

播放列表生成模塊,用於根據所述第一頻道的頻道信息、所述主流的編碼信息和所述輔流的編碼信息,生成所述第一頻道的播放列表,所述播放列表用於當客戶端發出頻道切換指令時,指引所述客戶端根據所述主流和所述輔流進行頻道切換。

第三方面的頻道切換裝置通過採用不同編碼方式對所述第一頻道的直播碼流分別進行編碼生成主流和輔流,其中主流用於直播,輔流則專門用於頻道切換,由此使得發生頻道切換時由專門的輔流指引進行,從而提高頻道切換的效率。

在第三方面的一種可能的實現方式中,所述編碼模塊具體用於:

採用視頻編碼標準對所述第一頻道的直播碼流進行編碼生成主流;

採用視頻編碼標準對所述第一頻道的直播碼流進行編碼,並在所述第一頻道的直播碼流中插入輔助幀生成輔流。

由於這種實現方式在第一頻道的直播碼流中插入輔助幀生成輔流,這樣為頻道切換時碼流的接入提供了更多的接入點,從而能夠即時的獲取解碼刷新的圖像幀進行播放,使得頻道切換可以有更少的切換時延。

可選的,在這種可能的實現方式中,所述輔助幀包括:可獨立解碼的切換I幀和依賴所述切換I幀解碼的切換P幀,所述編碼模塊具體用於:

在所述第一頻道的直播碼流所包含的N個媒體文件集合中的每一個媒體文件中,將所述切換I幀和所述切換P幀依次插入;所述切換I幀和所述切換P幀用於為所述輔流提供多於所述主流的碼流接入點。

由於輔助幀包括可獨立解碼的切換I幀和依賴所述切換I幀解碼的切換P幀,且切換I幀和切換P幀依次插入到直播碼流中生成輔流,這樣,這些切換I幀和切換P幀可以為頻道切換提供多於主流的碼流接入點,使得終端可以根據這些切換I幀和切換P幀即時的獲取解碼刷新的圖像幀進行播放,從而使頻道切換可以有更少的切換時延。

需要說明的是,此處的依次插入是將切換I幀和切換P幀間隔插入的,且這種插入方式可以是均勻的插入,也可以不做均勻插入而按照其他規則進行插入。

在第三方面的一種可能的實現方式中,所述n個媒體文件中的每一個媒體文件均包含一個或多個GOP(group of picture畫面組),其中,每一個GOP中包含兩幀或兩幀以上圖像幀;

所述編碼模塊具體用於:將所述切換I幀和所述切換P幀按預設密度依次插入,其中所述預設密度根據所述GOP的長度設置,所述GOP的長度由所述GOP所包含的圖像幀的數目表徵。

在第三方面的另一種可能的實現方式中,所述第一頻道的播放列表中包含所述主流的編碼信息、所述輔流的編碼信息、所述第一頻道的ID號以及所述N個媒體文件集合中所包含的媒體文件的下載連結。

第四方面,本發明實施例提供一種頻道切換裝置,應用在OTT(Over The Top)視頻業務,其特徵在於,所述裝置包括:

發送模塊,用於發出頻道切換指令,並停止獲取當前播放頻道的媒體文件;

所述發送模塊還用於,向伺服器請求第一頻道的播放列表,所述第一頻道為所述頻道切換指令指示的待切換至的新頻道;

接收模塊,用於接收所述第一頻道的播放列表;

頻道切換模塊,用於根據所述第一頻道的播放列表和主流、輔流進行頻道切換,所述主流和所述輔流是採用不同編碼方式對所述第一頻道的直播碼流分別進行編碼得到的。

第四方面的頻道切換裝置通過接收第一頻道的播放列表,並根據第一頻道的播放列表和主流、輔流進行頻道切換,其中主流和輔流是採用不同編碼方式對所述第一頻道的直播碼流分別進行編碼得到的,其中主流用於直播,輔流則專門用於頻道切換,由此使得發生頻道切換時由專門的輔流指引進行,從而提高頻道切換的效率。

在第四方面的一種可能的實現方式中,所述第一頻道的播放列表中包含主流的編碼信息、輔流的編碼信息、所述第一頻道的ID號以及所述第一頻道的直播碼流中包含的N個媒體文件集合中的媒體文件的下載連結,所述N為大於或等於1的整數。

在第四方面的另一種可能的實現方式中,所述頻道切換模塊具體用於:

根據所述第一頻道的播放列表選擇所述輔流中離所述頻道切換指令的接收時刻最近的碼流接入點;並根據所述第一頻道的播放列表中的所述N個媒體文件集合所包含的媒體文件的下載連結,下載當前媒體文件中尚未播放的圖像幀並播放所述圖像幀,所述當前媒體文件為所述輔流中與所述最近的碼流接入點一一對應的圖像幀所在的媒體文件;直至所述當前媒體文件中的所有圖像幀均播放完畢則切換到所述主流中與所述當前媒體文件一一對應的媒體文件的下一個媒體文件進行播放。

由於該實現方式為頻道切換提供了輔流,而不僅僅依賴於主流進行頻道切換,我們知道,主流中一個媒體文件只有一個碼流接入點用於接入,且主流的解碼依賴性比較複雜,而該實現方法中提供的輔流為頻道切換提供了另一種可能,使得發生頻道切換時可以根據第一頻道的播放列表選擇輔流中離頻道切換指令的接收時刻最近的碼流接入點進行接入,由此減少了切換時延且引入更少的切換時移。

根據上一種可能的實現方式,在第四方面的另一種可能的實現方式中,所述頻道切換模塊還用於:

在所述下載當前媒體文件中尚未播放的圖像幀之後,所述直至所述當前媒體文件中的所有圖像幀均播放完畢之前,下載所述主流中與所述當前媒體文件一一對應的媒體文件的下一個媒體文件。

這種可能的實現方式在輔流播放完畢之前即開始下載主流中與當前媒體文件一一對應的媒體文件的下一個媒體文件,這樣,一旦當前媒體文件播放完成,就可以直接接入主流的下一個媒體文件開始播放,由此使得輔流和主流之間的切換無縫連結,減少切換時延。

在第四方面的又一種可能的實現方式中,所述主流和所述輔流是採用不同編碼方式對所述第一頻道的直播碼流分別進行編碼得到的,具體包括:

所述主流為採用視頻編碼標準對所述第一頻道的直播碼流進行編碼生成的;

所述輔流為採用視頻編碼標準對所述第一頻道的直播碼流進行編碼,並在所述第一頻道的直播碼流中插入輔助幀生成的。

由於這種實現方式在第一頻道的直播碼流中插入輔助幀生成輔流,這樣為頻道切換時碼流的接入提供了更多的接入點,從而能夠即時的獲取解碼刷新的圖像幀進行播放,使得頻道切換可以有更少的切換時延。

在第四方面的再一種可能的實現方式中,所述輔助幀包括:可獨立解碼的切換I幀和依賴所述切換I幀解碼的切換P幀,所述在所述第一頻道的直播碼流中插入輔助幀,具體包括:

在所述第一頻道的直播碼流所包含的N個媒體文件集合中的每一個媒體文件中,將所述切換I幀和所述切換P幀按預設密度依次插入;所述切換I幀和所述切換P幀用於為所述輔流提供多於所述主流的碼流接入點。

由於輔助幀包括可獨立解碼的切換I幀和依賴所述切換I幀解碼的切換P幀,且切換I幀和切換P幀按照預設密度依次插入到直播碼流中生成輔流,這樣,這些切換I幀和切換P幀可以為頻道切換提供多於主流的碼流接入點,使得終端可以根據這些切換I幀和切換P幀即時的獲取解碼刷新的圖像幀進行播放,從而使頻道切換可以有更少的切換時延。

第五方面,一種支持頻道切換的伺服器,應用在OTT(Over The Top)視頻業務,其特徵在於,所述伺服器包括:發送埠,接收埠,總線,處理器,存儲器,所述總線用於連接所述發送埠,所述接收埠,所述處理器以及所述存儲器,所述存儲器用於存儲信息:

所述接收埠用於,接收第一頻道的直播碼流,所述第一頻道的直播碼流中包含N個媒體文件集合,其中,第一媒體文件集合中包含n個媒體文件,其中N為大於或等於1的整數,n為大於或等於2的整數,所述第一媒體文件集合為所述N個媒體文件集合中的任意一個媒體文件集合;

所述處理器用於,採用不同編碼方式對所述第一頻道的直播碼流分別進行編碼,同時生成主流和輔流;所述主流包含所述N個媒體文件集合和主流編碼信息,所述輔流包含所述N個媒體文件集合和輔流編碼信息,所述主流用於直播,所述輔流用於頻道切換;

所述處理器還用於,根據所述第一頻道的頻道信息、所述主流的編碼信息和所述輔流的編碼信息,生成所述第一頻道的播放列表,所述播放列表用於當客戶端發出頻道切換指令時,指引所述客戶端根據所述主流和所述輔流進行頻道切換;

所述發送埠用於發送所述第一頻道的播放列表。

第五方面提供的支持頻道切換的伺服器,通過採用不同編碼方式對所述第一頻道的直播碼流分別進行編碼生成主流和輔流,其中主流用於直播,輔流則專門用於頻道切換,由此使得發生頻道切換時由專門的輔流指引進行,從而提高頻道切換的效率。

第六方面,一種支持頻道切換的終端,應用在OTT(Over The Top)視頻業務,其特徵在於,所述客戶端包括:發送器、接收器、處理器,

所述發送器用於發出頻道切換指令,並停止獲取當前播放頻道的媒體文件;

所述發送器還用於向伺服器發送請求,所述請求用於請求第一頻道的播放列表,所述第一頻道為所述頻道切換指令指示的待切換至的新頻道;

所述接收器用於接收所述第一頻道的播放列表;

所述處理器用於據所述第一頻道的播放列表和主流、輔流進行頻道切換,所述主流和所述輔流是採用不同編碼方式對所述第一頻道的直播碼流分別進行編碼得到的。

第六方面提供的支持頻道切換的終端,通過接收第一頻道的播放列表,並根據第一頻道的播放列表和主流、輔流進行頻道切換,其中主流和輔流是採用不同編碼方式對所述第一頻道的直播碼流分別進行編碼得到的,其中主流用於直播,輔流則專門用於頻道切換,由此使得發生頻道切換時由專門的輔流指引進行,從而提高頻道切換的效率。

附圖說明

為了更清楚地說明本發明實施例的技術方案,下面將對本發明實施例中所需要使用的附圖作簡單地介紹,顯而易見地,下面所描述的附圖僅僅是本發明的一些實施例,對於本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。

圖1是編碼後的視頻序列圖;

圖2是本發明提供的頻道切換方法的一個實施例;

圖3是本發明提供的頻道切換方法的另一個實施例;

圖4是本發明提供的頻道切換方法的又一個實施例;

圖5是本發明提供的頻道切換裝置的一個實施例;

圖6是本發明提供的頻道切換裝置的另一個實施例;

圖7是本發明提供的支持頻道切換的伺服器實施例;

圖8是本發明提供的支持頻道切換的終端實施例。

具體實施方式

本發明實施例提供頻道切換方法和相關裝置,以期能夠降低OTT視頻業務中的頻道切換時延並減少頻道切換引入的時移。

為了使本技術領域的人員更好地理解本發明方案,下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚地描述,顯然,所描述的實施例僅僅是本發明一部分的實施例,而不是全部的實施例。基於本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都應當屬於本發明保護的範圍。

本發明說明書、權利要求書和附圖中出現的術語「第一」、「第二」等表述是用於區別不同的對象,而並非用於描述特定的順序。此外,術語「包括」和「具有」以及它們任何變形,意圖在於覆蓋不排他的包含。例如包含了一系列步驟或單元的過程、方法、系統、產品或設備沒有限定於已列出的步驟或單元,而是可選地還包括沒有列出的步驟或單元,或可選地還包括對於這些過程、方法、產品或設備固有的其它步驟或單元。

下面先對本發明實施例可能涉及的一些概念進行簡單介紹。

OTT(Over The Top)直播的基本原理介紹:

OTT直播一般採用S/C結構,包含OTT直播伺服器和客戶端兩部分。OTT直播的每個頻道,一般說來包含1路碼流和1個播放列表文件(playlist)。碼流一般為長度1秒到幾十秒不等的媒體文件集合,該媒體文件稱為分片,也稱分段(segment);播放列表文件中包含碼流的編碼信息、節目信息,以及各個分片的下載連結。

當客戶端收看直播頻道時,需要先向直播伺服器請求該頻道的播放列表,並根據具體的協議規範(通常為HLS/DASH/MSS)對播放列表進行解析,得到媒體數據對應的下載連結,進而通過HTTP/TCP協議下載頻道的分片並播放。

由於直播內容是實時的,因此直播伺服器上的播放列表和媒體數據也會實時更新。直播伺服器維護一個長度固定的時間窗口,不斷產生新的分片、刪除過期的分片,並定期更新播放列表。相應的,客戶端也必須定期去更新播放列表,從而獲取新的分片的下載連結。

FCC(Fast Channel Change,快速頻道切換)技術相關介紹:

在直播業務中,頻道切換時延和引入的時移是用戶體驗的重要指標之一。

頻道切換時延是指,從客戶端發起頻道切換請求開始,到客戶端可以播放新頻道第一幀畫面的時間。時延越小,用戶體驗越好。

頻道切換引入的時移是指,客戶端切換頻道後,播放第一幀畫面時的絕對時間與該畫面的產生時的絕對時間之間的插值。時移越小,用戶看到的畫面越接近直播的實時畫面。

傳統的IPTV直播業務發展多年,已經形成一套較為穩定的CBR組播+倍速單播+組播切換的FCC方案,並形成相應的IETF標準(draft-ietf-avt-rapid-acquisition-for-rtp),頻道切換時延可以達到1秒左右,引入的時移深度可控。

但在OTT場景的直播業務中,由於底層流化協議和傳輸方式發生變化,IPTV的FCC解決方案已經不再適用,而OTT採用的主流協議HLS/DASH/MSS中也沒有FCC相關的建議或者標準。

在OTT直播中頻道切換的時延組成包括:

1、停止原頻道播放的時間;

2、獲取新頻道播放列表的時間;

3、等待新頻道SAP的時間;

4、下載新頻道分片的時間;

5、準備播放新頻道分片的時間;

其中,第2、3、4點是時延的主要組成部分,根據開發過程中的實驗數據,頻道切換時延可達2秒以上。

OTT直播的頻道切換引入的時移取決於分片的長度以及客戶端切換頻道的時間點與分片SAP(Stream Access Point,碼流接入點)之間的距離。以視頻分片長度為10秒為例,切換帶來的時移均值可達5秒。

目前OTT直播頻道切換性能與IPTV相比差距較大,如果不能有效提升OTT直播切換頻道的性能,將對OTT業務的推廣產生不利的影響。

視頻編解碼相關知識

最初由攝像機採集的視頻數據是未經過編碼壓縮的原始數據,數據量非常大,完全不可能對原始視頻數據進行存儲或者網絡傳輸。為了解決這個問題,通用按照某種編碼標準對原始數據進行編碼,目前主流的編碼標準包括H.265,H.264,MPEG2等。編碼後的視頻序列中通常包含I/P/B三種類型的幀,每一幀即一副圖像,編碼後的視頻序列如圖1所示,其中包括I幀可獨立解碼,體積最大,P幀需要依賴I幀和前一P幀進行解碼,體積較小,B幀需要依賴前後2幀來進行解碼,體積最小。圖中的箭頭表明解碼依賴性,箭頭引出的幀解碼需要依賴箭頭指向的幀。

在本發明的實施例中提到的SAP(stream access point,流接入點)為使用戶從該點接入此流,可以立刻解碼播放。SAP必須是I幀,如果是P或者B幀的話,就算用戶獲取了該幀的數據,由於該幀解碼需要依賴前面的幀,所以也無法解碼播放。

下面繼續探討本發明實施例的技術方案。

下面先介紹本發明實施例提供的頻道切換方法,本發明實施例提供的頻道切換方法的執行主體可以是伺服器或者終端,其中,該終端可以是任何可以播放視頻的裝置,如電視,筆記本電腦、平板電腦、個人電腦、手機等設備。

如圖2所示,本發明提供的頻道切換方法的一個實施例,一種頻道切換方法100,應用在OTT視頻業務,可以包括:

S101、接收第一頻道的直播碼流,所述第一頻道的直播碼流中包含N個媒體文件集合。

其中,第一媒體文件集合中包含n個媒體文件,其中N為大於或等於1的整數,n為大於或等於2的整數,所述第一媒體文件集合為所述N個媒體文件集合中的任意一個媒體文件集合。

S103、採用不同編碼方式對所述第一頻道的直播碼流分別進行編碼,同時生成主流和輔流;所述主流包含所述N個媒體文件集合和主流編碼信息,所述輔流包含所述N個媒體文件集合和輔流編碼信息,所述主流用於直播,所述輔流用於頻道切換。

S105、根據所述第一頻道的頻道信息、所述主流的編碼信息和所述輔流的編碼信息,生成所述第一頻道的播放列表,所述播放列表用於當客戶端發出頻道切換指令時,指引所述客戶端根據所述主流和所述輔流進行頻道切換。

其中,所述第一頻道的頻道信息可以包括頻道標識,例如頻道ID。

上述頻道切換方法是由伺服器執行的,伺服器通過採用不同編碼方式對所述第一頻道的直播碼流分別進行編碼生成主流和輔流,其中主流用於直播,輔流則專門用於頻道切換處理,由此使得發生頻道切換時由專門的輔流指引進行,從而提高頻道切換的效率。

需要說明的是,上述方法的步驟可以是同一個伺服器執行的,也可以是不同伺服器分開執行的,例如伺服器1(我們可以叫它碼流發生伺服器)執行S101和S103,伺服器2(我們可以叫它直播伺服器)執行S105,為使得方法實施例不顯得過於零散,此處不再展開,以免贅述。

如圖3所示,在本發明提供的頻道切換方法的另一個實施例中,其中S103、採用不同編碼方式對所述第一頻道的直播碼流分別進行編碼,同時生成主流和輔流,進一步包括:

S1031、採用視頻編碼標準對所述第一頻道的直播碼流進行編碼生成主流。

S1032、採用視頻編碼標準對所述第一頻道的直播碼流進行編碼,並在所述第一頻道的直播碼流中插入輔助幀生成輔流。

具體的,所述輔助幀包括:可獨立解碼的切換I幀和依賴所述切換I幀解碼的切換P幀,則進一步的,在S1032中的,所述在所述第一頻道的直播碼流中插入輔助幀生成輔流具體包括:

在所述第一頻道的直播碼流所包含的N個媒體文件集合中的每一個媒體文件中,將所述切換I幀和所述切換P幀依次插入;所述切換I幀和所述切換P幀用於為所述輔流提供多於所述主流的碼流接入點。

需要說明的是,此處的依次插入是將切換I幀和切換P幀間隔插入的,且這種插入方式可以是均勻的插入,也可以不做均勻插入而按照其他規則進行依次插入。

其中,所述視頻編碼標準可以包括:H.263、H.264、H.265、MPEG1、MPEG2、MPEG4、AVS、REAL8、REAL9、VC1、VP6、VP8、DIVX3、MJPEG等。

為了使讀者更清楚的理解本發明實施例中的「在所述第一頻道的直播碼流中插入輔助幀生成輔流」,此處先解釋一個概念,即GOP(group of picture),GOP通常指一組包含多幅圖像的視頻序列,通常以可以獨立解碼的I幀開始,並且通常也僅包含1個I幀,下面為一個常見GOP:

I P B B P B B P B B P B B P B B

上述GOP共包含16幀,如果按照普通30幀/秒的視頻規格,該GOP可以播放約0.53秒。由於視頻序列中,I幀的體積非常大,通常是P幀和B幀的幾倍甚至十幾倍,有時為了降低視頻序列的碼率,會將GOP的長度拉長,可達數十幀,甚至120幀之多。

在上述實施例中提到的「在所述第一頻道的直播碼流中插入輔助幀生成輔流」中,會在一個分片中插入多個SAP,通常情況下即在一個GOP中插入多個可以獨立解碼的類似I幀(在本發明實施例中叫做切換I幀)作為SAP,主要作用就是將GOP內部解碼依賴性降低,用戶可以在當前GOP內部多個位置開始播放,而無需等待下一個GOP開始的I幀才能播放。

綜上,由於輔助幀包括可獨立解碼的切換I幀和依賴所述切換I幀解碼的切換P幀,且切換I幀和切換P幀依次插入到直播碼流中生成輔流,這樣,這些切換I幀和切換P幀可以為頻道切換提供多於主流的碼流接入點,使得終端可以根據這些切換I幀和切換P幀即時的獲取解碼刷新的圖像幀進行播放,從而使頻道切換可以有更少的切換時延,並引入更小的切換時移。

在上述實施例的基礎上,本發明實施例提供的頻道切換方法進一步包括:所述n個媒體文件中的每一個媒體文件均包含一個或多個GOP(group of picture畫面組),其中,每一個GOP中包含兩幀或兩幀以上圖像幀;

所述將所述切換I幀和所述切換P幀依次插入具體包括:將所述切換I幀和所述切換P幀按預設密度依次插入,其中所述預設密度根據所述GOP的長度設置,所述GOP的長度由所述GOP所包含的圖像幀的數目表徵。

在上述所有實施例的基礎上,可選的,所述第一頻道的播放列表中包含所述主流的編碼信息、所述輔流的編碼信息、所述第一頻道的ID號以及所述N個媒體文件集合中所包含的媒體文件的下載連結。

其中,所述編碼信息中可以包含編碼標準、音頻交織信息,還可能包含字幕信息。

如圖4所示,本發明提供的頻道切換方法的一個實施例,一種頻道切換方法200,應用在OTT視頻業務,可以包括:

S201、發出頻道切換指令,並停止獲取當前播放頻道的媒體文件。

S203、向伺服器請求第一頻道的播放列表,所述第一頻道為所述頻道切換指令指示的待切換至的新頻道。

S205、接收所述第一頻道的播放列表,並根據所述第一頻道的播放列表和主流、輔流進行頻道切換,所述主流和所述輔流是採用不同編碼方式對所述第一頻道的直播碼流分別進行編碼得到的。

其中,所述第一頻道的頻道信息可以包括頻道標識,例如頻道ID。

上述頻道切換方法是由終端執行的,終端通過接收第一頻道的播放列表,並根據第一頻道的播放列表和主流、輔流進行頻道切換,其中主流和輔流是採用不同編碼方式對所述第一頻道的直播碼流分別進行編碼得到的,其中主流用於直播,輔流則專門用於頻道切換,由此使得發生頻道切換時由專門的輔流指引進行,從而提高頻道切換的效率。

在圖4提供的實施例的基礎上,進一步的,所述實施例還包括:所述第一頻道的播放列表中包含主流的編碼信息、輔流的編碼信息、所述第一頻道的ID號以及所述第一頻道的直播碼流中包含的N個媒體文件集合中的媒體文件的下載連結,所述N為大於或等於1的整數。

其中,步驟S205中的,所述根據所述第一頻道的播放列表和主流、輔流進行頻道切換具體包括:

根據所述第一頻道的播放列表選擇所述輔流中離所述頻道切換指令的接收時刻最近的碼流接入點;並根據所述第一頻道的播放列表中的所述N個媒體文件集合所包含的媒體文件的下載連結,下載當前媒體文件中尚未播放的圖像幀並播放所述圖像幀,所述當前媒體文件為所述輔流中與所述最近的碼流接入點一一對應的圖像幀所在的媒體文件;直至所述當前媒體文件中的所有圖像幀均播放完畢則切換到所述主流中與所述當前媒體文件一一對應的媒體文件的下一個媒體文件進行播放。

其中,此處的「下載」可以指終端下載到自己的緩存區域。

其中,此處的「當前媒體文件中尚未播放的圖像幀」可以是一個媒體文件,也可以是一個媒體文件中的部分GOP,甚至可以是媒體文件中GOP的部分圖像幀。

由於該實現方式為頻道切換提供了輔流,而不僅僅依賴於主流進行頻道切換,我們知道,主流中一個媒體文件只有一個碼流接入點用於接入,且主流的解碼依賴性比較複雜,而該實現方法中提供的輔流為頻道切換提供了另一種可能,使得發生頻道切換時可以根據第一頻道的播放列表選擇輔流中離頻道切換指令的接收時刻最近的碼流接入點進行接入,由此減少了切換時延且引入更少的切換時移。

在上述實施例的基礎上,進一步的,本發明實施例提供的視頻切換方法還包括:

在所述下載當前媒體文件中尚未播放的圖像幀之後,所述直至所述當前媒體文件中的所有圖像幀均播放完畢之前,下載所述主流中與所述當前媒體文件一一對應的媒體文件的下一個媒體文件。

這樣,在輔流播放完畢之前即開始下載主流中與當前媒體文件一一對應的媒體文件的下一個媒體文件,一旦當前媒體文件播放完成,就可以直接接入主流的下一個媒體文件開始播放,由此使得輔流和主流之間的切換無縫連結,減少切換時延。

在上述實施例的基礎上,在本發明實施例的S205中:所述主流和所述輔流是採用不同編碼方式對所述第一頻道的直播碼流分別進行編碼得到的,具體包括:

所述主流為採用視頻編碼標準對所述第一頻道的直播碼流進行編碼生成的;

所述輔流為採用視頻編碼標準對所述第一頻道的直播碼流進行編碼,並在所述第一頻道的直播碼流中插入輔助幀生成的。

具體的,所述輔助幀包括:可獨立解碼的切換I幀和依賴所述切換I幀解碼的切換P幀,則所述輔流為在所述第一頻道的直播碼流中插入輔助幀生成的具體包括:

在所述第一頻道的直播碼流所包含的N個媒體文件集合中的每一個媒體文件中,將所述切換I幀和所述切換P幀按預設密度依次插入;所述切換I幀和所述切換P幀用於為所述輔流提供多於所述主流的碼流接入點。

需要說明的是,此處的依次插入是將切換I幀和切換P幀間隔插入的,且這種插入方式可以是均勻的插入,也可以不做均勻插入而按照其他規則進行依次插入。

其中,所述視頻編碼標準可以包括:H.263、H.264、H.265、MPEG1、MPEG2、MPEG4、AVS、REAL8、REAL9、VC1、VP6、VP8、DIVX3、MJPEG等。

為了使讀者更清楚的理解本發明實施例中的「在所述第一頻道的直播碼流中插入輔助幀生成輔流」,此處先解釋一個上面一直提到的概念,即GOP(group of picture),GOP通常指一組包含多幅圖像的視頻序列,通常以可以獨立解碼的I幀開始,並且通常也僅包含1個I幀,下面為一個常見GOP:

I P B B P B B P B B P B B P B B

上述GOP共包含16幀,如果按照普通30幀/秒的視頻規格,該GOP可以播放約0.53秒。由於視頻序列中,I幀的體積非常大,通常是P幀和B幀的幾倍甚至十幾倍,有時為了降低視頻序列的碼率,會將GOP的長度拉長,可達數十幀,甚至120幀之多。

在上述實施例中提到的「在所述第一頻道的直播碼流中插入輔助幀生成輔流」中,會在一個分片中插入多個SAP,通常情況下即在一個GOP中插入多個可以獨立解碼的類似I幀(在本發明實施例中叫做切換I幀)作為SAP,主要作用就是將GOP內部解碼依賴性降低,用戶可以在當前GOP內部多個位置開始播放,而無需等待下一個GOP開始的I幀才能播放。

綜上,由於輔助幀包括可獨立解碼的切換I幀和依賴所述切換I幀解碼的切換P幀,且切換I幀和切換P幀按照預設密度依次插入到直播碼流中生成輔流,這樣,這些切換I幀和切換P幀可以為頻道切換提供多於主流的碼流接入點,使得終端可以根據這些切換I幀和切換P幀即時的獲取解碼刷新的圖像幀進行播放,從而使頻道切換可以有更少的切換時延,並引入更小的切換時移。

如圖5所示,本發明提供的頻道切換裝置的一個實施例,一種頻道切換裝置500,應用在OTT視頻業務,可以包括:

接收模塊501,用於接收第一頻道的直播碼流,所述第一頻道的直播碼流中包含N個媒體文件集合。

其中,第一媒體文件集合中包含n個媒體文件,其中N為大於或等於1的整數,n為大於或等於2的整數,所述第一媒體文件集合為所述N個媒體文件集合中的任意一個媒體文件集合;

編碼模塊503,用於採用不同編碼方式對所述第一頻道的直播碼流分別進行編碼,同時生成主流和輔流;所述主流包含所述N個媒體文件集合和主流編碼信息,所述輔流包含所述N個媒體文件集合和輔流編碼信息,所述主流用於直播,所述輔流用於頻道切換;

播放列表生成模塊505,用於根據所述第一頻道的頻道信息、所述主流的編碼信息和所述輔流的編碼信息,生成所述第一頻道的播放列表,所述播放列表用於當客戶端發出頻道切換指令時,指引所述客戶端根據所述主流和所述輔流進行頻道切換。

其中,所述第一頻道的頻道信息可以包括頻道標識,例如頻道ID。

需要說明的是,所述編碼模塊503可能包括一個編碼器,用於對主流和輔流進行編碼;也可能包括兩個編碼器,用於對主流和輔流分別進行編碼。

上述頻道切換裝置500通過採用不同編碼方式對所述第一頻道的直播碼流分別進行編碼生成主流和輔流,其中主流用於直播,輔流則專門用於頻道切換,由此使得發生頻道切換時由專門的輔流指引進行,從而提高頻道切換的效率。

需要說明的是,上述裝置中的模塊可以在同一個伺服器中,也可以在不同伺服器中分別存在,例如接收模塊501和編碼模塊503在伺服器1中(我們可以叫它碼流發生伺服器),播放列表生成模塊505在伺服器2(我們可以叫它直播伺服器),為使得方法實施例不顯得過於零散,此處不再展開,以免贅述。

在本發明提供的頻道切換裝置500的另一個實施例中,其中編碼模塊503具體可以用於:

採用視頻編碼標準對所述第一頻道的直播碼流進行編碼生成主流;

採用視頻編碼標準對所述第一頻道的直播碼流進行編碼,並在所述第一頻道的直播碼流中插入輔助幀生成輔流。

具體的,所述輔助幀包括:可獨立解碼的切換I幀和依賴所述切換I幀解碼的切換P幀,所述編碼模塊具體用於:

在所述第一頻道的直播碼流所包含的N個媒體文件集合中的每一個媒體文件中,將所述切換I幀和所述切換P幀依次插入;所述切換I幀和所述切換P幀用於為所述輔流提供多於所述主流的碼流接入點。

需要說明的是,此處的依次插入是將切換I幀和切換P幀間隔插入的,且這種插入方式可以是均勻的插入,也可以不做均勻插入而按照其他規則進行依次插入。

其中,所述視頻編碼標準可以包括:H.263、H.264、H.265、MPEG1、MPEG2、MPEG4、AVS、REAL8、REAL9、VC1、VP6、VP8、DIVX3、MJPEG等。

為了使讀者更清楚的理解本發明實施例中的「在所述第一頻道的直播碼流中插入輔助幀生成輔流」,此處先解釋一個概念,即GOP(group of picture畫面組),GOP通常指一組包含多幅圖像的視頻序列,通常以可以獨立解碼的I幀開始,並且通常也僅包含1個I幀,下面為一個常見GOP:

I P B B P B B P B B P B B P B B

上述GOP共包含16幀,如果按照普通30幀/秒的視頻規格,該GOP可以播放約0.53秒。由於視頻序列中,I幀的體積非常大,通常是P幀和B幀的幾倍甚至十幾倍,有時為了降低視頻序列的碼率,會將GOP的長度拉長,可達數十幀,甚至120幀之多。

在上述實施例中提到的「在所述第一頻道的直播碼流中插入輔助幀生成輔流」中,會在一個分片中插入多個SAP,通常情況下即在一個GOP中插入多個可以獨立解碼的類似I幀(在本發明實施例中叫做切換I幀)作為SAP,主要作用就是將GOP內部解碼依賴性降低,用戶可以在當前GOP內部多個位置開始播放,而無需等待下一個GOP開始的I幀才能播放。

綜上,由於輔助幀包括可獨立解碼的切換I幀和依賴所述切換I幀解碼的切換P幀,且切換I幀和切換P幀依次插入到直播碼流中生成輔流,這樣,這些切換I幀和切換P幀可以為頻道切換提供多於主流的碼流接入點,使得終端可以根據這些切換I幀和切換P幀即時的獲取解碼刷新的圖像幀進行播放,從而使頻道切換可以有更少的切換時延,並引入更小的切換時移。

在上述實施例的基礎上,本發明實施例提供的頻道切換裝置500進一步包括:所述n個媒體文件中的每一個媒體文件均包含一個或多個GOP(group of picture),其中,每一個GOP中包含兩幀或兩幀以上圖像幀;

所述編碼模塊具體用於:將所述切換I幀和所述切換P幀按預設密度依次插入,其中所述預設密度根據所述GOP的長度設置,所述GOP的長度由所述GOP所包含的圖像幀的數目表徵。

在上述所有實施例的基礎上,可選的,所述第一頻道的播放列表中包含所述主流的編碼信息、所述輔流的編碼信息、所述第一頻道的ID號以及所述N個媒體文件集合中所包含的媒體文件的下載連結。

其中,所述編碼信息中可以包含編碼標準、音頻交織信息,還可能包含字幕信息。

如圖6所示,本發明提供的頻道切換裝置的一個實施例,一種頻道切換裝置600,應用在OTT視頻業務,可以包括:

發送模塊601,用於發出頻道切換指令,並停止獲取當前播放頻道的媒體文件;

所述發送模塊601還用於,向伺服器請求第一頻道的播放列表,所述第一頻道為所述頻道切換指令指示的待切換至的新頻道;

接收模塊603,用於接收所述第一頻道的播放列表;

頻道切換模塊605,用於根據所述第一頻道的播放列表和主流、輔流進行頻道切換,所述主流和所述輔流是採用不同編碼方式對所述第一頻道的直播碼流分別進行編碼得到的。

其中,所述第一頻道的頻道信息可以包括頻道標識,例如頻道ID。

上述頻道切換裝置600通過接收第一頻道的播放列表,並根據第一頻道的播放列表和主流、輔流進行頻道切換,其中主流和輔流是採用不同編碼方式對所述第一頻道的直播碼流分別進行編碼得到的,其中主流用於直播,輔流則專門用於頻道切換,由此使得發生頻道切換時由專門的輔流指引進行,從而提高頻道切換的效率。

在圖6提供的實施例的基礎上,進一步的,所述實施例還包括:所述第一頻道的播放列表中包含主流的編碼信息、輔流的編碼信息、所述第一頻道的ID號以及所述第一頻道的直播碼流中包含的N個媒體文件集合中的媒體文件的下載連結,所述N為大於或等於1的整數。

其中,所述頻道切換模塊605具體用於:根據所述第一頻道的播放列表選擇所述輔流中離所述頻道切換指令的接收時刻最近的碼流接入點;並根據所述第一頻道的播放列表中的所述N個媒體文件集合所包含的媒體文件的下載連結,下載當前媒體文件中尚未播放的圖像幀並播放所述圖像幀,所述當前媒體文件為所述輔流中與所述最近的碼流接入點一一對應的圖像幀所在的媒體文件;直至所述當前媒體文件中的所有圖像幀均播放完畢則切換到所述主流中與所述當前媒體文件一一對應的媒體文件的下一個媒體文件進行播放。

其中,此處的「下載」可以指終端下載到自己的緩存區域。

其中,此處的「當前媒體文件中尚未播放的圖像幀」可以是一個媒體文件,也可以是一個媒體文件中的部分GOP,甚至可以是媒體文件中GOP的部分圖像幀。

由於該實現方式為頻道切換提供了輔流,而不僅僅依賴於主流進行頻道切換,我們知道,主流中一個媒體文件只有一個碼流接入點用於接入,且主流的解碼依賴性比較複雜,而該實現方法中提供的輔流為頻道切換提供了另一種可能,使得發生頻道切換時可以根據第一頻道的播放列表選擇輔流中離頻道切換指令的接收時刻最近的碼流接入點進行接入,由此減少了切換時延且引入更少的切換時移。

在上述實施例的基礎上,進一步的,本發明實施例提供的視頻切換裝置中,所述頻道切換模塊605還用於:

在所述下載當前媒體文件中尚未播放的圖像幀之後,所述直至所述當前媒體文件中的所有圖像幀均播放完畢之前,下載所述主流中與所述當前媒體文件一一對應的媒體文件的下一個媒體文件。

這樣,在輔流播放完畢之前即開始下載主流中與當前媒體文件一一對應的媒體文件的下一個媒體文件,一旦當前媒體文件播放完成,就可以直接接入主流的下一個媒體文件開始播放,由此使得輔流和主流之間的切換無縫連結,減少切換時延。

在上述實施例的基礎上,在本發明實施例的頻道切換模塊605中:所述主流和所述輔流是採用不同編碼方式對所述第一頻道的直播碼流分別進行編碼得到的,具體包括:

所述主流為採用視頻編碼標準對所述第一頻道的直播碼流進行編碼生成的;

所述輔流為採用視頻編碼標準對所述第一頻道的直播碼流進行編碼,並在所述第一頻道的直播碼流中插入輔助幀生成的。

具體的,所述輔助幀包括:可獨立解碼的切換I幀和依賴所述切換I幀解碼的切換P幀,則所述輔流為在所述第一頻道的直播碼流中插入輔助幀生成的具體包括:

在所述第一頻道的直播碼流所包含的N個媒體文件集合中的每一個媒體文件中,將所述切換I幀和所述切換P幀按預設密度依次插入;所述切換I幀和所述切換P幀用於為所述輔流提供多於所述主流的碼流接入點。

需要說明的是,此處的依次插入是將切換I幀和切換P幀間隔插入的,且這種插入方式可以是均勻的插入,也可以不做均勻插入而按照其他規則進行依次插入。

其中,所述視頻編碼標準可以包括:H.263、H.264、H.265、MPEG1、MPEG2、MPEG4、AVS、REAL8、REAL9、VC1、VP6、VP8、DIVX3、MJPEG等。

為了使讀者更清楚的理解本發明實施例中的「在所述第一頻道的直播碼流中插入輔助幀生成輔流」,此處先解釋一個上面一直提到的概念,即GOP(group of picture),GOP通常指一組包含多幅圖像的視頻序列,通常以可以獨立解碼的I幀開始,並且通常也僅包含1個I幀,下面為一個常見GOP:

I P B B P B B P B B P B B P B B

上述GOP共包含16幀,如果按照普通30幀/秒的視頻規格,該GOP可以播放約0.53秒。由於視頻序列中,I幀的體積非常大,通常是P幀和B幀的幾倍甚至十幾倍,有時為了降低視頻序列的碼率,會將GOP的長度拉長,可達數十幀,甚至120幀之多。

在上述實施例中提到的「在所述第一頻道的直播碼流中插入輔助幀生成輔流」中,會在一個分片中插入多個SAP,通常情況下即在一個GOP中插入多個可以獨立解碼的類似I幀(在本發明實施例中叫做切換I幀)作為SAP,主要作用就是將GOP內部解碼依賴性降低,用戶可以在當前GOP內部多個位置開始播放,而無需等待下一個GOP開始的I幀才能播放。

綜上,由於輔助幀包括可獨立解碼的切換I幀和依賴所述切換I幀解碼的切換P幀,且切換I幀和切換P幀按照預設密度依次插入到直播碼流中生成輔流,這樣,這些切換I幀和切換P幀可以為頻道切換提供多於主流的碼流接入點,使得終端可以根據這些切換I幀和切換P幀即時的獲取解碼刷新的圖像幀進行播放,從而使頻道切換可以有更少的切換時延,並引入更小的切換時移。

如圖7所示,本發明提供的支持頻道切換的伺服器實施例,一種支持頻道切換的伺服器700,應用在OTT視頻業務,可以包括:

發送埠701,接收埠703,總線705,處理器707,存儲器709,所述總線705用於連接所述發送埠701,所述接收埠703,所述處理器707以及所述存儲器709,所述存儲器709用於存儲信息:

所述接收埠703用於,接收第一頻道的直播碼流,所述第一頻道的直播碼流中包含N個媒體文件集合。

其中,第一媒體文件集合中包含n個媒體文件,其中N為大於或等於1的整數,n為大於或等於2的整數,所述第一媒體文件集合為所述N個媒體文件集合中的任意一個媒體文件集合;

所述處理器707用於,採用不同編碼方式對所述第一頻道的直播碼流分別進行編碼,同時生成主流和輔流;所述主流包含所述N個媒體文件集合和主流編碼信息,所述輔流包含所述N個媒體文件集合和輔流編碼信息,所述主流用於直播,所述輔流用於頻道切換;

所述處理器707還用於,根據所述第一頻道的頻道信息、所述主流的編碼信息和所述輔流的編碼信息,生成所述第一頻道的播放列表,所述播放列表用於當客戶端發出頻道切換指令時,指引所述客戶端根據所述主流和所述輔流進行頻道切換;

所述發送埠701用於發送所述第一頻道的播放列表。

其中,所述第一頻道的頻道信息可以包括頻道標識,例如頻道ID。

上述實施例提供的支持頻道切換的伺服器700,通過採用不同編碼方式對所述第一頻道的直播碼流分別進行編碼生成主流和輔流,其中主流用於直播,輔流則專門用於頻道切換,由此使得發生頻道切換時由專門的輔流指引進行,從而提高頻道切換的效率。

需要說明的是,上述處理器707執行的不同功能可以是同一個伺服器中的處理器執行的,也可以是不同伺服器中不同的處理器分開執行的,例如伺服器1(我們可以叫它碼流發生伺服器)用於採用不同編碼方式對所述第一頻道的直播碼流分別進行編碼,同時生成主流和輔流,伺服器2(我們可以叫它直播伺服器)用於根據所述第一頻道的頻道信息、所述主流的編碼信息和所述輔流的編碼信息,生成所述第一頻道的播放列表,所述播放列表用於當客戶端發出頻道切換指令時,指引所述客戶端根據所述主流和所述輔流進行頻道切換,為使得方法實施例不顯得過於零散,此處不再展開,以免贅述。

在上述實施例的基礎上,本發明實施例提供的頻道切換伺服器700中的處理器707具體用於:

採用視頻編碼標準對所述第一頻道的直播碼流進行編碼生成主流;

採用視頻編碼標準對所述第一頻道的直播碼流進行編碼,並在所述第一頻道的直播碼流中插入輔助幀生成輔流。

具體的,所述輔助幀包括:可獨立解碼的切換I幀和依賴所述切換I幀解碼的切換P幀,則進一步的,所述在所述第一頻道的直播碼流中插入輔助幀生成輔流具體包括:

在所述第一頻道的直播碼流所包含的N個媒體文件集合中的每一個媒體文件中,將所述切換I幀和所述切換P幀依次插入;所述切換I幀和所述切換P幀用於為所述輔流提供多於所述主流的碼流接入點。

需要說明的是,此處的依次插入是將切換I幀和切換P幀間隔插入的,且這種插入方式可以是均勻的插入,也可以不做均勻插入而按照其他規則進行依次插入。

其中,所述視頻編碼標準可以包括:H.263、H.264、H.265、MPEG1、MPEG2、MPEG4、AVS、REAL8、REAL9、VC1、VP6、VP8、DIVX3、MJPEG等。

為了使讀者更清楚的理解本發明實施例中的「在所述第一頻道的直播碼流中插入輔助幀生成輔流」,此處先解釋一個概念,即GOP(group of picture),GOP通常指一組包含多幅圖像的視頻序列,通常以可以獨立解碼的I幀開始,並且通常也僅包含1個I幀,下面為一個常見GOP:

I P B B P B B P B B P B B P B B

上述GOP共包含16幀,如果按照普通30幀/秒的視頻規格,該GOP可以播放約0.53秒。由於視頻序列中,I幀的體積非常大,通常是P幀和B幀的幾倍甚至十幾倍,有時為了降低視頻序列的碼率,會將GOP的長度拉長,可達數十幀,甚至120幀之多。

在上述實施例中提到的「在所述第一頻道的直播碼流中插入輔助幀生成輔流」中,會在一個分片中插入多個SAP,通常情況下即在一個GOP中插入多個可以獨立解碼的類似I幀(在本發明實施例中叫做切換I幀)作為SAP,主要作用就是將GOP內部解碼依賴性降低,用戶可以在當前GOP內部多個位置開始播放,而無需等待下一個GOP開始的I幀才能播放。

綜上,由於輔助幀包括可獨立解碼的切換I幀和依賴所述切換I幀解碼的切換P幀,且切換I幀和切換P幀依次插入到直播碼流中生成輔流,這樣,這些切換I幀和切換P幀可以為頻道切換提供多於主流的碼流接入點,使得終端可以根據這些切換I幀和切換P幀即時的獲取解碼刷新的圖像幀進行播放,從而使頻道切換可以有更少的切換時延,並引入更小的切換時移。

在上述實施例的基礎上,在本發明實施例提供的支持頻道切換的伺服器中:所述n個媒體文件中的每一個媒體文件均包含一個或多個GOP(group of picture畫面組),其中,每一個GOP中包含兩幀或兩幀以上圖像幀;

所述處理器具體用於:將所述切換I幀和所述切換P幀按預設密度依次插入,其中所述預設密度根據所述GOP的長度設置,所述GOP的長度由所述GOP所包含的圖像幀的數目表徵。

在上述所有實施例的基礎上,可選的,所述第一頻道的播放列表中包含所述主流的編碼信息、所述輔流的編碼信息、所述第一頻道的ID號以及所述N個媒體文件集合中所包含的媒體文件的下載連結。

其中,所述編碼信息中可以包含編碼標準、音頻交織信息,還可能包含字幕信息。

如圖8所示,本發明提供的支持頻道切換的終端實施例,一種支持頻道切換的終端800,應用在OTT視頻業務,可以包括:發送器801、接收器803、處理器805,

所述發送器801用於發出頻道切換指令,並停止獲取當前播放頻道的媒體文件;

所述發送器801還用於向伺服器發送請求,所述請求用於請求第一頻道的播放列表,所述第一頻道為所述頻道切換指令指示的待切換至的新頻道;

所述接收器803用於接收所述第一頻道的播放列表;

所述處理器805用於據所述第一頻道的播放列表和主流、輔流進行頻道切換,所述主流和所述輔流是採用不同編碼方式對所述第一頻道的直播碼流分別進行編碼得到的。

其中,所述第一頻道的頻道信息可以包括頻道標識,例如頻道ID。

上述實施例提供的支持頻道切換的終端800,通過接收第一頻道的播放列表,並根據第一頻道的播放列表和主流、輔流進行頻道切換,其中主流和輔流是採用不同編碼方式對所述第一頻道的直播碼流分別進行編碼得到的,其中主流用於直播,輔流則專門用於頻道切換,由此使得發生頻道切換時由專門的輔流指引進行,從而提高頻道切換的效率。

在圖8提供的實施例的基礎上,進一步的,所述實施例還包括:所述第一頻道的播放列表中包含主流的編碼信息、輔流的編碼信息、所述第一頻道的ID號以及所述第一頻道的直播碼流中包含的N個媒體文件集合中的媒體文件的下載連結,所述N為大於或等於1的整數。

其中,所述處理器805具體用於:

根據所述第一頻道的播放列表選擇所述輔流中離所述頻道切換指令的接收時刻最近的碼流接入點;並根據所述第一頻道的播放列表中的所述N個媒體文件集合所包含的媒體文件的下載連結,下載當前媒體文件中尚未播放的圖像幀並播放所述圖像幀,所述當前媒體文件為所述輔流中與所述最近的碼流接入點一一對應的圖像幀所在的媒體文件;直至所述當前媒體文件中的所有圖像幀均播放完畢則切換到所述主流中與所述當前媒體文件一一對應的媒體文件的下一個媒體文件進行播放。

其中,此處的「下載」可以指終端800下載到自己的緩存區域。

其中,此處的「當前媒體文件中尚未播放的圖像幀」可以是一個媒體文件,也可以是一個媒體文件中的部分GOP,甚至可以是媒體文件中GOP的部分圖像幀。

由於該實施例為頻道切換提供了輔流,而不僅僅依賴於主流進行頻道切換,我們知道,主流中一個媒體文件只有一個碼流接入點用於接入,且主流的解碼依賴性比較複雜,而該實現方法中提供的輔流為頻道切換提供了另一種可能,使得發生頻道切換時可以根據第一頻道的播放列表選擇輔流中離頻道切換指令的接收時刻最近的碼流接入點進行接入,由此減少了切換時延且引入更少的切換時移。

在圖8提供的實施例的基礎上,進一步的,所述處理器805還用於:

在所述下載當前媒體文件中尚未播放的圖像幀之後,所述直至所述當前媒體文件中的所有圖像幀均播放完畢之前,下載所述主流中與所述當前媒體文件一一對應的媒體文件的下一個媒體文件。

這樣,在輔流播放完畢之前即開始下載主流中與當前媒體文件一一對應的媒體文件的下一個媒體文件,一旦當前媒體文件播放完成,就可以直接接入主流的下一個媒體文件開始播放,由此使得輔流和主流之間的切換無縫連結,減少切換時延。

在圖8提供的實施例的終端800中,所述主流和所述輔流是採用不同編碼方式對所述第一頻道的直播碼流分別進行編碼得到的,具體包括:

所述主流為採用視頻編碼標準對所述第一頻道的直播碼流進行編碼生成的;

所述輔流為採用視頻編碼標準對所述第一頻道的直播碼流進行編碼,並在所述第一頻道的直播碼流中插入輔助幀生成的。

具體的,所述輔助幀包括:可獨立解碼的切換I幀和依賴所述切換I幀解碼的切換P幀,則所述輔流為在所述第一頻道的直播碼流中插入輔助幀生成的具體包括:

在所述第一頻道的直播碼流所包含的N個媒體文件集合中的每一個媒體文件中,將所述切換I幀和所述切換P幀按預設密度依次插入;所述切換I幀和所述切換P幀用於為所述輔流提供多於所述主流的碼流接入點。

需要說明的是,此處的依次插入是將切換I幀和切換P幀間隔插入的,且這種插入方式可以是均勻的插入,也可以不做均勻插入而按照其他規則進行依次插入。

其中,所述視頻編碼標準可以包括:H.263、H.264、H.265、MPEG1、MPEG2、MPEG4、AVS、REAL8、REAL9、VC1、VP6、VP8、DIVX3、MJPEG等。

為了使讀者更清楚的理解本發明實施例中的「在所述第一頻道的直播碼流中插入輔助幀生成輔流」,此處先解釋一個上面一直提到的概念,即GOP(group of picture),GOP通常指一組包含多幅圖像的視頻序列,通常以可以獨立解碼的I幀開始,並且通常也僅包含1個I幀,下面為一個常見GOP:

I P B B P B B P B B P B B P B B

上述GOP共包含16幀,如果按照普通30幀/秒的視頻規格,該GOP可以播放約0.53秒。由於視頻序列中,I幀的體積非常大,通常是P幀和B幀的幾倍甚至十幾倍,有時為了降低視頻序列的碼率,會將GOP的長度拉長,可達數十幀,甚至120幀之多。

在上述實施例中提到的「在所述第一頻道的直播碼流中插入輔助幀生成輔流」中,會在一個分片中插入多個SAP,通常情況下即在一個GOP中插入多個可以獨立解碼的類似I幀(在本發明實施例中叫做切換I幀)作為SAP,主要作用就是將GOP內部解碼依賴性降低,用戶可以在當前GOP內部多個位置開始播放,而無需等待下一個GOP開始的I幀才能播放。

綜上,由於輔助幀包括可獨立解碼的切換I幀和依賴所述切換I幀解碼的切換P幀,且切換I幀和切換P幀按照預設密度依次插入到直播碼流中生成輔流,這樣,這些切換I幀和切換P幀可以為頻道切換提供多於主流的碼流接入點,使得終端可以根據這些切換I幀和切換P幀即時的獲取解碼刷新的圖像幀進行播放,從而使頻道切換可以有更少的切換時延,並引入更小的切換時移。

本領域普通技術人員可以意識到,結合本文中所公開的實施例描述的各示例的單元及算法步驟,能夠以電子硬體、或者計算機軟體和電子硬體的結合來實現。這些功能究竟以硬體還是軟體方式來執行,取決於技術方案的特定應用和設計約束條件。專業技術人員可以對每個特定的應用來使用不同方法來實現所描述的功能,但是這種實現不應認為超出本發明的範圍。

所屬領域的技術人員可以清楚地了解到,為描述的方便和簡潔,上述描述的系統、裝置和單元的具體工作過程,可以參考前述方法實施例中的對應過程,在此不再贅述。

在本申請所提供的幾個實施例中,應該理解到,所揭露的系統、裝置和方法,可以通過其它的方式實現。例如,以上所描述的裝置實施例僅僅是示意性的,例如,所述模塊的劃分,僅僅為一種邏輯功能劃分,實際實現時可以有另外的劃分方式,例如多個模塊或組件可以結合或者可以集成到另一個系統,或一些特徵可以忽略,或不執行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,裝置或單元的間接耦合或通信連接,可以是電性,機械或其它的形式。

所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位於一個地方,或者也可以分布到多個網絡單元上。可以根據實際的需要選擇其中的部分或者全部模塊來實現本實施例方案的目的。

另外,在本發明各個實施例中的各功能模塊可以集成在一個處理單元中,也可以是各個模塊單獨物理存在,也可以兩個或兩個以上模塊集成在一個模塊中。

所述功能如果以軟體功能單元的形式實現並作為獨立的產品銷售或使用時,可以存儲在一個計算機可讀取存儲介質中。基於這樣的理解,本發明的技術方案本質上或者說對現有技術做出貢獻的部分或者該技術方案的部分可以以軟體產品的形式體現出來,該計算機軟體產品存儲在一個存儲介質中,包括若干指令用以使得一臺計算機設備(可以是個人計算機,伺服器,或者網絡設備等)或處理器(processor)執行本發明各個實施例所述方法的全部或部分步驟。而前述的存儲介質包括:U盤、移動硬碟、只讀存儲器(ROM,Read-Only Memory)、隨機存取存儲器(RAM,Random Access Memory)、磁碟或者光碟等各種可以存儲程序代碼的介質。

以上所述,僅為本發明的具體實施方式,但本發明的保護範圍並不局限於此,任何熟悉本技術領域的技術人員在本發明揭露的技術範圍內,可輕易想到的變化或替換,都應涵蓋在本發明的保護範圍之內,因此本發明的保護範圍應以權利要求的保護範圍為準。

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀