開始段確定為包含開始掛鐘時戳 的段,而結束段確定為包含結束掛鐘時戳的段。使用來自之前示例的M3U8清單,我們可以 從之前的節目X和下一個節目Z兩者抽取額外的兩分鐘來生成下列清單,其跨越三個npvr 清單(即,http: //· · · /001-X,httn: //· · · /002-Y和httn: //· · · /003-Z):
在一個實施例中,對于變體清單中的段的基URL被修改以指向代理106,其中段被高速 緩存以用于離線重放。在一個實施例中,生成的對于節目的主和變體清單在從CDN108初 始檢索并且隨后來自本地高速緩存時在代理106中本地高速緩存。在一個實施例中,段從 ⑶N108預先提取并且隨后來自本地高速緩存。
[0035] 4.廣告替換 在一個實施例中,如npvr清單包含廣告指示符,代理106可用為查看內容的個體個性 化的廣告替換來自源實時內容的原始廣告。在一個實施例中,包裝器104將指示廣告邊界 的位置的注釋插入npvr清單,如例如在國際專利申請出版W0 2010/111261中示出的。在一 個實施例中,在即將到來的廣告的npvr清單中檢測到注釋時,代理106將向廣告決策管理 器(ADM) 114發出請求并且ADM114將用備選廣告做出響應來呈遞。在一個實施例中,ADM 114對備選廣告提供段位點。在另一個實施例中,代理106從WFM102請求對于備選廣告的 段位點。當代理106生成清單文件以呈現給客戶端110媒體播放器時,它將用對于備選廣 告的段URL替換來自npvr清單的段URL。
[0036] 擴展之前的實時重放示例,代理106將如下生成一系列清單,從而用備選廣告段 替換段1006至1008(相應地調整加密密鑰信息,例如通過選擇在指定段之前規定的最后密 鑰并且根據需要應用正確的IV,如本領域內技術人員應熟悉的):
在一個實施例中,由WFM102對代理106提供多個ADM服務器114。在一個實施例中, 代理106所選的優選ADM114基于簡單的輪詢方案。在另一個實施例中,對于每個ADM114 的優先級由WFM102提供并且代理106使用加權輪詢方案來選擇優選ADM114。在另一個 實施例中,代理106基于隨機選擇來選擇優選ADM114。如本領域內技術人員應已知的,存 在用于從服務器列表選擇優選服務器的許多算法。應理解用于選擇優選ADM114的任何方 法應視為有效地與本發明一起使用。
[0037] 圖2中是對于另一個實施例的框圖。系統200與系統100相同,所不同的是嵌入 客戶端110內的代理。
[0038] 圖3中是對于在包裝器104處執行、用于處理實時流播內容并且生成npvr清單以 供在實時、時移或VoD重放中使用的過程300的流程圖。
[0039] 在步驟302中,包裝器104處理下一個段,其中該段從轉碼的實時流播輸入編譯。 在一個實施例中,生成具有固定目標持續時間的段。在一個實施例中,段可比固定目標持續 時間更短,例如,節目邊界或廣告邊界之前的最后的段可縮短使得該節目或廣告邊界之后 的第一段在新的段邊界上開始。在一個實施例中,節目邊界信息和/或廣告邊界信息經由 SCTE-35提示音而帶內提供。在另一個實施例中,節目邊界信息和/或廣告邊界信息經由 SCTE-118、SCTE-130或其他專有信令協議而帶外提供。如本領域內技術人員應已知的,存 在信號傳遞節目邊界信息和/或廣告邊界信息的許多方式。應理解用于檢測節目邊界信息 和/或廣告邊界信息的任何方法應視為有效地與本發明一起使用。
[0040] 在步驟304中,包裝器104檢查來看看是否達到節目邊界或廣告邊界。如果還未 達到節目邊界或廣告邊界,處理持續到步驟308,在這里當前npvr清單用新的段信息更新 并且在新的段上傳到⑶N108后上傳到⑶N108。如果達到節目邊界或廣告邊界,處理持續 到步驟306,其中在行進到步驟308之前包裝器在⑶N108中為下一個節目創建新的目錄、 用新的段信息更新當前npvr清單、通過添加下一個npvr清單指針和ENDLIST標記來完成 當前npvr清單并且為新的節目創建新的npvr清單文件,其中段和兩個清單(當前和新的) 上傳到CDN108。
[0041] 圖4中是描述在代理106處執行、用于對客戶端110生成滑動窗口清單文件以用 于實時流播內容的實時重放的過程400的流程圖。
[0042] 在步驟402中,代理106從客戶端110接收對于主清單的請求。主清單包含變體 清單URL列表,其對應于不同的可用編碼(例如,不同的比特率/分辨率音頻/視頻和/或 不同的語言音頻和字幕)。在一個實施例中,變體清單URL回指代理106。在一個實施例中, 變體清單URL包含主清單請求的掛鐘時戳。在一個實施例中,代理106基于由WFM102提 供的信息來確定可用比特率。在另一個實施例中,代理106基于由包裝器104產生并且放 置在⑶N108中的主清單來確定可用比特率。在一個實施例中,代理106確定要呈現給客 戶端110的比特率子集。在一個實施例中,比特率集基于由WFM102為客戶端110配置的 用戶限制而確定。在另一個實施例中,比特率集基于由WFM102提供的網絡限制而確定。 在另一個實施例中,比特率集基于由代理106基于清單請求的聚集數量和在指定時間窗口 (例如,最后30秒)內看到的它們的對應比特率而估計的當前網絡負載來確定。對于這些操 作的技術在國際專利申請出版W0 2011/139305中描述。代理106向客戶端110返回主清 單并且行進到步驟404。
[0043] 在步驟404中,代理106從客戶端110接收變體清單請求,例如特定比特率。在一 個實施例中,代理106選擇⑶N108,客戶端110應從其檢索段。在一個實施例中,⑶N108 基于由WFM102提供的嚴格優先級排定而選擇。在另一個實施例中,⑶N108基于輪詢或 加權輪詢方案而選擇,其中權重由WFM102提供。在另一個實施例中,⑶N108基于對于清 單的聚集延遲測量和/或由代理106在指定時間窗口(例如,最后30秒)內執行的段檢索而 選擇。CDN108基于對于清單的聚集帶寬測量和/或由代理106在指定時間窗口(例如,最 后30秒)內執行的段檢索而選擇。CDN選擇的技術在US專利申請出版US2012/0240176 中描述。在一個實施例中,代理106選擇比特率以服務于客戶端110,其中比特率可低于客 戶端110所請求的比特率。在一個實施例中,比特率基于由WFM102為客戶端110配置的 用戶限制而確定。在另一個實施例中,比特率基于由WFM102提供的網絡限制而確定。比 特率選擇的技術在國際專利申請出版WO2011/139305中描述。在另一個實施例中,比特率 基于由代理106基于清單請求的聚集數量和在指定時間窗口(例如,最后30秒)內看到的它 們的對應比特率而估計的當前網絡負載來確定。在另一個實施例中,比特率基于對于清單 的聚集延遲測量和/或由代理106在指定時間窗口(例如,最后30秒)內執行的從CDN108 的段檢索而選擇。在另一個實施例中,比特率基于對于清單的聚集帶寬測量和/或由代理 106在指定時間窗口(例如,最后30秒)內執行的從CDN108的段檢索而選擇。
[0044] 在步驟404中,代理106還確定滿足請求所需要的段范圍。在一個實施例中,代 理106存儲來自之前的清單清單或來自之前的重放動作(S卩,暫停、播放、倒帶、快進)的段范 圍。在另一個實施例中,客戶端110對之前的重放動作(即,暫停、播放、倒帶、快進)提供目 標掛鐘時間。在一個實施例中,客戶端110在每個重放動作重啟媒體播放器,這導致新的主 清單請求,這導致生成有對于該重復動作的當前掛鐘時間的新的變體清單URL。在另一個實 施例中,掛鐘時戳由客戶端110計算為對應于上個重放動作(即,暫停、播放、倒帶、快進)的 視頻位置的掛鐘時間加上自上個重放動作以來重放的持續時間(例如,以自由運行計時器 為基礎或使用與媒體播放器的呈現時戳差異),分別加上或減去用戶希望快進或倒帶的秒 數。如本領域內技術人員應已知的,存在跟蹤重放位置和進度的許多方法,應理解用于確定 目標掛鐘時間的任何方法應適合于本發明。
[0045] 一旦確定段范圍并且已經選擇比特率和⑶N,處理持續到步驟416,其中代理106 檢查來看看已經高速緩存的npvr清單文件是否包含滿足請求的必需段信息。如果已經高 速緩存的npvr清單文件不包含必需的段信息,處理持續到步驟418,在這里代理106檢索 需要的npvr清單文件。如果客戶端110當前在播放實時流播內容,代理106從所選的CDN 108為所選的比特率檢索最新npvr清單。在一個實施例中,代理106僅檢索它還沒有高速 緩存的最新npvr清單的部分。在一個實施例中,代理106使用HTTP范圍請求以僅檢索從一 開始的大于之前檢索直到文件當前末端的最后字節的那些字節。否則,如果客戶端110當 前不在播放實時流播內容,必須確定需要的npvr清單的位點。在一個實施例中,代理106使 用下一個npvr清單指針以通過使npvr清單鏈指針走動直到找到包含目標掛鐘時間的npvr 清單來找到包含目標段(其對應于目標掛鐘時間)的npvr清單。這可需要從所選的CDN108 檢索多個npvr清單文件。在另一個實施例中,代理106使用由WFM102提供的信息來確定 與目標掛鐘時間關聯的npvr清單。在一個實施例中,代理106定期使來自WFM102的npvr 清單信息同步(例如,使用流播數據庫復制)。在另一個實施例中,代理106從由WFM102管 理和更新的共享分布式數據庫檢索npvr清單信息。一旦確定需要的npvr清單位點,代理 106從所選的⑶N108為所選的比特率檢索需要的npvr清單。
[0046] 如果找到在步驟416中本地高速緩存的必需段,處理直接持續到步驟410。否則, 在檢索需要的npvr清單后,處理持續到步驟410,在這里代理106檢查來看看在當前npvr 清單中是否存在足夠段來生成滑動窗口清單。如果存在足夠的段,處理持續到步驟412,在 這里代理106使用之前的npvr清單來得到必要數量的段(例如,三個)來生成滑動窗口清 單。如果之前的npvr清單未被本地高速緩存,代理106使用之前的npvr清單指針URL來 檢索之前的npvr清單。在一個實施例中,代理106總是高速緩存兩個最新npvr清單文件 使得它可以容易應對邊界交叉狀況。在一個實施例中,代理106高速緩存所有之前下載的 完整npvr清單文件。
[0047] 如果在步驟410中在當前清單中找到必需的段,處理直接持續到步驟406。否則, 在查閱之前的npvr清單后,處理持續到步驟406,在這里代理106檢查來看看當前npvr清 單現在是否是完整的。如果當前npvr清單是完整的,處理持續到步驟408。在一個實施例 中,在持續到步驟414之前,代理106維持會話狀態并且將當前清單更新為下一個npvr清 單指針所指示的下一個npvr清單。如果npvr清單在步驟406中不是完整的,處理直接持 續到步驟414。
[0048] 在步驟414中,代理106生成包含所選的N個段的滑動窗口清單并且向客戶端110 返回它。在一個實施例中,如果當前滑動窗口清單包含廣告段,當在步驟414中生成滑動窗 口清單時,代理106用備選廣告段來替換在npvr清單中規定的段。在一個實施例中,代理 106基于npvr清單中的注釋來檢測即將到來的廣告。在一個實施例中,代理106向ADM114 發出請求來確定向客戶端110呈現哪個備選廣告。在一個實施例中,備選廣告段位點由ADM 114規定。在另一個實施例中,代理106對于由ADM114規定的備選廣告從WFM102檢索備 選廣告段位點。
[0049] 圖5A和5B中是描述在代理106處執行、用于應對來自客戶端110的重放動作請 求(即,暫停、播放、倒帶和快進)以實現實時流播內容的時移重放的過程500A和500B的流 程圖。如之前指出的,對于倒帶和快進大致緊接著并且在暫停情況下恢復重放時,這些重放 動作中的每個后跟由客戶端110媒體播放器生成的新的清單請求。在圖5A中示出