專利名稱:一種快進快退播放視頻數(shù)據(jù)的方法和流媒體服務(wù)器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及視頻數(shù)據(jù)播放技術(shù),特別涉及一種快進快退播放視頻數(shù)據(jù)的方法和流媒體服務(wù)器。
背景技術(shù):
隨著寬帶網(wǎng)絡(luò)基礎(chǔ)設(shè)施的改善,流媒體的應(yīng)用越來越廣泛。在流媒體應(yīng)用中,流媒體服務(wù)器收到用戶的播放請求后,從媒體文件中讀出流媒體數(shù)據(jù),包括視頻和音頻數(shù)據(jù),向客戶端連續(xù)、實時地傳送。在視頻點播(VOD,Video On Demand)應(yīng)用中,客戶端還可以向流媒體服務(wù)器發(fā)出快進或后退的指令,觀看當(dāng)前畫面之前或之后的內(nèi)容。
媒體文件通常都很大,因此需要對媒體文件進行壓縮,減少保存媒體文件時存儲設(shè)備的開銷以及傳輸流媒體數(shù)據(jù)時對傳輸帶寬的要求。目前,對媒體文件進行壓縮的方法有3種。這三種壓縮方法為本領(lǐng)域公知技術(shù),這里不再贅述。
不同的壓縮方法壓縮效果不同,利用現(xiàn)有的3種方法進行媒體文件壓縮時,分別生成3種不同的視頻數(shù)據(jù)幀I幀、P幀和B幀。I幀不需要參考其它幀,與P幀和B幀相比,I幀需要大量數(shù)據(jù);P幀需要的數(shù)據(jù)量大致為I幀的一半,B幀需要的數(shù)據(jù)量大約為I幀的1/4。另一方面,因為P幀和B幀需要參考其它幀,所以一旦傳輸時有媒體數(shù)據(jù)丟失,錯誤就會一直延續(xù)下去,導(dǎo)致畫面無法恢復(fù)。因此在流媒體數(shù)據(jù)傳輸中需要每隔一段時間發(fā)送一個I幀,用于出錯時的恢復(fù),每2個I幀之間通常會有12到15個P幀或B幀。
即使采用了多種壓縮技術(shù),媒體文件仍然很大,因此媒體文件的讀取以及流媒體數(shù)據(jù)的發(fā)送都需要花費較長時間。為了盡量減少流媒體數(shù)據(jù)的讀取和發(fā)送時間,流媒體應(yīng)用在處理快進快退播放請求時,并不是簡單地加速發(fā)送流媒體數(shù)據(jù),而是在滿足用戶體驗的情況下盡量少發(fā)送流媒體數(shù)據(jù)。
現(xiàn)有技術(shù)第一種快進快退播放視頻文件的方案中,將原始媒體文件中的I幀抽取出來,并在相鄰的I幀之間根據(jù)不同時刻I幀的大小增加1個或者多個ZP(Zero Frame),形成一個新的I幀文件,同時生成I幀的索引文件。ZP的類型為P幀,畫面內(nèi)容和之前的I幀完全相同,插入ZP的目的是保證快進快退時視頻流輸出碼率和正常播放時相同。
當(dāng)流媒體服務(wù)器收到快進或快退播放請求后,首先根據(jù)播放請求的命令類型以及當(dāng)前正在發(fā)送的畫面確定第1個要發(fā)送的I幀,之后根據(jù)第1個要發(fā)送的I幀的序號從索引文件中定位第1個I幀,根據(jù)第1個I幀的大小確定需要插入的ZP的個數(shù),將第1個I幀以及插入的ZP通過流媒體生成器發(fā)送到網(wǎng)絡(luò),之后按照上述步驟繼續(xù)發(fā)送后續(xù)的I幀及ZP。
現(xiàn)有技術(shù)第二種快進快退播放視頻數(shù)據(jù)的方案中,流媒體服務(wù)器首先將獲取的原始媒體文件中的所有I幀抽取出來,形成I幀序列。為了在快進快退時還可以按照正常播放模式下的碼率輸出視頻數(shù)據(jù),流媒體服務(wù)器根據(jù)播放設(shè)備每秒播放多少幀畫面、網(wǎng)絡(luò)傳輸速率(TBR)以及視頻比特率(VBR),確定標(biāo)準(zhǔn)I幀的大小,將輸入的I幀修改成為標(biāo)準(zhǔn)I幀的大小,將修改后的I幀稱為T幀。兩個相鄰的T幀之間增加一個或者多個B幀或P幀,這些B幀或P幀和相鄰的I幀畫面內(nèi)容相同,目的是使播放時畫面更加平滑。流媒體服務(wù)器使用生成的T幀序列直接形成用于快進的媒體文件,修改T幀序列中的時間戳形成用于快退的媒體文件,同時,生成索引文件。當(dāng)從正常播放切換到快進時,流媒體服務(wù)器根據(jù)原始媒體文件中下一個要發(fā)送的I幀查找索引文件,找到I幀所對應(yīng)的快進媒體文件中的T幀,之后從快進媒體文件中讀取T幀及其之后的視頻數(shù)據(jù)進行發(fā)送;當(dāng)從快進轉(zhuǎn)換到正常播放時,流服務(wù)器根據(jù)快進媒體文件中下一個要發(fā)送的T幀查找索引文件,找到T幀所對應(yīng)的原始媒體文件中的I幀,之后從原始媒體文件中讀取I幀及其之后的視頻數(shù)據(jù)進行發(fā)送??焱颂幚聿捎猛瑯拥姆椒?,不同之處是使用快退媒體文件。
采用上述兩種技術(shù)方案可以使流媒體服務(wù)器在快進快退時,仍然按照正常播放模式下的碼率輸出視頻數(shù)據(jù)。因為所有I幀都被抽取出來存放為單獨的快進快退媒體文件,所以讀取時可以一次性讀出多個I幀數(shù)據(jù),在一定程度上提高了I幀的讀取效率。但是這兩種方案沒有考慮快進快退倍速增加時,并不需要發(fā)送所有I幀數(shù)據(jù)。通常快進快退倍速可以是2倍速、4倍速、8倍速、16倍速和32倍速。當(dāng)倍速很高時,如32倍速時,采用現(xiàn)有技術(shù)兩種方案進行快進快退播放的讀取效率只有6.25%。并且,在高倍速快進快退時讀取和發(fā)送所有I幀數(shù)據(jù),很可能會超出硬盤讀取能力、網(wǎng)絡(luò)傳輸帶寬以及客戶端的接收能力。因此在高倍速快進快退時,需要按照時間間隔丟棄部分I幀,這樣一來從快進快退媒體文件中讀取出來的數(shù)據(jù)大部分需要丟棄,浪費了硬盤處理能力,使得系統(tǒng)所能支持的并發(fā)快進快退用戶數(shù)降低,增大了分?jǐn)偟矫坑脩舻牧髅襟w服務(wù)器成本。
發(fā)明內(nèi)容
有鑒于此,一方面提供了一種快進快退播放視頻數(shù)據(jù)的方法,另一方面提供了一種流媒體服務(wù)器,提高流媒體服務(wù)器的視頻數(shù)據(jù)讀取效率。
一種快進快退播放視頻數(shù)據(jù)的方法,包括從原始媒體文件中獲取按不同倍速快進快退播放時,所需的視頻數(shù)據(jù),利用獲取到的視頻數(shù)據(jù)生成快進快退序列文件,生成快進快退序列索引文件;流媒體服務(wù)器接收到來自客戶端的快進快退播放請求時,從所述快進快退序列索引文件中獲取滿足所述播放請求的快進快退索引信息,根據(jù)獲取的索引信息,從所述快進快退序列文件中獲取滿足所述播放請求的視頻數(shù)據(jù),通過網(wǎng)絡(luò)發(fā)送至所述客戶端。
一種流媒體服務(wù)器,包括流媒體生成器、存儲單元,快進快退序列解析器、快進快退序列生成器,其中所述存儲單元,用于存儲原始媒體文件、以及來自所述快進快退序列生成器的快進快退序列文件以及快進快退序列索引文件;所述快進快退序列生成器,從所述原始媒體文件中獲取按不同倍速快進快退播放時,所需的視頻數(shù)據(jù),生成所述快進快退序列文件以及快進快退序列索引文件,保存到所述存儲單元中;所述流媒體生成器,接收來自客戶端的快進快退播放請求,指令所述快進快退序列解析器執(zhí)行所述快進快退播放請求;將接收到的視頻數(shù)據(jù)通過網(wǎng)絡(luò)發(fā)送至所述客戶端;所述快進快退序列解析器,接收來自所述媒體生成器的指令,從所述快進快退序列索引文件中獲取滿足所述播放請求的快進快退序列索引信息,根據(jù)獲取的索引信息,從所述快進快退序列文件中獲取滿足所述播放請求的視頻數(shù)據(jù),發(fā)送至所述流媒體生成器。
由以上技術(shù)方案可見,本發(fā)明實施例提供的快進快退播放視頻數(shù)據(jù)的方法和流媒體服務(wù)器,通過從原始媒體文件中獲取按不同倍速快進快退播放時所需的視頻數(shù)據(jù),利用獲取到的視頻數(shù)據(jù)生成快進快退序列文件,這種快進快退序列文件考慮到不同倍速快進快退播放時需要的視頻數(shù)據(jù)不同的問題,提高了流媒體服務(wù)器的視頻數(shù)據(jù)讀取效率。
圖1為本發(fā)明實施例的混合快進快退序列單元結(jié)構(gòu)示意圖;圖2為本發(fā)明實施例的快進快退播放視頻數(shù)據(jù)的流程圖一;圖3為本發(fā)明實施例的快進快退播放視頻數(shù)據(jù)的流程圖二;圖4為本發(fā)明實施例的流媒體服務(wù)器結(jié)構(gòu)圖。
具體實施例方式
為使本發(fā)明的目的、技術(shù)方案和有益效果更加清楚明白,下面結(jié)合實施例和附圖,對本發(fā)明做進一步地詳細(xì)說明。
本發(fā)明實施例提供的快進快退播放視頻數(shù)據(jù)的方法包括通過從原始媒體文件中獲取按不同倍速快進快退播放所需的視頻數(shù)據(jù),利用獲取到的視頻數(shù)據(jù)生成快進快退序列文件,生成快進快退序列索引文件;當(dāng)流媒體服務(wù)器接收到來自客戶端的快進快退播放請求時,從快進快退序列索引文件中獲取滿足接收到的播放請求的快進快退索引信息,根據(jù)獲取的索引信息,從快進快退序列文件中獲取滿足接收到的播放請求的視頻數(shù)據(jù),通過網(wǎng)絡(luò)發(fā)送至客戶端。
當(dāng)流媒體服務(wù)器接收到的播放請求為從正常播放切換到特定倍速快進快退播放時,流媒體服務(wù)器獲取滿足接收到的播放請求的視頻數(shù)據(jù)的步驟包括確定已發(fā)送的最后一個視頻數(shù)據(jù)I幀之后或之前的第一個特定倍速I幀,將其作為要發(fā)送的I幀;如果當(dāng)前已發(fā)送的最后一個I幀為正常播放的I幀,則查找快進快退序列索引文件,獲取定位要發(fā)送的I幀的索引信息,根據(jù)獲取的索引信息,從快進快退序列文件中定位并讀取要發(fā)送的I幀,發(fā)送給客戶端;如果已發(fā)送的最后一個I幀為按所述特定倍速快進快退播放的I幀,則確定要發(fā)送的I幀是否已被讀取到緩沖區(qū)中,如果是,則從緩沖區(qū)中定位并讀取相應(yīng)的要發(fā)送的I幀,發(fā)送給客戶端;否則采用與已發(fā)送的最后一個I幀為正常播放的I幀相同的方法定位并讀取要發(fā)送的I幀,將其發(fā)送給客戶端。
當(dāng)流媒體服務(wù)器在快進快退播放過程中,接收到將初始倍速切換為目標(biāo)倍速的播放請求時,流媒體服務(wù)器獲取滿足接收到的播放請求的視頻數(shù)據(jù)的步驟包括確定已發(fā)送的最后一個I幀之后或之前的第一個目標(biāo)倍速I幀,將其作為要發(fā)送的I幀;檢查當(dāng)前已讀取到緩沖區(qū)的視頻數(shù)據(jù)是否包含要發(fā)送的I幀,如果包含,則從緩沖區(qū)中定位并讀取要發(fā)送的I幀,發(fā)送至客戶端;如果不包含,則查找快進快退索引文件,獲取定位要發(fā)送的I幀的索引信息;根據(jù)獲取的定位要發(fā)送的I幀的索引信息,從快進快退序列文件中定位讀取要發(fā)送的I幀,發(fā)送給客戶端。
本發(fā)明實施例中,利用獲取到的視頻數(shù)據(jù)生成快進快退序列文件,并生成快進快退序列索引文件的第一種實現(xiàn)方案包括A、選擇至少兩種快進快退播放倍速,其中一種倍速作為標(biāo)準(zhǔn)倍速,其余的倍速作為高倍速補償倍速,從原始媒體文件中獲取按選擇的倍速快進快退播放時,分別所需的視頻數(shù)據(jù);B、按順序?qū)⒔邮盏降牟煌端倏爝M快退播放所需的視頻數(shù)據(jù),以選定的比例混合生成多個設(shè)定大小的混合快進快退序列單元,每個混合快進快退序列單元的大小可以按緩沖區(qū)大小設(shè)置。每個混合快進快退序列單元包括標(biāo)準(zhǔn)倍速快進快退序列、至少一種高倍速快退補償序列和至少一種高倍速快進補償序列。
每一種高倍速快進補償序列的起始位置由標(biāo)準(zhǔn)倍速快進快退序列的結(jié)束位置確定;每一種高倍速快退補償序列的結(jié)束位置由標(biāo)準(zhǔn)倍速快進快退序列的起始位置確定。
在這種實現(xiàn)方案中,生成快進快退序列索引文件的步驟包括生成混合快進快退序列單元的索引文件,該索引文件中包含混合快進快退序列單元的特征信息、在快進快退序列索引文件中的位置信息、以及對應(yīng)的每一種高倍速快進快退序列索引的位置信息;生成標(biāo)準(zhǔn)倍速快進快退序列索引文件,該索引文件中包含標(biāo)準(zhǔn)倍速快進快退序列中每一個I幀的特征信息、在快進快退序列索引文件中的位置信息;生成每個混合快進快退序列單元的每一種高倍速快進快退序列索引,每個高倍速快進快退序列索引中包含對應(yīng)混合快進快退序列單元中包含的所有對應(yīng)高倍速I幀的特征信息、以及在快進快退序列索引文件中的位置信息。
目前流媒體服務(wù)器支持的快進快退倍速通常包括2倍速、4倍速和8倍速,有些流媒體服務(wù)器還支持16倍速和32倍速。步驟A所述的選擇至少兩種倍速的方式有很多種,可以為選擇系統(tǒng)支持的所有倍速,如2、4、8、16、32倍速,然后將2倍速選定為標(biāo)準(zhǔn)倍速,將4、8、16、32作為高倍速補償倍速;也可以為選定2倍速為標(biāo)準(zhǔn)倍速,選定8、32為高倍速補償倍速。
為了描述簡單,以下實施例中均假設(shè)流媒體服務(wù)器所支持的最大快進快退倍速為32倍速。選定2、4、8倍速為低倍速,16倍速和32倍速為高倍速,將2倍速設(shè)定為標(biāo)準(zhǔn)倍速,將16倍速設(shè)定為高倍速補償倍速。在這種情況下,所述從原始媒體文件中獲取按不同倍速快進快退播放時,所需的視頻數(shù)據(jù)包括從原始媒體文件中獲取標(biāo)準(zhǔn)倍速,即2倍速,快進快退播放時所需的視頻數(shù)據(jù)序列,以及選定的高倍速補償倍速,即16倍速,快進快退播放時所需的視頻數(shù)據(jù)序列。
假設(shè)某段視頻以2倍速快進播放時發(fā)送了n個I幀,按照正常播放的先后順序?qū)@些I幀進行編號,在先播放的序號小,在后播放的序號大,這些I幀依次為I1、I2、...、In,稱為2倍速I幀,持續(xù)時間為m秒。那么以4倍速播放這段視頻時持續(xù)時間減少一半,為m/2秒,為了保持視頻輸出流的恒定,這些I幀只能抽取其中的一半發(fā)送,即發(fā)送I1、I3、...In,稱為4倍速I幀。8倍速時抽取2倍速I幀中的1/4發(fā)送,相應(yīng)的I幀稱為8倍速I幀,16倍速和32倍速依此類推。因此,標(biāo)準(zhǔn)倍速快進快退所需的視頻數(shù)據(jù)序列即為2倍速I幀,高倍速補償序列倍速所需的視頻數(shù)據(jù)序列即為16倍速I幀。本發(fā)明以下描述中I幀序號均采用上述的方式進行設(shè)置。
利用獲取的視頻數(shù)據(jù)生成快進快退序列文件的步驟包括按順序?qū)⒔邮盏降?倍速I幀和16倍速I幀,以選定的比例混合生成多個設(shè)定大小的混合快進快退序列單元,每個混合快進快退序列單元包含標(biāo)準(zhǔn)倍速快進快退序列、高倍速快進補償序列以及高倍速快退補償序列。其中,高倍速快進補償序列的起始位置由標(biāo)準(zhǔn)倍速快進快退序列的結(jié)束位置確定;高倍速快退補償序列的結(jié)束位置由標(biāo)準(zhǔn)倍速快進快退序列的起始位置確定。
這里,快進快退序列文件中的每個混合快進快退序列單元按緩沖區(qū)大小設(shè)置。
在標(biāo)準(zhǔn)倍速快進快退序列中存放2倍速I幀。流媒體服務(wù)器對原始媒體文件遍歷時,從中抽取用于2倍速I幀,按照先后順序依次存放到混合快進快退序列單元的標(biāo)準(zhǔn)倍速快進快退序列中,當(dāng)一個混合快進快退序列單元中存放的2倍速退I幀即將超過事先確定的比例時,停止存放2倍速I幀,后續(xù)的2倍速I幀存放到下一個混合快進快退序列單元中;當(dāng)抽取的2倍速I幀未填充滿事先確定的比例時,不足部分以0填充。從以上存放方法中可以看出,一個2倍速I幀只會存在于一個混合快進快退序列單元中,不同的單元不會重復(fù)出現(xiàn)同一個2倍速I幀。
高倍速快退補償序列存放16倍速I幀。假設(shè)當(dāng)前單元的標(biāo)準(zhǔn)快進快退序列的第1個I幀所對應(yīng)的原始媒體文件中的I幀序號為Ij,流媒體服務(wù)器從Ij開始對原始媒體文件進行反向遍歷,找出Ij之前的用于16倍速快退的I幀依次放入混合快進快退序列單元,當(dāng)達到預(yù)先確定的高倍速快退補償序列所占比例時,停止存放Ij之前的16倍速I幀,后續(xù)的Ij之前的16倍速I幀存放到下一個混合快進快退序列單元中;當(dāng)抽取的Ij之前的16倍速I幀未填充滿預(yù)先確定的高倍速快退補償序列所占比例時,不足部分以0填充。高倍速快退補償序列中的I幀可能存在于多個混合快進快退序列單元中,因為某個高倍速I幀在該單元中是高倍速快退補償I幀,同時又是前一個單元的高倍速快進補償I幀。
高倍速快進補償序列存放16倍速快進時所使用的I幀。當(dāng)前混合快進快退序列單元的標(biāo)準(zhǔn)快進快進序列的最后1個I幀所對應(yīng)的原始媒體文件中的I幀序號為Ik,那么流媒體服務(wù)器從Ik開始對原始媒體文件進行遍歷,找出Ik之后的用于16倍速快進的I幀依次放入混合快進快退序列單元,當(dāng)達到預(yù)先確定的高倍速快退補償序列所占比例時,停止存放Ik之后的16倍速I幀,后續(xù)的Ik之后的16倍速I幀存放到下一個混合快進快退序列單元中;當(dāng)抽取的Ik之后的16倍速I幀未填充滿預(yù)先確定的高倍速快退補償序列所占比例時,不足部分以0填充。高倍速快進補償序列中的I幀可能存在于多個單元中,因為某個高倍速I幀在該單元中是高倍速快進補償I幀,同時又是下一個單元的高倍速快退補償I幀。
混合快進快退序列單元中各個不同部分的比例可以根據(jù)對應(yīng)的各種快進快退倍速的使用頻率選擇比例。對于標(biāo)準(zhǔn)倍速選擇2倍速,高倍速補償高倍速選擇1 6倍速的情況,一種較佳的比例為標(biāo)準(zhǔn)倍速快進快退序列占用一半空間、高倍速快進補償序列和高倍速快退補償序列分別占用1/4空間。
圖1為本發(fā)明實施例的混合快進快退序列單元結(jié)構(gòu)示意圖。假設(shè)在該混合快進快退序列單元中,標(biāo)準(zhǔn)倍速快進快退序列包括I5至I8,包括四個I幀,則從I5開始往前遍歷原始媒體文件中的I幀,選擇16倍速播放時的I幀,在這種情況下只有I1,則在當(dāng)前的高倍速快退序列中保存I1,其余空間用0填充,該序列總共占用1/4的空間;從I8開始向后遍歷原始媒體文件中的I幀,選擇16倍速播放時需要的I幀,在這種情況下包括I9和I17,假設(shè)這兩個I幀正好占用1/4空間,則在高倍速快進序列中填充I9和I17。
在上述實現(xiàn)方案中,同時生成的快進快退索引文件用于定位每一個視頻數(shù)據(jù)的I幀在快進快退序列文件中的位置。較佳的實現(xiàn)方式可以包括如下步驟生成混合快進快退序列單元的索引文件,該索引文件中包含混合快進快退序列單元的標(biāo)識信息、在快進快退序列索引文件中的位置信息、以及對應(yīng)的高倍速快進快退序列索引的位置信息。具體可以在該索引文件中記錄所有混合快進快退序列單元的以下信息為混合快進快退序列單元設(shè)置的標(biāo)識信息,如序號;混合快進快退序列單元在混合快進快退序列文件中的起始位置、混合快進快退序列單元的大小以及該單元對應(yīng)的高倍速快進快退序列索引文件在快進快退序列索引文件中的位置信息。
生成標(biāo)準(zhǔn)倍速快進快退序列索引文件,該索引文件中包含標(biāo)準(zhǔn)倍速快進快退序列中每一個I幀的標(biāo)識信息,可以為序號、在快進快退序列索引文件中的位置信息。具體可以在該索引文件中記錄所有選定的標(biāo)準(zhǔn)倍速,如2倍速,快進快退I幀的序號、所在的混合快進快退序列單元的序號、在混合快進快退序列單元中的起始位置、以及該I幀的大小。
生成每個混合快進快退序列單元的高倍速快進快退序列索引文件,每個高倍速快進快退序列索引文件中包含對應(yīng)混合快進快退序列單元中包含的所有高倍速I幀的標(biāo)識信息,可以為序號、在快進快退序列索引文件中的位置信息。
由于高倍速I幀可能出現(xiàn)在多個單元中,所以高倍速快進快退序列索引以混合快進快退序列單元進行劃分。每個混合快進快退序列單元都有一個單獨的高倍速快進快退序列索引。從每個混合快進快退序列單元內(nèi)挑選出所有高倍速I幀,包括標(biāo)準(zhǔn)序列中的高倍速I幀和補償序列中的高倍速I幀,記錄這些I幀的以下信息I幀序號、所在的混合快進快退序列單元的序號、在混合快進快退序列單元中的起始位置、以及I幀的大小。
圖2為本發(fā)明實施例的快進快退播放視頻數(shù)據(jù)的流程圖一。該流程給出了流媒體服務(wù)器從正常播放切換到快進或快退播放的流程,設(shè)定快進快退播放的倍速為n倍速,可以為2、4、8、16或32倍速,設(shè)定要發(fā)送的I幀為Ix幀,Ix幀所在的混合快進快退序列單元的序號為Ux。該流程包括如下步驟步驟201,確定正常播放時發(fā)送的最后一個視頻數(shù)據(jù)I幀的序號,設(shè)定為Istart,計算該Istart幀之后或之前的第一個n倍速I幀,將其賦值到要發(fā)送的I幀Ix幀。
步驟202,查找快進快退序列索引文件,確定Ix幀所在的混合快進快退序列單元的特征信息,如序號,以及混合快進快退序列單元在快進快退序列文件中的位置信息,可以用混合快進快退序列單元在快進快退序列文件中的起始位置信息和該混合快進快退序列單元的大小表示。
步驟203,查找快進快退序列索引文件,確定Ix幀在所述混合快進快退序列單元中的位置信息,可以用Ix幀在所述混合快進快退序列單元中的起始位置以及Ix幀的大小表示。
步驟202和步驟203合并在一起為定位要發(fā)送的Ix幀在快進快退序列文件中的位置信息的步驟。
步驟204,根據(jù)Ix幀所在的混合快進快退序列單元的位置將對應(yīng)的混合快進快退序列單元讀取到緩沖區(qū)中;根據(jù)Ix幀在所述混合快進快退序列單元中的位置和大小,從緩沖區(qū)中定位并讀取所述Ix幀,發(fā)送給客戶端;步驟205,計算當(dāng)前已發(fā)送的最后一個I幀之后或之前的第一個n倍速I幀,將計算所得的I幀賦值到Ix幀。
步驟206,查找快進快退序列索引文件,定位Ix幀所在混合快進快退序列單元,如果該單元為讀取到緩沖區(qū)中的混合快進快退序列單元相同,則直接從緩沖區(qū)中定位并讀取相應(yīng)的Ix幀,發(fā)送給客戶端,返回步驟205;否則,返回步驟203。
當(dāng)圖2所述流程應(yīng)用到將正常播放切換為預(yù)先設(shè)定的低倍速快進或快退播放時,步驟206所述查找快進快退序列索引文件為查找快進快退序列索引文件中的標(biāo)準(zhǔn)倍速快進快退序列索引;當(dāng)圖2所述流程應(yīng)用到將正常播放切換為預(yù)先設(shè)定的高倍速快進或快退播放時,步驟206所述查找快進快退序列索引文件為查找快進快退序列索引文件中的高倍速快進或快退序列索引。
在圖2所示實施例的實現(xiàn)過程中,一旦流媒體服務(wù)器接收到停止或改變當(dāng)前播放方式的指令,則結(jié)束當(dāng)前流程。
當(dāng)流媒體服務(wù)器接收到改變當(dāng)前播放方式的指令時,如果該指令為正常播放流媒體文件,則流媒體服務(wù)器根據(jù)當(dāng)前發(fā)送的最后一個I幀的序號計算正常播放流媒體文件的開始位置,根據(jù)計算確定的開始位置從所述原始媒體文件中獲取相應(yīng)的流媒體數(shù)據(jù),并將獲取的流媒體數(shù)據(jù)發(fā)送至所述客戶端。
圖3為本發(fā)明實施例的快進快退播放視頻數(shù)據(jù)的流程圖二。該流程給出了流媒體服務(wù)器從n倍速快進或快退播放切換到m倍速快進或快退播放的流程,n和m不等。該流程包括如下步驟步驟301,計算切換前發(fā)送的最后一個視頻數(shù)據(jù)I幀的序號,設(shè)定為Istart,計算該Istart幀之后或之前的第一個m倍速I幀,將其賦值到下一個要發(fā)送的I幀Ix幀;步驟302,檢查當(dāng)前讀取到緩沖區(qū)的混合快進快退序列單元中是否包含Ix幀,如果包含,執(zhí)行步驟303;否則,轉(zhuǎn)步驟304。
本步驟的具體實現(xiàn)過程包括如果m為預(yù)先設(shè)定的低倍速,則查找快進快退序列索引文件的標(biāo)準(zhǔn)倍速快進快退索引文件,定位Ix幀所在混合快進快退序列單元,定位的方法可以為定位Ix幀所在混合快進快退序列單元在快進快退序列文件中的起始位置和大小。檢查該單元是否與已讀取到緩沖區(qū)中的單元相同;如果m為預(yù)先設(shè)定的高倍速,則查找快進快退序列索引文件的高倍速快進快退索引文件,獲得已讀取到緩沖區(qū)的混合快進快退序列單元中所有的高倍速I幀,檢查其中是否包含Ix幀。
步驟303,從緩沖區(qū)中定位并讀取Ix幀對應(yīng)的視頻數(shù)據(jù),發(fā)送至客戶端,之后執(zhí)行步驟306。
步驟304,查找快進快退序列索引文件,確定Ix幀在所述混合快進快退序列單元中的起始位置以及Ix幀的大小。
步驟305,根據(jù)Ix幀所在的混合快進快退序列單元的位置將對應(yīng)的混合快進快退序列單元讀取到緩沖區(qū)中;根據(jù)Ix幀在所述混合快進快退序列單元中的起始位置和大小,從緩沖區(qū)中定位并讀取Ix幀,發(fā)送給客戶端;步驟306,計算當(dāng)前Ix幀之后或之前的第一個m倍速I幀,將其賦值到Ix幀,返回步驟302。
在圖3所示實施例的實現(xiàn)過程中,當(dāng)流媒體服務(wù)器接收到改變當(dāng)前播放方式的指令,且該指令為正常播放流媒體文件時,該方法進一步包括流媒體服務(wù)器根據(jù)當(dāng)前發(fā)送的最后一個I幀的序號計算正常播放流媒體文件的開始位置,根據(jù)計算確定的開始位置從所述原始媒體文件中獲取相應(yīng)的流媒體數(shù)據(jù),并將獲取的流媒體數(shù)據(jù)發(fā)送至所述客戶端。
以下對圖2和圖3所示實施例提供的快進快退播放視頻數(shù)據(jù)方法的讀取效率進行分析,并與現(xiàn)有技術(shù)兩種方案的讀取效率進行比較。
特定倍速快進快退時視頻數(shù)據(jù)讀取效率的衡量標(biāo)準(zhǔn)為連續(xù)讀取一組I幀序列,計算當(dāng)前快進快退倍速下可用的I幀占整個序列的比例。為了在各種倍速快進快退時都可以高效地讀取視頻數(shù)據(jù),取其中的最小值作為流媒體服務(wù)器的快進快退視頻數(shù)據(jù)讀取效率。以系統(tǒng)支持2、4、8、16和32快進快退倍速為例進行對比分析。
現(xiàn)有技術(shù)的兩種方案中,各種倍速的快進快退視頻數(shù)據(jù)讀取效率分別為2倍速讀取的I幀序列都可以用于2倍速快進快退,因此所占比例是100%;4倍速讀取的I幀序列的一半可以用于4倍速快進快退,因此所占比例是50%;8倍速讀取的I幀序列的1/4可以用于8倍速快進快退,因此所占比例是25%;16倍速讀取的I幀序列的1/8可以用于16倍速快進快退,因此所占比例是12.5%;32倍速讀取的I幀序列的1/16可以用于32倍速快進快退,因此所占比例是6.25%。
其中,32倍速的讀取效率最低,因此流媒體服務(wù)器的快進快退讀取效率為32倍速的讀取效率,即6.25%。
圖2和圖3所示實施例中,標(biāo)準(zhǔn)快進快退序列為2倍速快進快退序列,占混合快進快退序列單元的1/2空間;高倍速快退補償序列為16倍速快退補償序列,占混合快進快退序列單元的1/4空間;高倍速快進補償序列為16倍速快進補償序列,占混合快進快退序列單元的1/4空間。在這種情況下,各個倍速的快進快退視頻數(shù)據(jù)讀取效率分別為2倍速標(biāo)準(zhǔn)快進快退序列都可以用于2倍速快進快退,因此所占比例是50%;4倍速標(biāo)準(zhǔn)快進快退序列中的一半可以用于4倍速快進快退,因此所占比例是25%;8倍速標(biāo)準(zhǔn)快進快退序列中的1/4可以用于8倍速快進快退,因此所占比例是12.5%;16倍速至少有高倍速快退補償序列或高倍速快進補償序列可用,因此所占比例至少是25%;32倍速至少有高倍速快退補償序列或高倍速快進補償序列中的一半可用,因此所占比例是12.5%;其中,8倍速和32倍速的讀取效率最低,因此本技術(shù)方案的流媒體服務(wù)器的快進快退視頻數(shù)據(jù)讀取效率為8倍速或32倍速的讀取效率,即12.5%。因此,采用圖2和圖3實施例提供的方法進行快進快退播放視頻數(shù)據(jù)時,流媒體服務(wù)器的快進快退讀取效率是現(xiàn)有技術(shù)兩種方案的2倍。
所述利用獲取到的視頻數(shù)據(jù)生成快進快退序列文件,并生成快進快退序列索引文件的第二種實現(xiàn)方案包括從原始文件中獲取按當(dāng)前系統(tǒng)支持的各種倍速快進快退播放時,分別所需的視頻數(shù)據(jù);利用獲取到的視頻數(shù)據(jù)生成快進快退序列文件及快進快退序列索引文件的方法包括將接收到的視頻數(shù)據(jù),按順序分別生成不同倍速快進快退序列文件,所有不同倍速快進快退序列文件組成快進快退序列文件;同時生成不同倍速快進快退序列索引文件,所有不同倍速快進快退序列索引文件組成快進快退序列索引文件。
從快進快退序列索引文件中獲取滿足所述播放請求的快進快退序列索引信息的步驟為根據(jù)接收到的播放請求指定的播放倍速,從對應(yīng)倍速快退快進序列索引文件中獲取索引信息;從快進快退序列文件中獲取滿足播放請求的視頻數(shù)據(jù)的步驟為根據(jù)獲取的索引信息,從對應(yīng)倍速快進快退序列文件中獲取滿足接收到的播放請求的視頻數(shù)據(jù)。
采用第二種實現(xiàn)方案實現(xiàn)由正常播放切換到快進快退播放視頻數(shù)據(jù),或?qū)崿F(xiàn)不同快進快退倍速之間的切換時,流程與圖2和圖3所示的流程的區(qū)別僅在于定位要發(fā)送的Ix幀的過程中。第二種實現(xiàn)方案中,為不同倍速生成了對應(yīng)的快進快退序列文件以及對應(yīng)的索引文件,因此流媒體服務(wù)器在確定要發(fā)送的Ix幀后,將根據(jù)當(dāng)前要切換到的倍速查找對應(yīng)的快進快退序列索引文件,定位要發(fā)送的Ix幀在對應(yīng)倍速的快進快退序列文件中的位置信息,可以包括起始位置信息以及該Ix幀的大小。
本發(fā)明實施例同時提供了一種快進快退播放視頻數(shù)據(jù)的裝置,即流媒體服務(wù)器,如圖4所示。該流媒體服務(wù)器包括流媒體生成器、存儲單元,快進快退序列解析器、快進快退序列生成器,其中存儲單元,用于存儲原始媒體文件以及快進快退序列文件以及快進快退序列索引文件;快進快退序列生成器,用于從原始媒體文件中獲取按不同倍速快進快退播放時所需的視頻數(shù)據(jù),生成快進快退序列文件以及快進快退序列索引文件;流媒體生成器,用于接收來自客戶端的快進快退播放請求;將滿足播放請求的視頻數(shù)據(jù)通過網(wǎng)絡(luò)發(fā)送至客戶端;快進快退序列解析器,用于從快進快退序列索引文件中獲取滿足播放請求的快進快退序列索引信息,并根據(jù)索引信息從快進快退序列文件中獲取滿足播放請求的視頻數(shù)據(jù)。
這里,獲取滿足播放請求的視頻數(shù)據(jù)的實現(xiàn)方式有多種,可以為快進快退序列解析器通過調(diào)用流媒體生成器中的播放請求,根據(jù)該播放請求實現(xiàn)上述功能,獲取滿足播放請求的視頻數(shù)據(jù);也可以為流媒體生成器接收到播放請求后,向快進快退序列解析器發(fā)送攜帶播放請求的指令,指令快進快退序列解析器實現(xiàn)上述功能,獲取滿足播放請求的視頻數(shù)據(jù)。
其中,快進快退序列生成器可以由第一視頻數(shù)據(jù)獲取單元和混合快進快退序列文件生成單元組成。
第一視頻數(shù)據(jù)獲取單元,用于從原始媒體文件中獲取按選定的標(biāo)準(zhǔn)倍速和高倍速補償倍速快進快退播放分別所需的視頻數(shù)據(jù);
混合快進快退序列文件生成單元,用于按順序?qū)⒁曨l數(shù)據(jù)以選定的比例混合生成多個設(shè)定大小的混合快進快退序列單元,并生成快進快退序列索引文件。
或者,快進快退序列生成器由第二視頻數(shù)據(jù)獲取單元和不同倍速快進快退序列文件生成單元組成。
第二視頻數(shù)據(jù)獲取單元,用于從原始媒體文件中獲取按當(dāng)前系統(tǒng)支持的各種倍速快進快退播放分別所需的視頻數(shù)據(jù);不同倍速快進快退序列文件生成單元,用于將視頻數(shù)據(jù)按順序分別生成支持不同倍速快進快退的快進快退序列文件,并生成對應(yīng)的支持不同倍速快進快退的索引文件。
流媒體服務(wù)器中的流媒體生成器包括快進快退播放請求處理單元和正常播放請求處理單元,該流媒體服務(wù)器還包括媒體解析器。
其中,快進快退播放請求處理單元,用于接收來自客戶端的快進快退播放請求;將接收到的視頻數(shù)據(jù)通過網(wǎng)絡(luò)發(fā)送至客戶端。
正常播放請求處理單元,用于接收來自客戶端的正常播放請求;將接收到的流媒體數(shù)據(jù)通過網(wǎng)絡(luò)發(fā)送至客戶端。
媒體解析器,用于根據(jù)正常播放請求,從原始媒體文件中解析獲取流媒體數(shù)據(jù),將獲取的流媒體數(shù)據(jù)發(fā)送至正常播放請求處理單元。
流媒體服務(wù)器中的媒體解析器包括播放位置確定單元和媒體文件解析單元。
播放位置確定單元,用于根據(jù)正常播放請求,從快進快退序列解析器中獲取當(dāng)前最后發(fā)送的視頻數(shù)據(jù)的特征信息,根據(jù)獲取的特征信息確定正常播放的起始位置;媒體文件解析單元,用于根據(jù)播放位置確定單元確定的正常播放的起始位置,從原始媒體文件中解析獲取流媒體數(shù)據(jù),將獲取的流媒體數(shù)據(jù)發(fā)送至正常播放請求處理單元。
由以上實施例可見,利用本發(fā)明實施例提供的快進快退播放視頻數(shù)據(jù)的方法和流媒體服務(wù)器可以提高流媒體服務(wù)器的快進快退播放視頻數(shù)據(jù)的讀取效率。流媒體服務(wù)器的快進快退媒體數(shù)據(jù)讀取效率越高,意味著有更多切換前讀取的I幀可以用于切換后的快進快退視頻數(shù)據(jù)播放,因此采用本發(fā)明實施例提供的技術(shù)方案,在倍速切換時可以有更多的已讀取數(shù)據(jù)用于切換后的快進快退播放,進而更快地將切換后的數(shù)據(jù)發(fā)送至客戶端,縮短倍速切換的平均響應(yīng)時間。
媒體文件讀取是流媒體服務(wù)器的瓶頸之一,其吞吐率往往決定了流媒體服務(wù)器所能支持的最大并發(fā)用戶數(shù)。在確定流媒體服務(wù)器所能支持的最大并發(fā)用戶數(shù)時,必須考慮最壞情況下一個用戶所需要占用的資源,這樣計算出來的并發(fā)用戶數(shù)才是真實的,否則在滿負(fù)荷的情況下,一旦某些用戶播放方式發(fā)生改變,需要占用更多的媒體文件讀取資源,很容易導(dǎo)致系統(tǒng)超負(fù)荷,進而影響所有在線用戶的體驗。
流媒體服務(wù)器可以支持的最大并發(fā)用戶數(shù)是衡量服務(wù)器性能的重要指標(biāo)。本發(fā)明通過均衡各種倍速快進快退的媒體文件讀取效率,減少了高倍速快進快退所需要的媒體文件讀取資源,提升了流服務(wù)器可以支持的并發(fā)用戶數(shù)。另一方面,在軟硬件配置相同的情況下,支持的并發(fā)用戶數(shù)越多,意味著平均到每用戶的流服務(wù)器成本也就越低,因此本發(fā)明實施例提供的方法和裝置可以顯著降低平均每用戶的流服務(wù)器成本。
總之,以上所述僅為本發(fā)明的較佳實施例而已,并非用于限定本發(fā)明的保護范圍。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。
權(quán)利要求
1.一種快進快退播放視頻數(shù)據(jù)的方法,其特征在于,該方法包括從原始媒體文件中獲取按不同倍速快進快退播放所需的視頻數(shù)據(jù);利用所述視頻數(shù)據(jù)生成快進快退序列文件和快進快退序列索引文件;接收來自客戶端的快進快退播放請求,從所述快進快退序列索引文件中獲取滿足所述播放請求的快進快退索引信息;根據(jù)所述索引信息從所述快進快退序列文件中獲取滿足所述播放請求的視頻數(shù)據(jù),通過網(wǎng)絡(luò)發(fā)送至所述客戶端。
2.如權(quán)利要求1所述的方法,其特征在于,所述從原始媒體文件中獲取按不同倍速快進快退播放所需的視頻數(shù)據(jù)包括選擇至少兩種快進快退播放倍速,其中一種倍速作為標(biāo)準(zhǔn)倍速,其余的倍速作為高倍速補償倍速;從原始媒體文件中獲取按所述選擇的倍速快進快退播放分別所需的視頻數(shù)據(jù)。
3.如權(quán)利要求2所述的方法,其特征在于,所述利用視頻數(shù)據(jù)生成快進快退序列文件包括按順序?qū)⒔邮盏降牟煌端倏爝M快退播放所需的視頻數(shù)據(jù),混合生成多個設(shè)定大小的混合快進快退序列單元。
4.如權(quán)利要求3所述的方法,其特征在于,所述生成設(shè)定大小的混合快進快退序列單元為生成與讀取視頻數(shù)據(jù)的緩沖區(qū)大小相等的混合快進快退序列單元。
5.如權(quán)利要求3所述的方法,其特征在于,所述混合快進快退序列單元由標(biāo)準(zhǔn)倍速快進快退序列、至少一種高倍速快退補償序列和至少一種高倍速快進補償序列組成;所述生成多個設(shè)定大小的混合快進快退序列單元包括選定所述混合快進快退序列單元的各個組成部分所占的比例;按照選定的比例生成多個設(shè)定大小的混合快進快退序列單元。
6.如權(quán)利要求5所述的方法,其特征在于,所述每一種高倍速快進補償序列的起始位置由所述標(biāo)準(zhǔn)倍速快進快退序列的結(jié)束位置確定;所述每一種高倍速快退補償序列的結(jié)束位置由所述標(biāo)準(zhǔn)倍速快進快退序列的起始位置確定。
7.如權(quán)利要求6所述的方法,其特征在于,所述選定混合快進快退序列單元的各個組成部分所占的比例為根據(jù)所述各個組成部分對應(yīng)的快進快退播放倍速的使用頻率,選定所述混合快進快退序列單元的各個組成部分所占的比例。
8.如權(quán)利要求1至7任一項所述的方法,其特征在于,所述生成快進快退序列索引文件包括生成混合快進快退序列單元的索引文件;生成標(biāo)準(zhǔn)倍速快進快退序列索引文件;生成每個混合快進快退序列單元的每一種高倍速快進快退序列索引文件。
9.如權(quán)利要求1所述的方法,其特征在于,所述從原始文件中獲取按不同倍速快進快退播放所需的視頻數(shù)據(jù)為從原始文件中獲取按當(dāng)前系統(tǒng)支持的各種倍速快進快退播放分別所需的視頻數(shù)據(jù)。
10.如權(quán)利要求9所述的方法,其特征在于,所述利用視頻數(shù)據(jù)生成快進快退序列文件及快進快退序列索引文件為將所述視頻數(shù)據(jù)按順序分別生成不同倍速快進快退序列文件以及不同倍速快進快退序列索引文件。
11.如權(quán)利要求10所述的方法,其特征在于,所述獲取滿足播放請求的快進快退序列索引信息為根據(jù)所述接收到的播放請求指定的播放倍速,從對應(yīng)倍速快進快退序列索引文件中獲取索引信息;所述獲取滿足播放請求的視頻數(shù)據(jù)為根據(jù)所述索引信息,從對應(yīng)倍速快進快退序列文件中獲取滿足所述播放請求的視頻數(shù)據(jù)。
12.如權(quán)利要求1至7或9至11任一項所述的方法,其特征在于,當(dāng)所述播放請求為從正常播放切換為特定倍速快進快退播放時,所述獲取滿足播放請求的視頻數(shù)據(jù)包括確定已發(fā)送的最后一個I幀之后或之前的第一個特定倍速I幀,將其作為要發(fā)送的I幀;如果所述已發(fā)送的最后一個I幀為正常播放的I幀,則查找所述快進快退序列索引文件,獲取定位所述要發(fā)送的I幀的索引信息,根據(jù)獲取的所述索引信息,從所述快進快退序列文件中定位并讀取所述要發(fā)送的I幀,發(fā)送給客戶端;如果所述已發(fā)送的最后一個I幀為按所述特定倍速快進快退播放的I幀,則確定所述要發(fā)送的I幀是否已被讀取到緩沖區(qū)中,如果是,則從所述緩沖區(qū)中定位并讀取相應(yīng)的要發(fā)送的I幀,發(fā)送給客戶端;否則采用與所述已發(fā)送的最后一個I幀為正常播放的I幀相同的方法定位并讀取所述要發(fā)送的I幀,并將其發(fā)送給客戶端。
13.如權(quán)利要求12所述的方法,其特征在于,當(dāng)所述流媒體服務(wù)器接收到將初始倍速切換為目標(biāo)倍速的播放請求時,所述方法進一步包括確定已發(fā)送的最后一個I幀之后或之前的第一個目標(biāo)倍速I幀,將其作為要發(fā)送的I幀;檢查當(dāng)前已讀取到緩沖區(qū)的視頻數(shù)據(jù)是否包含所述要發(fā)送的I幀,如果包含,則從所述緩沖區(qū)中定位并讀取所述要發(fā)送的I幀,發(fā)送至客戶端;如果不包含,則查找所述快進快退索引文件,獲取定位所述要發(fā)送的I幀的索引信息;根據(jù)獲取的定位所述要發(fā)送的I幀的索引信息,從所述快進快退序列文件中定位讀取所述要發(fā)送的I幀,發(fā)送給客戶端。
14.如權(quán)利要求13所述的方法,其特征在于,所述查找快進快退序列索引文件,獲取定位所述要發(fā)送的I幀的索引信息為查找所述快進快退序列索引文件,確定所述要發(fā)送的I幀所在的混合快進快退序列單元的位置信息以及所述要發(fā)送的I幀在所述混合快進快退序列單元中的位置信息;所述定位讀取要發(fā)送的I幀為根據(jù)所述要發(fā)送的I幀所在的混合快進快退序列單元的位置信息,將所述混合快進快退序列單元讀取到緩沖區(qū)中;根據(jù)所述要發(fā)送的I幀在所述混合快進快退序列單元中的位置信息,從緩沖區(qū)中定位并讀取所述要發(fā)送的I幀;所述確定要發(fā)送的I幀是否已被讀取到緩沖區(qū)為確定所述要發(fā)送的I幀所在的混合快進快退序列單元是否已被讀取到緩沖區(qū)中。
15.如權(quán)利要求14所述的方法,其特征在于,當(dāng)切換到設(shè)定的低倍速快進或快退播放時,所述確定所述要發(fā)送的I幀所在的混合快進快退序列單元是否已被讀取到緩沖區(qū)中為查找快進快退序列索引文件中的標(biāo)準(zhǔn)倍速快進快退序列索引文件,確定所述要發(fā)送的I幀所在的混合快進快退序列單元是否已被讀取到緩沖區(qū)中;當(dāng)切換到設(shè)定的高倍速快進或快退播放時,所述確定所述要發(fā)送的I幀所在的混合快進快退序列單元是否已被讀取到緩沖區(qū)中為查找快進快退序列索引文件中的高倍速快進快退序列索引文件,確定所述要發(fā)送的I幀所在的混合快進快退序列單元是否已被讀取到緩沖區(qū)中。
16.一種流媒體服務(wù)器,其特征在于,該流媒體服務(wù)器包括流媒體生成器、存儲單元,快進快退序列解析器、快進快退序列生成器,其中所述存儲單元,用于存儲原始媒體文件以及快進快退序列文件以及快進快退序列索引文件;所述快進快退序列生成器,用于從所述原始媒體文件中獲取按不同倍速快進快退播放時所需的視頻數(shù)據(jù),生成所述快進快退序列文件以及快進快退序列索引文件;所述流媒體生成器,用于接收來自客戶端的快進快退播放請求;將滿足所述播放請求的視頻數(shù)據(jù)通過網(wǎng)絡(luò)發(fā)送至所述客戶端;所述快進快退序列解析器,用于從所述快進快退序列索引文件中獲取滿足所述播放請求的快進快退序列索引信息,根據(jù)所述索引信息從所述快進快退序列文件中獲取滿足所述播放請求的視頻數(shù)據(jù)。
17.如權(quán)利要求16所述的流媒體服務(wù)器,其特征在于,所述快進快退序列生成器包括第一視頻數(shù)據(jù)獲取單元和混合快進快退序列文件生成單元,所述第一視頻數(shù)據(jù)獲取單元,用于從所述原始媒體文件中獲取按選定的標(biāo)準(zhǔn)倍速和高倍速補償倍速快進快退播放分別所需的視頻數(shù)據(jù);所述混合快進快退序列文件生成單元,用于按順序?qū)⑺鲆曨l數(shù)據(jù)以選定的比例混合生成多個設(shè)定大小的混合快進快退序列單元,生成快進快退序列索引文件。
18.如權(quán)利要求16所述的流媒體服務(wù)器,其特征在于,所述快進快退序列生成器包括第二視頻數(shù)據(jù)獲取單元和不同倍速快進快退序列文件生成單元,所述第二視頻數(shù)據(jù)獲取單元,用于從所述原始媒體文件中獲取按當(dāng)前系統(tǒng)支持的各種倍速快進快退播放分別所需的視頻數(shù)據(jù);所述不同倍速快進快退序列文件生成單元,用于將所述視頻數(shù)據(jù)按順序分別生成支持不同倍速快進快退的快進快退序列文件,生成對應(yīng)的支持不同倍速快進快退的索引文件。
19.如權(quán)利要求16所述的流媒體服務(wù)器,其特征在于,所述流媒體生成器包括快進快退播放請求處理單元和正常播放請求處理單元,所述流媒體服務(wù)器還包括媒體解析器,所述快進快退播放請求處理單元,用于接收來自客戶端的快進快退播放請求;將接收到的視頻數(shù)據(jù)通過網(wǎng)絡(luò)發(fā)送至所述客戶端;所述正常播放請求處理單元,用于接收來自所述客戶端的正常播放請求;將接收到的流媒體數(shù)據(jù)通過網(wǎng)絡(luò)發(fā)送至所述客戶端;所述媒體解析器,用于根據(jù)所述正常播放請求,從所述原始媒體文件中解析獲取流媒體數(shù)據(jù),將獲取的流媒體數(shù)據(jù)發(fā)送至所述正常播放請求處理單元。
20.如權(quán)利要求19所述的流媒體服務(wù)器,其特征在于,所述媒體解析器包括媒體文件解析單元和播放位置確定單元,所述播放位置確定單元,用于根據(jù)所述正常播放請求,從所述快進快退序列解析器中獲取當(dāng)前最后發(fā)送的視頻數(shù)據(jù)的特征信息,根據(jù)所述特征信息確定正常播放的起始位置;所述媒體文件解析單元,用于根據(jù)所述正常播放的起始位置,從所述原始媒體文件中解析獲取流媒體數(shù)據(jù),將獲取的流媒體數(shù)據(jù)發(fā)送至所述正常播放請求處理單元。
全文摘要
本發(fā)明實施例公開了一種快進快退播放視頻數(shù)據(jù)的方法,包括從原始媒體文件中獲取按不同倍速快進快退播放所需的視頻數(shù)據(jù);利用所述視頻數(shù)據(jù)生成快進快退序列文件和快進快退序列索引文件;接收來自客戶端的快進快退播放請求,從所述快進快退序列索引文件中獲取滿足所述播放請求的快進快退索引信息;根據(jù)所述索引信息從所述快進快退序列文件中獲取滿足所述播放請求的視頻數(shù)據(jù),通過網(wǎng)絡(luò)發(fā)送至所述客戶端。本發(fā)明實施例同時還公開了一種流媒體服務(wù)器。利用本發(fā)明實施例提供的方法和流媒體服務(wù)器可以提高流媒體服務(wù)器的快進快退視頻數(shù)據(jù)讀取效率。
文檔編號H04N5/00GK101018323SQ20071000719
公開日2007年8月15日 申請日期2007年2月8日 優(yōu)先權(quán)日2007年2月8日
發(fā)明者兌繼英, 李耀輝, 曹彥東 申請人:華為技術(shù)有限公司