個人過頂網絡視頻記錄器的制造方法
【技術領域】
[0001] 本發明一般涉及過頂(over-the-top,0ΤΤ)媒體交付。
【背景技術】
[0002] 對于0ΤΤ媒體交付的一個已知技術采用媒體對象分段和由客戶端(或它們的代理) 使用播放列表或"清單"以為了媒體對象的本地客戶端重放而采用有序方式檢索段。除其 他益處外,基于段的交付可以更容易由通用且廣泛實現的網絡協議(例如HTTP)提供,從而 避免伴隨更專用媒體交付協議的各種成本和復雜性。
【發明內容】
[0003] 公開與實時交付、時移交付和未來按需視頻(VoD)交付一起使用的實時流播內容 的一次性處理的技術。該技術可大體上稱為"網絡個人視頻記錄器"或"npvr"。特別地, 公開的技術采用客戶端代理,其大量使用清單來向客戶端裝置提供各種交付功能。在使用 清單中利用不同交付模式之中的某些共性,使得清單操縱功能可以在操作中跨不同用戶調 To
[0004] 特別地,公開對內容的服務器端處理來支持網絡個人視頻記錄器功能的方法。該 方法包括持續執行以下步驟:(i)獲取包含節目的實時流播源內容,(ii)將獲取的源內容 轉碼成截然不同的編碼來創建相應的內容流,以及(iii)將內容流分段成段并且將這些段 上傳到一個或多個內容交付網絡(CDN)以用于在媒體播放器處渲染節目中檢索和使用。在 這里"節目"指實時流播內容的部分。它可對應于或可不對應于通常意義上的"節目",例如 電視演出等。節目邊界可通過各種手段來檢測,其包括帶內SCTE-35提示音、帶外信號等。
[0005] 方法進一步包括對節目生成清單并且持續更新清單并且在將段上傳到⑶N時 向CDN上傳更新的清單。清單包括主清單和對于編碼中相應編碼的網絡個人視頻記錄器 (npvr)清單集,其中主清單包括對npvr清單集的引用,用于使得能夠在媒體播放器處植染 節目中從編碼之中選擇,并且npvr清單是在上傳新的段時更新的逐漸增長的非滑動窗口 清單。
[0006] 在源內容中檢測到節目的節目邊界時,在CDN的當前目錄中完成npvr清單的當前 集。然后在CDN中創建新的目錄并且新的npvr清單集在這些新的目錄中開始。后續段和 npvr清單更新被上傳到新的目錄。
[0007] 還公開用于渲染在一個或多個截然不同的編碼中可用的內容的客戶端方法,這些 編碼每個包括相應的有序段集。該方法包括代理從媒體播放器到內容服務器的清單請求、 為要交付的請求內容選擇優選編碼、確定滿足內容請求所需要的npvr清單集以及獲得選 擇的與所選編碼關聯的npvr清單集中的一個或多個npvr清單規定相應編碼的段的位點。 從選擇的npvr清單還創建變體清單并且將其提供給媒體播放器以供在獲得相應編碼段中 使用以用于內容重放。可采用不同類型的變體清單來支持不同功能性,其包括滑動窗口型 變體清單(g卩,從npvr清單生成),用于實時流播或時移重放。非滑動窗口型變體清單(即, npvr清單的修改版本)可以用于支持預錄媒體的交付,例如,按需視頻。
【附圖說明】
[0008] 前述和其他目標、特征和優勢將從如在附圖(其中類似的參考字符在不同視圖中 始終指相同零件)中圖示的本發明的特定實施例的下列描述顯而易見。
[0009] 圖1是根據各種實施例能夠實施端到端內容交付過程的系統的框圖; 圖2是根據各種實施例能夠實施端到端內容交付過程的系統的框圖; 圖3是示出根據各種實施例用于執行媒體預備的方法的流程圖; 圖4是示出根據各種實施例用于執行實時內容渲染的方法的流程圖; 圖5A和5B是示出根據各種實施例用于執行時移內容渲染的方法的流程圖;以及 圖6是示出根據各種實施例用于執行VoD內容渲染的方法的流程圖。
[0010] 具體實施例方式 在本文對于實施例的描述中,提供許多特定細節,例如部件和/或方法的示例,來提供 全面理解。然而,相關領域內技術人員將認識到實施例可以在沒有特定細節中的一個或多 個的情況下或利用其他設備、系統、組件、方法、部件、材料、零件和/或類似物來實踐。在其 他實例中,未專門示出或詳細描述眾所周知的結構、材料或操作以避免使實施例的方面混 淆不清。
[0011] 圖1中是對于系統1〇〇的一個實施例的框圖。該系統具有多個網絡連接的部件, 其包括工作流程管理器(WFM) 102、媒體處理服務器或"包裝器"104、流播代理106、內容交 付網絡(⑶N) 108、客戶端媒體播放器或"客戶端"110和內容管理系統(CMS) 112。它還包 括廣告決策管理器(ADM)114,其具有到代理106的連接。在圖示的實施例中,代理106與客 戶端110分開-它可定位在遠離其中定位客戶端110的客戶端型計算機(個人計算機,等) 的服務器型計算機中。在下文描述的備選實施例中,代理106可作為客戶端110的部分而 包括。
[0012] -般,系統操作成使用例如HTTP實時流播(HLS)、基于HTTP的動態自適應流播 (DASH)、SmoothStreaming(平滑流播)等基于段的內容交付機制或任何其他HTTP自適應流 播(HAS)協議來將內容從CDN108交付給客戶端110如本領域內技術人員應已知的。術語 "基于段"應理解為意指比視頻的全持續時間或長度更小的視頻數據單位。盡管"段"文件 與文件內的"片段"之間的語義區分應被本領域內技術人員所知,這里使用的術語"段"應 理解為同樣適用于段、片段、塊等(如由指定協議描述的)_從較長內容塊得到的部分視頻數 據單位。客戶端110請求如由播放列表或"清單"描述的段,如本領域內大體上已知的。如 在下文詳細描述的,代理106在創建和使用清單來向客戶端110提供某些重放功能中牽涉 較多。
[0013] 工作流程管理器(WFM) 102從內容管理系統(CMS) 112接收實時流播內容攝入請 求。WFM102指示包裝器104開始處理實施流播內容、將內容轉碼成如由CMS112定義并且 通過WFM102配置的多個截然不同的編碼(例如,以不同比特率/幀率/分辨率的音頻或視 頻、采用不同語言或字幕的音頻或不同的加密算法或密鑰)、對個體比特率流分段、對段加 密以及將段上傳到多個內容交付網絡(CDN) 108。
[0014] 媒體處理服務器104 (在本文稱為包裝器104)從WFM102接收的編碼配置生成 主清單。包裝器104對每個編碼生成變體清單(在本文稱為npvr清單)。對于指定編碼的npvr清單是在生成對于編碼的每個段時更新的非滑動窗口清單。段被上傳并且然后npvr 清單也被上傳。npvr清單在大小上增長直到節目是完成的。在節目完成時,清單終結并且 對下一個節目創建新的節目目錄和新的npvr清單。每個新的清單包含到之前的有序npvr 清單的指針。在清單終結時,用對下一個有序npvr清單的指針來更新它。
[0015] 術語"節目"在本文主要用于描述對應于npvr清單的實時流播內容的部分。它可 或可不對應于一般意義上的"節目",例如電視演出等。在一個實施例中,節目邊界經由帶內 SCTE-35提示音來檢測。在另一個實施例中,節目邊界基于帶外SCTE-118或專有電子節目 指南(EPG)協議數據來檢測。在另一個實施例中,節目邊界使用固定節目持續時間來定期 生成(例如,每30分鐘)。在另一個實施例中,節目可由用戶通過提供固定時間范圍(例如, 規定對于記錄的開始和結束時間或對于記錄的開始時間和持續時間)來定義。如本領域內 技術人員應已知的,存在定義節目邊界的多種方式。應理解節目邊界檢測的任何方法可適 用于本發明。
[0016] 在一個實施例中,對于僅具有一個段的新節目的初始npvr清單可使用M3U8格式 而宭起夾如下:
npvr清單用節目信息和到之前的npvr清單的指針來初始化。
[0017] 在一個實施例中,掛鐘時戳信息作為對于每個段的注釋而包括。在一個實施例中, 加密密鑰ID信息作為對于每個段的注釋而包括。在一個實施例中,評級信息被作為對于每 個段的注釋來包括。如本領域內技術人員應已知的,存在許多方式來代表掛鐘時間、密鑰信 息和評級信息。對于掛鐘時間、密鑰信息和評級信息的任何有效表示應視為有效地與本發 明一起使用。
[0018] 繼續上文描述的實施例的示例,在十秒(一個段持續時間)后,npvr清單應用第二 段來更新并且看起來如下:
繼續對于上文描述的實施例的示例,一旦節目稍后完成599個段,完成的清單將看起 來如下:
npvr清單用到下一個有序npvr清單的指針和ENDLIST標記來更新。在上文的示例中, 密鑰旋轉在某一點出現,從而對于最后段的加密密鑰ID與第一段的加密密鑰ID不同。 [0019] 在一個實施例中,目錄結構節目基于節目邊界、處理節目的日期和時間以及源流 ID和轉碼比特率而是分級的,例如:
其中<media_id>標識源流,〈year〉、〈month〉和〈day〉代表處理初始節目段的日期, <zp_seq>-〈pid>代表對于詞典編篡排序具有零填充序號的節目標識符,〈bitrate〉代表轉 碼比特率(盡管更一般地描述編碼,例如不同的比特率/分辨率音頻/視頻、不同的語言音 頻和字幕,和/或不同的加密算法),并且〈limit〉代表目錄大小限制對于長運行節目可減 弱的額外水平。在一個實施例中,<pid>對應于用于使節目元數據相關的唯一標識符。在 一個實施例中,節目標識符可包含額外關系元數據,其使節目與以下中的一個或多個關聯: 特定內容提供者,特定節目系列、個別節目片段、在指定時間播放的節目的唯一實例,等。應 理解節目標識符在該上下文中是對于要處理的npvr節目的通用標識符并且不一定與對于 通用術語節目或在指定元數據定義的上下文內使用的術語節目的指定語義含義相關,如本 領域內技術人員應已知的。在一個實施例中,當節目邊界基于固定節目持續時間而確定時, <pid>可指示節目開始的掛鐘時間。
[0020] 在一個實施例中,npvr清單是HTTP實時流播變體清單。清單的完成牽涉將 ENDLIST標記添加到npvr清單的末端并且添加注釋以指向新節目目錄中的下一個有序 npvr清單。新的npvr清單應用指向剛剛完成的之前的有序npvr清單的注釋來初始化。 在一個實施例中,在節目邊界上生成新的加密密鑰并且對該新密鑰的引用包括在新的npvr 清單中。在另一個實施例中,最后的加密密鑰從之前的npvr清單延續并且對應地生成初始 化向量(IV)信息。在一個實施例中,IV信息在MEDIA-SEQUENCE標記中設置。在另一個實 施例中,IV信息用KEY標記來顯式設置。在一個實施例中,包裝器104在與npvr清單中的 每個段關聯的注釋中插入掛鐘時戳、加密密鑰和評級信息。在再另一個實施例中,在節目中 間可存在密鑰改變并且延續到下一個節目。
[0021] 在一個實施例中,包裝器104檢測實時內容流中的廣告。在一個實施例中,包裝器 104基于帶內消息(例如,SCTE-35提示音)來檢測廣告。在另一個實施例中,使用掛鐘開始時 間和持續時間或對于廣告的結束時間來告知包裝器104廣告播放時間的先驗帶外(priori out-of-band)。如本領域內技術人員應已知的,存在多個方式來定義廣告邊界。應理解廣 告邊界檢測的任何方法可適用于本發明。在一個實施例中,廣告開始和停止作為注釋和/ 或間斷指示符而包括在npvr清單中。在一個實施例中,即將到來的廣告開始和停止指示符 作為注釋包括在npvr清單中。擴展上文的M3U8示例,下列清單示出這樣的示例,其中節目 出點(POP)間斷(廣告開始)和節目入點(PIP)間斷(廣告結束)通知在段1006 (廣告的第一 段)之前和段1008 (廣告的最后的段)之后插入npvr清單內,從而標注由于廣告插入引起 的流中的可能間斷。對于段1005和1008的EXT-AZK-SEG注釋也分別標注即將到來的PIP 和POP:
當客戶端110希望重放實時流播內容時,它向代理106發出對主清單的請求。代理106 使用從WFM102收集的信息來對客戶端110生成主清單。在一個實施例中,代理1