用于優(yōu)化視頻流的方法
【專利摘要】一種用于優(yōu)化視頻流的方法,包括:在從源服務(wù)器所接收的視頻容器中檢索針對(duì)原始比特流的原始參數(shù)集;以及將流特定元數(shù)據(jù)寫入到針對(duì)視頻容器的報(bào)頭,其中該流特定元數(shù)據(jù)包括針對(duì)原始比特流的原始參數(shù)集和針對(duì)優(yōu)化比特流的優(yōu)化參數(shù)集。
【專利說明】用于優(yōu)化視頻流的方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種用于優(yōu)化視頻流的方法以及一種媒體優(yōu)化系統(tǒng)。
【背景技術(shù)】
[0002]當(dāng)通過遠(yuǎn)程連接(不管是通過網(wǎng)絡(luò)連接、因特網(wǎng)連接還是以其它方式)將視頻內(nèi)容流式傳輸至客戶端設(shè)備時(shí),由于帶寬、硬件或其它限制,視頻流可能需要優(yōu)化以允許通過該連接的連續(xù)重放。諸如在超文本傳輸協(xié)議(HTTP)漸進(jìn)式下載(progressive download)中的連續(xù)重放允許客戶端在整個(gè)視頻被下載之前開始觀看視頻流,這對(duì)于大視頻文件或?qū)崨r播送的視頻流而言可能是尤其有用的。
[0003]通常使用與原始視頻流不同的速率控制、層次(profile)和/或級(jí)別(level)來對(duì)優(yōu)化視頻流進(jìn)行編碼。對(duì)視頻流進(jìn)行編碼包括減少用來表示原始視頻中所顯示的數(shù)字圖像的數(shù)據(jù)量,并且可以包括壓縮空間圖像以及時(shí)間運(yùn)動(dòng)補(bǔ)償。對(duì)視頻進(jìn)行編碼減少了用于允許視頻被連續(xù)重放的傳輸帶寬。
【發(fā)明內(nèi)容】
[0004]描述系統(tǒng)的實(shí)施例。在一個(gè)實(shí)施例中,該系統(tǒng)是媒體優(yōu)化系統(tǒng)。該系統(tǒng)包括:接收器,其被配置為在從源服務(wù)器接收的視頻容器中檢索針對(duì)原始比特流的原始參數(shù)集,其中該原始參數(shù)集被存儲(chǔ)在存儲(chǔ)設(shè)備上;以及配置引擎,其被配置為將流特定元數(shù)據(jù)寫入到針對(duì)視頻容器的報(bào)頭,其中該流特定元數(shù)據(jù)包括針對(duì)原始比特流的原始參數(shù)集和針對(duì)優(yōu)化比特流的優(yōu)化參數(shù)集。還描述系統(tǒng)的其它實(shí)施例。
[0005]還描述計(jì)算機(jī)程序產(chǎn)品的實(shí)施例。在一個(gè)實(shí)施例中,該計(jì)算機(jī)程序產(chǎn)品包括用于存儲(chǔ)計(jì)算機(jī)可讀程序的計(jì)算機(jī)可讀存儲(chǔ)設(shè)備,其中該計(jì)算機(jī)可讀程序當(dāng)被計(jì)算機(jī)內(nèi)的處理器執(zhí)行時(shí)使該計(jì)算機(jī)執(zhí)行用于優(yōu)化視頻流的操作。該操作包括:在從源服務(wù)器接收的視頻容器中檢索針對(duì)原始比特流的原始參數(shù)集;以及將流特定元數(shù)據(jù)寫入到針對(duì)視頻容器的報(bào)頭,其中該流特定元數(shù)據(jù)包括針對(duì)原始比特流的原始參數(shù)集和針對(duì)優(yōu)化比特流的優(yōu)化參數(shù)集。還描述計(jì)算機(jī)程序產(chǎn)品的其它實(shí)施例。
[0006]還描述方法的實(shí)施例。在一個(gè)實(shí)施例中,該方法是用于優(yōu)化視頻流的方法。該方法包括:在從源服務(wù)器接收的視頻容器中檢索針對(duì)原始比特流的原始參數(shù)集;以及將流特定元數(shù)據(jù)寫入到針對(duì)視頻容器的報(bào)頭,其中該流特定元數(shù)據(jù)包括針對(duì)原始比特流的原始參數(shù)集和針對(duì)優(yōu)化比特流的優(yōu)化參數(shù)集。還描述方法的其它實(shí)施例。
[0007]根據(jù)下列詳細(xì)描述,本發(fā)明的實(shí)施例的其它方面和優(yōu)勢(shì)將變得顯而易見,該詳細(xì)描述結(jié)合附圖來進(jìn)行,并通過本發(fā)明的原理的示例而被說明。
【專利附圖】
【附圖說明】
[0008]圖1描繪了媒體優(yōu)化系統(tǒng)的一個(gè)實(shí)施例的示意圖。
[0009]圖2描繪了圖1的代理的一個(gè)實(shí)施例的示意圖。[0010]圖3描繪了用于通過圖1的媒體優(yōu)化系統(tǒng)的數(shù)據(jù)流的方法的一個(gè)實(shí)施例的流程圖。
[0011]圖4描繪了用于通過圖1的媒體優(yōu)化系統(tǒng)的數(shù)據(jù)流的方法的一個(gè)實(shí)施例的流程圖。
[0012]圖5描繪了用于將數(shù)據(jù)插入到視頻流中的方法的一個(gè)實(shí)施例的流程圖。
[0013]貫穿本說明書,類似的附圖標(biāo)記可以被用來標(biāo)識(shí)類似的元素。
【具體實(shí)施方式】
[0014]將容易理解的是,如在本文中一般地描述并且在附圖中圖示的實(shí)施例的組件可以以各種不同的配置被布置和設(shè)計(jì)。因而,如附圖中所表示的各種實(shí)施例的下列更詳細(xì)描述不意圖限制本公開的范圍,而是僅表示各種實(shí)施例。雖然在附圖中呈現(xiàn)了實(shí)施例的各種方面,但是除非明確指出,否則附圖不一定是按比例繪制的。
[0015]在不脫離本發(fā)明的精神或基本特性的情況下可以以其它特定形式來體現(xiàn)本發(fā)明。所描述的實(shí)施例在所有方面中都將僅被視為說明性的而非限制性的。本發(fā)明的范圍因此由所附權(quán)利要求而不是由該詳細(xì)描述來指示。落入權(quán)利要求的等同物的含義和范圍之內(nèi)的所有改變將被包含在其范圍之內(nèi)。
[0016]貫穿本說明書對(duì)特征、優(yōu)勢(shì)或類似語言的引用并非暗示可以利用本發(fā)明實(shí)現(xiàn)的所有特征和優(yōu)勢(shì)都應(yīng)當(dāng)是或者是在本發(fā)明的任何單個(gè)實(shí)施例中。相反,涉及特征和優(yōu)勢(shì)的語言被理解為意味著結(jié)合實(shí)施例所描述的特定特征、優(yōu)勢(shì)或特性被包括在本發(fā)明的至少一個(gè)實(shí)施例中。因而,貫穿本說明書對(duì)特征和優(yōu)勢(shì)的討論以及類似語言可以但不一定指代同一實(shí)施例。
[0017]此外,可以在一個(gè)或多個(gè)實(shí)施例中以任何適當(dāng)?shù)姆绞綄?duì)本發(fā)明的所描述特征、優(yōu)勢(shì)和特性進(jìn)行組合。相關(guān)領(lǐng)域中的技術(shù)人員根據(jù)本文中的描述將認(rèn)識(shí)到的是,可以在沒有特定實(shí)施例的特定特征或優(yōu)勢(shì)中的一個(gè)或多個(gè)的情況下實(shí)踐本發(fā)明。在其它實(shí)例中,附加特征和優(yōu)勢(shì)可能在特定實(shí)施例中被認(rèn)識(shí)到,這些附加特征和優(yōu)勢(shì)可以不存在于本發(fā)明的所有實(shí)施例中。
[0018]貫穿本說明書對(duì)“一個(gè)實(shí)施例(one embodiment)”、“實(shí)施例(an embodiment)”或者類似語言的引用意味著結(jié)合所指示的實(shí)施例進(jìn)行描述的特定特征、結(jié)構(gòu)或特性被包括在本發(fā)明的至少一個(gè)實(shí)施例中。因而,貫穿本說明書的短語“在一個(gè)實(shí)施例中”、“在實(shí)施例中”以及類似語言可以但不一定全部指代同一實(shí)施例。
[0019]雖然在本文中描述了許多實(shí)施例,但是所描述的實(shí)施例中的至少一些呈現(xiàn)一種用于優(yōu)化視頻流的系統(tǒng)和方法。更具體地,該系統(tǒng)對(duì)使用H.264編解碼器來編碼的視頻流進(jìn)行優(yōu)化,使得可以在客戶端設(shè)備處連續(xù)地播放該視頻流。該系統(tǒng)包括將序列參數(shù)集(SPS)和圖片參數(shù)集(PPS)條目插入到高級(jí)視頻編碼(AVC)解碼器配置記錄(DCR)中。如已知的,SPS包含要被應(yīng)用于整個(gè)視頻序列的參數(shù)。除其它之外,典型的SPS參數(shù)還包括對(duì)幀數(shù)、圖片順序計(jì)數(shù)(picture order count)以及解碼圖片寬度和高度的限制。PPS包含被應(yīng)用于序列內(nèi)的一個(gè)或多個(gè)解碼圖片的參數(shù)。除其它之外,典型的PPS參數(shù)還包括使用中的切片組(slice group)的數(shù)量以及初始量化器參數(shù)。本文中所描述的系統(tǒng)提供一種允許對(duì)H.264視頻內(nèi)容的連續(xù)重放的方式。[0020]DCR是H.264特定網(wǎng)絡(luò)抽象層(NAL)分組,其被客戶端處的播放器和解碼器用來讀取視頻播放器所使用的視頻容器中的各個(gè)H.264比特流。該系統(tǒng)可以假設(shè)的是,用來對(duì)
H.264內(nèi)容重新編碼的編碼器能夠針對(duì)每個(gè)比特流指定單獨(dú)的SPS標(biāo)識(shí)符和PPS標(biāo)識(shí)符,使得客戶端能夠識(shí)別出哪些SPS和PPS條目對(duì)應(yīng)于給定的比特流。雖然本文中所描述的系統(tǒng)呈現(xiàn)針對(duì)H.264內(nèi)容的實(shí)施例,但是其它實(shí)施例可以包括其它類型的視頻內(nèi)容,并且可以根據(jù)視頻內(nèi)容的特定格式來修改本文中所描述的系統(tǒng)的操作和術(shù)語。
[0021]圖1描繪了媒體優(yōu)化系統(tǒng)100的一個(gè)實(shí)施例的示意圖。在一個(gè)實(shí)施例中,媒體優(yōu)化系統(tǒng)100包括在源服務(wù)器106和客戶端108之間的媒體優(yōu)化器102和視頻優(yōu)化服務(wù)器(VOS) 104。雖然示出并描述了具有特定組件和功能的媒體優(yōu)化系統(tǒng)100,但是媒體優(yōu)化系統(tǒng)100的其它實(shí)施例可以包括更少或更多的組件以實(shí)施更少或更多的功能。
[0022]在一個(gè)實(shí)施例中,媒體優(yōu)化系統(tǒng)100使用多個(gè)比特流通過網(wǎng)絡(luò)層(諸如經(jīng)由超文本傳輸協(xié)議(HTTP))對(duì)H.264 (或其它)視頻內(nèi)容動(dòng)態(tài)地進(jìn)行優(yōu)化。其它實(shí)施例可以使用與H.264內(nèi)容兼容的其它協(xié)議。在一個(gè)實(shí)施例中,媒體優(yōu)化系統(tǒng)100包括代理110。該代理位于客戶端和源服務(wù)器106之間。該代理被配置為對(duì)來自源服務(wù)器106的視頻流中的視頻容器進(jìn)行攔截。在一個(gè)實(shí)施例中,該代理包括媒體優(yōu)化器102和VOS 104。在另一個(gè)實(shí)施例中,該代理包括比本文中所描述的組件更多或更少的組件。該代理攔截在針對(duì)視頻流的HTTP響應(yīng)中的原始視頻比特流并且對(duì)該比特流執(zhí)行操作。媒體優(yōu)化器102可以將原始比特流發(fā)送至VOS 104以執(zhí)行附加的操作,包括對(duì)比特流的優(yōu)化。VOS 104可以將優(yōu)化比特流返回至媒體優(yōu)化器102,其然后將優(yōu)化信號(hào)轉(zhuǎn)發(fā)至客戶端。實(shí)時(shí)地進(jìn)行視頻的優(yōu)化,使得在客戶端處連續(xù)地重放視頻流。
[0023]每個(gè)比特流表示圖像的同一序列,但是可以使用不同的速率控制以及可能不同的層次(H.264層次)和級(jí)別(H.264)來對(duì)每個(gè)比特流進(jìn)行編碼。重新編碼的H.264內(nèi)容可以被客戶端漸進(jìn)地觀看(HTTP漸進(jìn)式下載),即客戶端能夠在整個(gè)視頻被下載之前開始觀看視頻。這對(duì)于大視頻尺寸、高質(zhì)量視頻或?qū)崨r播送的視頻流而言可能是特別有用的。
[0024]在一個(gè)實(shí)施例中,對(duì)比特流進(jìn)行優(yōu)化包括對(duì)比特流重新編碼并壓縮以減小視頻尺寸以及視頻流所使用的帶寬。媒體優(yōu)化器102處的以諸如Flash視頻、MP4或支持H.264編碼的任何視頻容器之類的格式的復(fù)用器(未示出)對(duì)重新編碼的壓縮H264視頻和音頻內(nèi)容進(jìn)行封裝并且以如下這樣的方式交織數(shù)據(jù):客戶端播放器能夠以正確的時(shí)間順序正確地理解并重放圖像。
[0025]可以實(shí)施系統(tǒng)100的各種實(shí)施例。在一個(gè)實(shí)施例中,客戶端從源服務(wù)器106請(qǐng)求視頻片段(video clip)。在一個(gè)實(shí)施例中,代理最初向客戶端發(fā)送未改變的(以其原始形式)視頻和音頻內(nèi)容。在已經(jīng)經(jīng)過了一段時(shí)間之后,VOS 104被發(fā)信號(hào)以開始?jí)嚎s或優(yōu)化內(nèi)容??梢詫⑿盘?hào)作為媒體優(yōu)化系統(tǒng)100做出客戶端和源服務(wù)器106/媒體優(yōu)化器102之間的連接在此時(shí)不具有足夠的帶寬來支持未改變的視頻流的確定的結(jié)果進(jìn)行發(fā)送。VOS 104接收該信號(hào)并且在下一個(gè)關(guān)鍵視頻幀處開始?jí)嚎s內(nèi)容。從該點(diǎn)起的H.264流實(shí)際上是來自原始流的圖像的同一序列的不同比特流。
[0026]在一個(gè)實(shí)施例中,本文中所描述的系統(tǒng)100覆蓋了在復(fù)用器級(jí)別處允許H264視頻內(nèi)容在客戶端處被漸進(jìn)地重放所需的特定細(xì)節(jié)。這可以包括將SPS和PPS條目動(dòng)態(tài)地插入到AVC DCR中的VOS 104。SPS和PPS條目提供針對(duì)特定比特流的信息。在一些實(shí)施例中,SPS和PPS條目可以以表格格式,并且VOS 104讀取表格中的每個(gè)條目以確定與特定比特流有關(guān)的比特速率、圖像分辨率和/或其它重放信息。
[0027]在一個(gè)實(shí)施例中,當(dāng)內(nèi)容被傳到VOS 104時(shí),VOS 104首先確定其是否需要將多個(gè)SPS和PPS條目動(dòng)態(tài)地注入到AVC DCR中。在一個(gè)實(shí)施例中,如果為以下情況,則VOS 104將多個(gè)SPS和PPS條目注入到AVC DCR中:
1.所使用的輸入容器視頻編解碼器為H264。
[0028]2.所使用的輸出容器視頻編解碼器為H264。
[0029]3.VOS 104配置指示其需要發(fā)送多個(gè)比特流。
[0030]AVC DCR或其它配置記錄可以包括指示曾被使用的編解碼器的類型的參數(shù)。在一個(gè)實(shí)施例中,VOS 104基于連接的帶寬和視頻流的尺寸來確定多個(gè)比特流需要被發(fā)送至客戶端。每個(gè)比特流可以被優(yōu)化以使用特定量的帶寬,使得比特流覆蓋一系列帶寬。在另一個(gè)實(shí)施例中,VOS 104可以基于其它因素來做出確定,所述其它因素諸如是客戶端、媒體優(yōu)化系統(tǒng)100和/或源服務(wù)器106的硬件限制。在另一個(gè)實(shí)施例中,媒體優(yōu)化器102監(jiān)視與連接有關(guān)的參數(shù)中的一些或所有以確定是否需要多個(gè)比特流,并且向VOS 104指示將使用哪些比特流。VOS 104可以僅創(chuàng)建選自要被使用的可能比特流中的一個(gè)優(yōu)化比特流。
[0031]圖2描繪了圖1的代理110的一個(gè)實(shí)施例的示意圖。所描繪的代理110包括以下更詳細(xì)描述的能夠執(zhí)行本文中所描述的功能和操作的各種組件。在一個(gè)實(shí)施例中,在計(jì)算機(jī)系統(tǒng)中實(shí)施代理110的組件中的至少一些。例如,代理110的一個(gè)或多個(gè)組件的功能可以通過存儲(chǔ)在計(jì)算機(jī)存儲(chǔ)設(shè)備200上并且由處理設(shè)備202 (諸如CPU)執(zhí)行的計(jì)算機(jī)程序指令來實(shí)施。代理110可以包括其它組件,諸如磁盤存儲(chǔ)驅(qū)動(dòng)器204、輸入/輸出設(shè)備206、接收器208和配置引擎210。代理110的組件中的一些或所有可以被存儲(chǔ)在單個(gè)計(jì)算設(shè)備上或者計(jì)算設(shè)備的網(wǎng)絡(luò)上。代理110可以包括比本文中所描繪的組件更多或更少的組件。在一些實(shí)施例中,代理110可以用來實(shí)施如圖5中所描繪的本文中所描述的方法。
[0032]在一個(gè)實(shí)施例中,代理110包括接收器208。接收器208被配置為接收對(duì)應(yīng)于原始比特流214的視頻容器212。在一個(gè)實(shí)施例中,接收器208在VOS 104處并且被配置為從媒體優(yōu)化器102接收視頻容器212。視頻容器212由媒體優(yōu)化器102在來自源服務(wù)器106的對(duì)應(yīng)于來自客戶端108的HTTP請(qǐng)求的HTTP響應(yīng)中接收。接收器208在視頻容器212中檢索對(duì)應(yīng)于原始比特流214的原始參數(shù)集216。當(dāng)代理110正在執(zhí)行本文中所描述的操作時(shí),原始參數(shù)集216可以被存儲(chǔ)在存儲(chǔ)設(shè)備中。在一個(gè)實(shí)施例中,原始參數(shù)集216包括針對(duì)原始比特流214的原始SPS和PPS條目。
[0033]代理110還包括配置引擎210。在一個(gè)實(shí)施例中,配置引擎210被配置為將流特定元數(shù)據(jù)222寫入到針對(duì)視頻容器212的報(bào)頭224。在一個(gè)實(shí)施例中,報(bào)頭224是針對(duì)H.264視頻容器212的AVC DCR0配置引擎210確定可以用于向客戶端108的視頻流的可能優(yōu)化比特流218的數(shù)量。可能優(yōu)化比特流218的數(shù)量可以與允許向客戶端108的連續(xù)流同時(shí)還
提供最佳圖像質(zhì)量所需要的一樣多。
[0034]流特定元數(shù)據(jù)222包括對(duì)應(yīng)于原始比特流214的原始參數(shù)集216。元數(shù)據(jù)222還包括針對(duì)可能優(yōu)化比特流218中的每一個(gè)的優(yōu)化參數(shù)集220。在一個(gè)實(shí)施例中,原始參數(shù)集216包括原始SPS和PPS條目,并且優(yōu)化參數(shù)集220包括針對(duì)可以被使用的可能優(yōu)化比特流218中的每一個(gè)的優(yōu)化SPS和PPS條目。配置引擎210可以通過分析從原始比特流214檢索的原始參數(shù)集216來確定可能優(yōu)化比特流218的數(shù)量。在將優(yōu)化參數(shù)集220插入到報(bào)頭224中之后重放的期間,代理110可以根據(jù)需要?jiǎng)?chuàng)建優(yōu)化比特流218,并且然后將該優(yōu)化比特流218轉(zhuǎn)發(fā)至客戶端108。
[0035]圖3描繪了用于通過圖1的媒體優(yōu)化系統(tǒng)100的數(shù)據(jù)流的方法的一個(gè)實(shí)施例的流程圖。特別地,圖3的方法示出當(dāng)沒有附加的SPS或PPS條目被注入到數(shù)據(jù)流中時(shí)通過VOS104的比特流??梢越Y(jié)合圖1的媒體優(yōu)化系統(tǒng)100來使用該方法。在其它實(shí)施例中,可以結(jié)合其它媒體優(yōu)化系統(tǒng)100來使用該方法。
[0036]該方法可以至少部分地或完全地在圖1的VOS 104中被實(shí)施,如下所示。在一個(gè)實(shí)施例中,VOS 104包括解復(fù)用器、解碼器、編碼器和復(fù)用器,每一個(gè)均執(zhí)行該方法的操作中的至少一些。
[0037]1.V0S 104寫入容器報(bào)頭數(shù)據(jù)。這是依賴于格式的。典型地,VOS 104寫入容器格式所需要的任何特定報(bào)頭224。VOS 104然后通過針對(duì)該容器212的所有所定義流進(jìn)行迭代并且寫入所需要的流特定元數(shù)據(jù)222。對(duì)于H.264流而言,這意味著寫入AVC DCR,其包括一個(gè)SPS和PPS條目。
[0038]2.VOS 104從源服務(wù)器106讀取對(duì)應(yīng)于視頻容器212的視頻內(nèi)容。
[0039]3.解復(fù)用器300從該視頻內(nèi)容提取視頻或音頻分組并且提取壓縮視頻內(nèi)容幀。
[0040]4.解碼器302接收壓縮輸入幀并且輸出完全未壓縮的緩沖器,其可以包括原始視頻內(nèi)容。
[0041]5.視頻編碼器304獲得未壓縮的視頻內(nèi)容并且壓縮該內(nèi)容。以優(yōu)化方式將輸出壓縮得比原始幀更多。
[0042]6.復(fù)用器306獲得壓縮視頻內(nèi)容幀并且將其與音頻內(nèi)容進(jìn)行復(fù)用,并且以正確的容器格式(例如,flash視頻分組或mp4分組)將復(fù)用內(nèi)容發(fā)送至客戶端108。
[0043]7.重復(fù)操作2-6直至輸入數(shù)據(jù)的結(jié)束。
[0044]8.VOS 104然后寫入依賴于格式的容器尾部(trailer)數(shù)據(jù)。
[0045]圖4描繪了用于通過圖1的媒體優(yōu)化系統(tǒng)100的數(shù)據(jù)流的方法的一個(gè)實(shí)施例的流程圖。在媒體優(yōu)化系統(tǒng)100確定其需要執(zhí)行動(dòng)態(tài)SPS/PPS注入的實(shí)施例中,媒體優(yōu)化系統(tǒng)100然后可以決定將多少SPS和PPS條目注入到AVC DCR中。在一個(gè)實(shí)施例中,媒體優(yōu)化系統(tǒng)100是VOS 104。要被注入的SPS和PPS條目的數(shù)量依賴于需要編碼或優(yōu)化的比特流的數(shù)量,最低限度地至少兩個(gè)。圖4示出了 VOS 104確定其需要將來自原始流的附加SPS和PPS條目注入到輸出生成的AVC DCR中的一個(gè)實(shí)施例。
[0046]在該實(shí)施例中,存在兩個(gè)不同的階段:其中原始輸入視頻分組被發(fā)送的第一階段,以及其中動(dòng)態(tài)優(yōu)化視頻分組被發(fā)送的第二階段(壓縮階段)。在一個(gè)實(shí)施例中,動(dòng)態(tài)優(yōu)化視頻分組包含表示圖像的同一序列的兩個(gè)不同的比特流。
[0047]1.V0S 104寫入容器特定的報(bào)頭數(shù)據(jù)。這是依賴于格式的。典型地,VOS 104寫入容器格式所需要的任何特定報(bào)頭224。VOS 104然后通過針對(duì)該容器212的所有所定義流進(jìn)行迭代并且寫入所需要的流特定元數(shù)據(jù)222。對(duì)于H.264流而言,這意味著寫入AVC DCR,其包括一個(gè)SPS和PPS條目。附加地,VOS 104將原始SPS和PPS動(dòng)態(tài)地插入到該生成的AVC DCR 中。
[0048]2.VOS 104從源服務(wù)器106讀取視頻內(nèi)容。[0049]3.解復(fù)用器300提取視頻或音頻分組并且提取壓縮視頻內(nèi)容幀。
[0050]4.復(fù)用器306獲得該壓縮視頻內(nèi)容幀,將其與音頻內(nèi)容進(jìn)行復(fù)用,并且以正確的容器格式將復(fù)用內(nèi)容發(fā)送至客戶端108。在本實(shí)施例中,該格式是針對(duì)flash視頻。
[0051]5.重復(fù)操作2-4直至VOS 104被發(fā)信號(hào)以開始?jí)嚎s階段,即開始對(duì)視頻內(nèi)容重新編碼。
[0052]6.當(dāng)VOS 104被發(fā)信號(hào)以開始?jí)嚎s階段時(shí),VOS 104在下一個(gè)關(guān)鍵幀上進(jìn)入壓縮階段。解碼器302接收壓縮輸入幀并且輸出完全未壓縮的緩沖器,其可以包括原始視頻內(nèi)容。
[0053]7.視頻編碼器304獲得未壓縮視頻內(nèi)容并且壓縮該內(nèi)容。將輸出壓縮得比原始幀更多。
[0054]8.復(fù)用器306獲得壓縮視頻內(nèi)容幀并且將其與音頻內(nèi)容進(jìn)行復(fù)用,并且以正確的容器格式(例如,flash視頻)將復(fù)用內(nèi)容發(fā)送至客戶端108。
[0055]9.重復(fù)操作2、6、7和8直至輸入數(shù)據(jù)的結(jié)束。
[0056]10.VOS 104然后寫入依賴于格式的容器尾部數(shù)據(jù)。
[0057]在該實(shí)施例中,如果VOS 104未將原始輸入視頻容器212的原始SPS和PPS條目動(dòng)態(tài)地插入到VOS 104所生成的新報(bào)頭224的AVC DCR中,則視頻的初始部分(未壓縮階段)將不會(huì)在客戶端108處播放。為了使內(nèi)容被播放,將原始SPS和PPS條目插入到正確的位置中。
[0058]圖5描繪了用于將數(shù)據(jù)插入到視頻流中的方法的一個(gè)實(shí)施例的流程圖。雖然結(jié)合圖1的媒體優(yōu)化系統(tǒng)100描述了方法500,但是可以利用其它類型的媒體優(yōu)化系統(tǒng)100來實(shí)施方法500的實(shí)施例。圖4的方法提供了關(guān)于媒體優(yōu)化系統(tǒng)100何時(shí)并且如何將原始SPS和PPS條目動(dòng)態(tài)地插入到輸出優(yōu)化的所生成的流中的更多細(xì)節(jié)。
[0059]在一個(gè)實(shí)施例中,VOS 104執(zhí)行如以下所描述的方法500的操作中的一些或所有: 1.VOS 104從原始流的AVC DCR中捕獲原始SPS和PPS。這在對(duì)輸入流進(jìn)行解復(fù)用之
前完成。對(duì)原始SPS和PPS條目進(jìn)行分析以找出當(dāng)創(chuàng)建輸出H264流編碼器時(shí)使用的下一個(gè)可用標(biāo)識(shí)符。
[0060]2.VOS 104寫入容器報(bào)頭數(shù)據(jù)。這是依賴于格式的。典型地,VOS 104寫入容器格式所需要的任何特定報(bào)頭224。VOS 104然后通過針對(duì)該容器212的所定義流進(jìn)行迭代并且寫入所需要的流特定元數(shù)據(jù)222。對(duì)于H.264流而言,這意味著寫入AVC DCR,其包括一個(gè)SPS和PPS條目。VOS 104可以確保所選擇的SPS標(biāo)識(shí)符和PPS標(biāo)識(shí)符當(dāng)與原始SPS和PPS標(biāo)識(shí)符相結(jié)合時(shí)是單調(diào)正確的。
[0061]3.包括AVC DCR的報(bào)頭數(shù)據(jù)被發(fā)送至緩沖輸出流。
[0062]4.VOS 104在容器報(bào)頭數(shù)據(jù)被(使用緩沖輸入/輸出流500)發(fā)送至客戶端108之前對(duì)其進(jìn)行攔截并且將原始SPS和PPS條目插入到新的流的AVD DCR SPS和PPS表格中。每個(gè)原始SPS和PPS條目被插入在相關(guān)SPS和PPS表格中的正確位置中。SPS和PPS表格被鍵控(key)在SPS標(biāo)識(shí)符和PPS標(biāo)識(shí)符上,并且因而SPS和PPS條目被插入到正確的位置中。VOS 104還可以允許具有多于一個(gè)SPS和PPS條目的輸入流。
[0063]媒體優(yōu)化系統(tǒng)100可以依賴于被包括在HTTP代理服務(wù)器中。在媒體優(yōu)化系統(tǒng)100的一些實(shí)施例中,系統(tǒng)100還可以包括用于發(fā)信號(hào)給VOS 104以開始?jí)嚎s視頻的另一網(wǎng)絡(luò)元件。這樣的操作或附加操作可以由一個(gè)或多個(gè)單獨(dú)的軟件產(chǎn)品(諸如媒體優(yōu)化器102上的媒體優(yōu)化產(chǎn)品)來執(zhí)行。這可以包括:
1.在過程啟動(dòng)時(shí),VOS 104監(jiān)聽來自媒體優(yōu)化器102的HTTP Post請(qǐng)求。
[0064]2.向尚未被貯藏的客戶端108發(fā)送回視頻內(nèi)容的每個(gè)HTTP響應(yīng)可以被媒體優(yōu)化器102重定向到VOS 104。VOS 104然后可以向媒體優(yōu)化器102發(fā)送回原始或重新編碼的視頻內(nèi)容,該媒體優(yōu)化器102然后將該內(nèi)容轉(zhuǎn)發(fā)至客戶端108。只要HTTP代理服務(wù)器是有效的,媒體優(yōu)化系統(tǒng)100就可以運(yùn)行。
[0065]在一個(gè)實(shí)施例中,VOS 104插入針對(duì)原始比特流214的原始參數(shù)集216,使得在預(yù)壓縮階段中的視頻將在客戶端108上播放,并且該VOS 104插入針對(duì)優(yōu)化比特流218中的每一個(gè)的優(yōu)化參數(shù)集220,使得針對(duì)每個(gè)后續(xù)壓縮階段的視頻將在客戶端108上播放。在一些實(shí)施例中,該方法包括:從原始比特流214的配置記錄中捕獲原始參數(shù)集216,確定要被使用的可能比特流的數(shù)量,以及將針對(duì)可能優(yōu)化比特流218中的每一個(gè)的優(yōu)化參數(shù)集220插入到報(bào)頭224中。在一些實(shí)施例中,可以使用原始參數(shù)集216來確定可能優(yōu)化比特流218的數(shù)量以識(shí)別一系列可能/很可能優(yōu)化參數(shù)。在報(bào)頭224連同流特定元數(shù)據(jù)222 —起已經(jīng)被寫入之后,媒體優(yōu)化系統(tǒng)100可以對(duì)原始比特流214進(jìn)行優(yōu)化并且將優(yōu)化比特流218發(fā)送至客戶端108。被發(fā)送至客戶端108的優(yōu)化比特流218可以由到客戶端108的連接的當(dāng)前狀態(tài)所確定或者由其它/附加因素所確定。
[0066]媒體優(yōu)化系統(tǒng)100的實(shí)施例包括至少一個(gè)處理器,其通過系統(tǒng)總線(諸如數(shù)據(jù)、地址和/或控制總線)被直接或間接地耦合到存儲(chǔ)元件。該存儲(chǔ)元件可以包括在程序代碼的實(shí)際執(zhí)行期間所采用的本地存儲(chǔ)器、大容量存儲(chǔ)器、以及提供至少一些程序代碼的臨時(shí)存儲(chǔ)以便減少在執(zhí)行期間必須從大容量存儲(chǔ)器檢索代碼的次數(shù)的高速緩沖存儲(chǔ)器。
[0067]還應(yīng)當(dāng)注意的是,可以使用存儲(chǔ)在計(jì)算機(jī)可用存儲(chǔ)介質(zhì)上的供計(jì)算機(jī)執(zhí)行的軟件指令來實(shí)施用于方法的操作中的至少一些。作為示例,計(jì)算機(jī)程序產(chǎn)品的實(shí)施例包括用于存儲(chǔ)計(jì)算機(jī)可讀程序的計(jì)算機(jī)可用存儲(chǔ)介質(zhì),該計(jì)算機(jī)可讀程序當(dāng)在計(jì)算機(jī)上被執(zhí)行時(shí)使該計(jì)算機(jī)執(zhí)行操作,包括優(yōu)化視頻流的操作。
[0068]雖然以特定順序示出并描述了本文中的(一個(gè)或多個(gè))方法的操作,但是每個(gè)方法的操作的順序可以被改變使得可以以相反的順序來執(zhí)行特定操作或者使得可以至少部分地與其它操作同時(shí)執(zhí)行特定操作。在另一個(gè)實(shí)施例中,可以以間歇和/或交替的方式來實(shí)施不同操作的指令或子操作。
[0069]本發(fā)明的實(shí)施例可以采用完全硬件實(shí)施例、完全軟件實(shí)施例或者包含硬件和軟件元素兩者的實(shí)施例的形式。在一個(gè)實(shí)施例中,以軟件來實(shí)施本發(fā)明,所述軟件包括但不限于固件、駐留軟件、微代碼等。
[0070]此外,本發(fā)明的實(shí)施例可以采用可從提供程序代碼以供計(jì)算機(jī)或任何指令執(zhí)行系統(tǒng)使用或者與其結(jié)合的計(jì)算機(jī)可用或計(jì)算機(jī)可讀介質(zhì)獲得的計(jì)算機(jī)程序產(chǎn)品的形式。為了該描述的目的,計(jì)算機(jī)可用或計(jì)算機(jī)可讀介質(zhì)可以是能夠包含、存儲(chǔ)、通信、傳播或傳送程序以供指令執(zhí)行系統(tǒng)、裝置或設(shè)備使用或者與其結(jié)合的任何裝置。
[0071]計(jì)算機(jī)可用或計(jì)算機(jī)可讀介質(zhì)可以是電子、磁、光學(xué)、電磁、紅外或半導(dǎo)體系統(tǒng)(或裝置或設(shè)備),或者傳播介質(zhì)。計(jì)算機(jī)可讀介質(zhì)的示例包括半導(dǎo)體或固態(tài)存儲(chǔ)器、磁帶、可移除計(jì)算機(jī)軟磁盤、隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、剛性磁盤和光盤。光盤的當(dāng)前示例包括具有只讀存儲(chǔ)器的緊致盤(⑶-ROM)、讀/寫緊致盤(⑶-R/W)和數(shù)字視頻盤(DVD)。包括計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)的硬件實(shí)施方式也可以或可以不包括瞬時(shí)介質(zhì)。光盤的當(dāng)前示例包括具有只讀存儲(chǔ)器的緊致盤(⑶-ROM)、讀/寫緊致盤(⑶-R/W)和數(shù)字視頻盤(DVD)。
[0072]輸入/輸出或I/O設(shè)備(包括但不限于鍵盤、顯示器、指示設(shè)備等)可以直接或通過中間I/O控制器被耦合到系統(tǒng)。附加地,網(wǎng)絡(luò)適配器也可以被耦合到系統(tǒng)以使得數(shù)據(jù)處理系統(tǒng)能夠變成通過中間的專用或公共網(wǎng)絡(luò)被耦合到其它數(shù)據(jù)處理系統(tǒng)或者遠(yuǎn)程打印機(jī)或存儲(chǔ)設(shè)備。調(diào)制解調(diào)器、電纜調(diào)制解調(diào)器和以太網(wǎng)卡僅是一些當(dāng)前可用類型的網(wǎng)絡(luò)適配器。
[0073]在以上描述中,提供了各種實(shí)施例的具體細(xì)節(jié)。然而,可以利用比所有這些具體細(xì)節(jié)更少的細(xì)節(jié)來實(shí)踐一些實(shí)施例。在其它實(shí)例中,為簡(jiǎn)明和清楚起見,以不比實(shí)現(xiàn)本發(fā)明的各種實(shí)施例的細(xì)節(jié)更多的細(xì)節(jié)來描述特定方法、過程、組件、結(jié)構(gòu)和/或功能。
[0074]雖然已經(jīng)描述并說明了本發(fā)明的特定實(shí)施例,但是本發(fā)明將不限于這樣描述并說明的各部分的特定形式或布置。本發(fā)明的范圍將由所附于此的權(quán)利要求及其等同物所限定。
【權(quán)利要求】
1.一種用于優(yōu)化視頻流的方法,包括: 在從源服務(wù)器接收的視頻容器中檢索針對(duì)原始比特流的原始參數(shù)集;以及 將流特定元數(shù)據(jù)寫入到針對(duì)視頻容器的報(bào)頭,其中該流特定元數(shù)據(jù)包括針對(duì)原始比特流的原始參數(shù)集和針對(duì)優(yōu)化比特流的優(yōu)化參數(shù)集。
2.之前任一項(xiàng)權(quán)利要求的方法,其中該原始參數(shù)集包括原始序列參數(shù)集和原始圖片參數(shù)集,并且該優(yōu)化參數(shù)集包括優(yōu)化序列參數(shù)集和優(yōu)化圖片參數(shù)集。
3.任一項(xiàng)權(quán)利要求的方法,進(jìn)一步包括在檢索針對(duì)原始比特流的原始參數(shù)集之前在代理處對(duì)來自源服務(wù)器的視頻流中的視頻容器進(jìn)行攔截。
4.之前任一項(xiàng)權(quán)利要求的方法,進(jìn)一步包括: 從原始比特流的配置記錄中捕獲原始參數(shù)集; 確定要被使用的可能優(yōu)化比特流的數(shù)量;以及 將針對(duì)可能優(yōu)化比特流中的每一個(gè)的優(yōu)化參數(shù)集插入到報(bào)頭中。
5.權(quán)利要求4的方法,進(jìn)一步包括對(duì)原始參數(shù)集進(jìn)行分析以確定可能優(yōu)化比特流的數(shù)量。
6.權(quán)利要求4的方法,進(jìn)一步包括基于到客戶端設(shè)備的連接的帶寬和視頻流的尺寸和/或客戶端設(shè)備的硬件或軟件限制和/或?qū)嵤┰摲椒ǖ拿襟w優(yōu)化系統(tǒng)的硬件或軟件限制和/或源服務(wù)器的硬件或軟件限制來確定要被使用的可能優(yōu)化比特流的數(shù)量。
7.之前任一項(xiàng)權(quán)利要求的方法,進(jìn)一步包括: 在將流特定元數(shù)據(jù)寫入到報(bào)頭之后對(duì)原始比特流進(jìn)行優(yōu)化;以及 將優(yōu)化比特流發(fā)送至客戶端。
8.之前任一項(xiàng)權(quán)利要求的方法,進(jìn)一步包括使用H.264編解碼器對(duì)原始比特流和優(yōu)化比特流進(jìn)行編碼。
9.一種計(jì)算機(jī)程序產(chǎn)品,包括: 用于存儲(chǔ)計(jì)算機(jī)可讀程序的計(jì)算機(jī)可讀存儲(chǔ)設(shè)備,其中該計(jì)算機(jī)可讀程序當(dāng)被計(jì)算機(jī)內(nèi)的處理器執(zhí)行時(shí)使該計(jì)算機(jī)實(shí)施權(quán)利要求1至8中的任一項(xiàng)的方法。
10.一種媒體優(yōu)化系統(tǒng),包括: 接收器,其被配置為在從源服務(wù)器接收的視頻容器中檢索針對(duì)原始比特流的原始參數(shù)集,其中該原始參數(shù)集被存儲(chǔ)在存儲(chǔ)設(shè)備上;以及 配置引擎,其被配置為將流特定元數(shù)據(jù)寫入到針對(duì)視頻容器的報(bào)頭,其中該流特定元數(shù)據(jù)包括針對(duì)原始比特流的原始參數(shù)集和針對(duì)優(yōu)化比特流的優(yōu)化參數(shù)集。
11.權(quán)利要求10的系統(tǒng),其中使用H.264編解碼器來對(duì)該視頻容器進(jìn)行編碼,其中該原始參數(shù)集包括原始序列參數(shù)集和原始圖片參數(shù)集,并且該優(yōu)化參數(shù)集包括優(yōu)化序列參數(shù)集和優(yōu)化圖片參數(shù)集。
12.權(quán)利要求10或11的系統(tǒng),其中該配置引擎進(jìn)一步被配置為確定要被使用的可能優(yōu)化比特流的數(shù)量;以及將針對(duì)可能優(yōu)化比特流中的每一個(gè)的優(yōu)化參數(shù)集插入到報(bào)頭中。
13.權(quán)利要求12的系統(tǒng),其中該配置引擎進(jìn)一步被配置為對(duì)原始參數(shù)集進(jìn)行分析以確定可能優(yōu)化比特流的數(shù)量。
14.權(quán)利要求12的系統(tǒng),其中該配置引擎進(jìn)一步被配置為基于到客戶端設(shè)備的連接的帶寬和視頻流的尺寸和/或客戶端設(shè)備的硬件或軟件限制和/或該系統(tǒng)的硬件或軟件限制和/或源服務(wù)器的硬件或軟件限制來確定要被使用的可能優(yōu)化比特流的數(shù)量。
15.權(quán)利要求10至14中的任一項(xiàng)的系統(tǒng),進(jìn)一步包括代理,其被配置為對(duì)來自源服務(wù)器的視頻流中的視頻容器進(jìn)行攔截。
16.權(quán)利要求15的系統(tǒng),其中該代理進(jìn)一步被配置為: 在將流特定元數(shù)據(jù)寫 入到報(bào)頭之后將原始比特流優(yōu)化成優(yōu)化比特流;以及 將該優(yōu)化比特流發(fā)送至客戶端。
【文檔編號(hào)】H04N21/2343GK103430558SQ201280008535
【公開日】2013年12月4日 申請(qǐng)日期:2012年2月10日 優(yōu)先權(quán)日:2011年2月12日
【發(fā)明者】D.哈里森, C.布朗 申請(qǐng)人:無線星球有限責(zé)任公司