專利名稱:視頻流快速播放方法
技術(shù)領(lǐng)域:
本發(fā)明是有關(guān)于一種視頻流的播放方法,且特別是有關(guān)于一種視頻流的快速播放方法。
背景技術(shù):
目前,只要能播放視頻的軟件或硬件都具有快速播放的功能,所謂快速播放是指快進和快退。在播放錄制好的視頻時,傳統(tǒng)的快進快退操作基本都是根據(jù)視頻的幀結(jié)構(gòu)特性,只對其中的I幀進行解碼并送到終端顯示,其他種類的幀則略過不予處理,借此實現(xiàn)快速播放的目的。一般的快速播放功能都有多種播放倍速可供使用者選擇,例如2倍速、4倍速、8倍速、甚至32倍速。在高倍速的播放時,播放系統(tǒng)只解碼并顯示視頻流其中一部分I 幀,播放倍速越高,解碼和顯示的I幀比例就越低。因此,快速播放的速度效果和視頻流的實際幀結(jié)構(gòu)密切相關(guān)。由于視頻流的來源與格式繁多,其幀結(jié)構(gòu)并無統(tǒng)一標(biāo)準(zhǔn)。不同的幀結(jié)構(gòu)會使不同視頻快速播放的速度效果存在一定的差異,影響使用者的觀感。另外,傳統(tǒng)做法都沒有考慮解碼器的解碼速度,一般情況下視頻解碼速度很快,會使送出視頻數(shù)據(jù)的速度過快,造成快速播放過快的問題,不利于使用者觀看或搜尋。
發(fā)明內(nèi)容
本發(fā)明提供一種視頻流快速播放方法,可實現(xiàn)各種不同視頻流快進快退播放速度的精確控制,以解決上述問題。本發(fā)明提出一種視頻流快速播放方法,由一視頻流播放系統(tǒng)執(zhí)行,包括下列步驟。 在開始快速播放視頻流時,設(shè)定視頻流的播放方向與播放倍速。以上述視頻流的目前幀為起點,在播放方向根據(jù)播放倍速尋找第一關(guān)鍵幀,解碼并播放第一關(guān)鍵幀。然后,根據(jù)開始快速播放視頻流到目前為止的視頻流播放系統(tǒng)的系統(tǒng)時間差與視頻流的播放時間差,決定視頻流的播放是否過快、剛好、或過慢。若視頻流的播放過快,則等到系統(tǒng)時間差與播放時間差相匹配,以第一關(guān)鍵幀作為新的目前幀,繼續(xù)尋找下一個第一關(guān)鍵幀的步驟。若視頻流的播放速度剛好,則以第一關(guān)鍵幀作為新的目前幀,繼續(xù)尋找下一個第一關(guān)鍵幀的步驟。若視頻流的播放過慢,則以第一關(guān)鍵幀為起點,在播放方向?qū)ふ业诙P(guān)鍵幀,以第二關(guān)鍵幀作為新的目前幀,繼續(xù)尋找下一個第一關(guān)鍵幀的步驟。在本發(fā)明的一實施例中,上述的第一關(guān)鍵幀為目前幀的播放方向上的第X個預(yù)設(shè)種類的幀,其中X等于播放倍速除以二。在本發(fā)明的一實施例中,上述的決定視頻流的播放是否過快、剛好、或過慢的細節(jié)如下。若上述的系統(tǒng)時間差小于播放時間差除以播放倍速,則判定視頻流的播放過快。若系統(tǒng)時間差等于播放時間差除以播放倍速,則視頻流的播放速度剛好。若上述的系統(tǒng)時間差大于播放時間差除以播放倍速,則判定視頻流的播放過慢。在本發(fā)明的一實施例中,上述的等到系統(tǒng)時間差與播放時間差相匹配,也就是等到系統(tǒng)時間差等于播放時間差除以播放倍速。在本發(fā)明的一實施例中,上述的第二關(guān)鍵幀為第一關(guān)鍵幀的播放方向上的下一個和第一關(guān)鍵幀屬于同一種類的幀。在本發(fā)明的另一實施例中,上述的第二關(guān)鍵幀為第一關(guān)鍵幀的播放方向上的第Y 個和第一關(guān)鍵幀屬于同一種類的幀。Y起初為一,若視頻流的播放連續(xù)過慢,則將Y設(shè)置為視頻流播放過慢的連續(xù)次數(shù)。如果視頻流的播放沒有過慢,則將Y重置為一。基于上述,本發(fā)明根據(jù)視頻流播放系統(tǒng)的系統(tǒng)時間差以及視頻流的播放時間差, 決定視頻流的播放是否過快或過慢,并且據(jù)以調(diào)節(jié)。因此本發(fā)明可實現(xiàn)各種不同視頻流的快速播放的精確速度控制,可以改善用戶體驗。
為讓本發(fā)明的上述目的、特征和優(yōu)點能更明顯易懂,以下結(jié)合附圖對本發(fā)明的具體實施方式
作詳細說明,其中圖1是依照本發(fā)明一實施例的一種視頻流快速播放方法的流程圖。
具體實施例方式圖1是依照本發(fā)明一實施例的一種視頻流快速播放方法的流程圖,此方法由視頻流播放系統(tǒng)執(zhí)行。上述播放系統(tǒng)可以是具有視頻播放功能的任何軟件或硬件,例如數(shù)字錄放影機、具有數(shù)字錄影放影功能的機頂盒、視頻播放軟件、視頻光碟播放軟件等等。以下說明圖1流程。首先,開始快速播放視頻流,設(shè)定視頻流的播放方向與播放倍速(步驟10幻。上述視頻流可取自網(wǎng)絡(luò)或個人電腦等各種來源,可以是下載自網(wǎng)絡(luò)的視頻或已錄制的文件。上述的播放方向與播放倍速可以由使用者指定,播放方向可以是快進或快退,以下說明以快進為例。接下來,記錄目前的視頻流播放系統(tǒng)的系統(tǒng)時間Tsl以及目前幀的播放時間Tfl (步驟110),Tsl和Tfl分別是開始快速播放此視頻流時的系統(tǒng)時間與播放時間。所謂播放時間代表對應(yīng)的幀在所屬視頻流的相對位置,也就是一般視頻播放軟件都會顯示的時間。記錄時間之后,以視頻流的目前幀為起點,在前進方向根據(jù)播放倍速尋找關(guān)鍵幀 F1 (步驟11 。關(guān)鍵幀F(xiàn)1是目前幀的前進方向上的第X個I幀,而X等于播放倍速除以二。 也就是說,在二倍速快進時,關(guān)鍵幀&是目前幀的前進方向上的下一個I幀;在四倍速快進時,關(guān)鍵幀F(xiàn)1是目前幀的前進方向上的下下個I幀;在八倍速快進時,關(guān)鍵幀F(xiàn)1是目前幀的前進方向上的第四個I幀,依此類推。雖然本實施例以I幀作為關(guān)鍵幀,在本發(fā)明的其他實施例中,如果視頻流的幀結(jié)構(gòu)能配合,也可以使用其他種類的幀作為關(guān)鍵幀。接下來,解碼并播放關(guān)鍵幀F(xiàn)1 (步驟120)。本實施例的視頻流播放系統(tǒng)選擇性地播放視頻流中的全部或部分I幀。播放倍速越高,播放的I幀就越少,其余的幀全部忽略不做處理,借此實現(xiàn)視頻流的快進與快退功能。播放關(guān)鍵幀F(xiàn)1之后,記錄目前的系統(tǒng)時間Ts2以及關(guān)鍵幀F(xiàn)1的播放時間Tf2 (步驟 125),然后比較(Ts2-Tsl)以及(Tf2-Tfl)/n(步驟130)。其中η是上述的播放倍速,(Ts2-Tsl) 是開始快速播放此視頻流到目前為止的系統(tǒng)時間差,(Tf2-Tfl)是開始快速播放此視頻流
4到目前為止的視頻流播放時間差。如果系統(tǒng)時間差小于播放時間差除以播放倍速,表示視頻流的播放過快,視頻流播放系統(tǒng)會先等到系統(tǒng)時間差與播放時間差相匹配,也就是等到 (Ts32-Tsl)等于(Tf2-Tfl)/n(步驟13 ,其中Ts3是等待時的系統(tǒng)時間,然后以關(guān)鍵幀&作為新的目前幀,返回步驟115以繼續(xù)尋找下一個關(guān)鍵幀(步驟140)。如果系統(tǒng)時間差等于播放時間差除以播放倍速,表示視頻流的播放速度剛好,流程直接進入步驟140。在步驟130的比較中,如果系統(tǒng)時間差大于播放時間差除以播放倍速,表示視頻流的播放過慢。此時視頻流播放系統(tǒng)會以關(guān)鍵幀F(xiàn)1為起點,在前進方向?qū)ふ蚁乱粋€關(guān)鍵幀 F2(步驟14 ,然后以關(guān)鍵幀&作為新的目前幀,返回步驟115以繼續(xù)尋找下一個關(guān)鍵幀 (步驟150)。關(guān)鍵幀F(xiàn)2是關(guān)鍵幀F(xiàn)1的前進方向上的下一個I幀。以這樣的方式跳過更多 I幀,可以提高視頻流的播放速度,使系統(tǒng)時間差與播放時間差相匹配。如果步驟145只跳過一個I幀,有可能發(fā)生視頻流的播放時間趕不上系統(tǒng)時間的狀況,本發(fā)明另一實施例可以在視頻流的播放連續(xù)過慢時跳過更多I幀以防止上述狀況。 在此實施例中,因為第一次播放過慢而執(zhí)行步驟145時,關(guān)鍵幀F(xiàn)2是關(guān)鍵幀F(xiàn)1的前進方向上的下一個I幀。因為連續(xù)的第二次播放過慢而執(zhí)行步驟145時,關(guān)鍵幀F(xiàn)2是關(guān)鍵幀F(xiàn)1的前進方向上的下下個I幀。因為連續(xù)的第三次播放過慢而執(zhí)行步驟145時,關(guān)鍵幀F(xiàn)2是關(guān)鍵幀F(xiàn)1的前進方向上的第三個I幀,以此類推。也就是說,關(guān)鍵幀F(xiàn)2是關(guān)鍵幀F(xiàn)1的前進方向上的第Y個I幀,Y起初為一,如果視頻流的播放連續(xù)過慢,則將Y設(shè)置為視頻流播放過慢的連續(xù)次數(shù)。如果在步驟130的比較中,視頻流的播放沒有過慢,也就是過快或剛好,則將Y重置為一。如果是快退播放,有些上述步驟需要修改。步驟115的關(guān)鍵幀&改為目前幀的后退方向上的第X個I幀。步驟130改為比較(Ts2-Tsl)以及(Tfl-Tf2)/n,也就是播放時間差改為(Tfl-Tf2),這是因為比較的數(shù)字必須為正值。步驟145的關(guān)鍵幀F(xiàn)2改在關(guān)鍵幀F(xiàn)1的后退方向。其余的細節(jié)相同,不予贅述。綜上所述,本發(fā)明根據(jù)系統(tǒng)時間和視頻播放時間的大小關(guān)系,判斷視頻播放是否過快或過慢,以調(diào)節(jié)視頻的播放速度。無論使用者指定何種播放倍速,無論視頻流的幀結(jié)構(gòu)如何分布,本發(fā)明都可以精確控制快速播放的速度,使其前后一致,以提升使用者的觀賞體驗。雖然本發(fā)明已以較佳實施例揭示如上,然其并非用以限定本發(fā)明,任何本領(lǐng)域技術(shù)人員,在不脫離本發(fā)明的精神和范圍內(nèi),當(dāng)可作些許的修改和完善,因此本發(fā)明的保護范圍當(dāng)以權(quán)利要求書所界定的為準(zhǔn)。
權(quán)利要求
1.一種視頻流快速播放方法,由一視頻流播放系統(tǒng)執(zhí)行,包括 開始快速播放一視頻流,設(shè)定該視頻流的播放方向與播放倍速;以一視頻流的目前幀為起點,在該播放方向根據(jù)該播放倍速尋找一第一關(guān)鍵幀; 解碼并播放該第一關(guān)鍵幀;根據(jù)開始快速播放該視頻流到目前為止的該視頻流播放系統(tǒng)的系統(tǒng)時間差與該視頻流的播放時間差決定該視頻流的播放是否過快、剛好、或過慢;若該視頻流的播放過快,則等到該系統(tǒng)時間差與該播放時間差相匹配,以該第一關(guān)鍵幀作為該目前幀,繼續(xù)尋找下一第一關(guān)鍵幀的步驟;若該視頻流的播放速度剛好,則以該第一關(guān)鍵幀作為該目前幀,繼續(xù)尋找下一第一關(guān)鍵幀的步驟;以及若該視頻流的播放過慢,則以該第一關(guān)鍵幀為起點,在該播放方向?qū)ふ乙坏诙P(guān)鍵幀, 以該第二關(guān)鍵幀作為該目前幀,繼續(xù)尋找下一第一關(guān)鍵幀的步驟。
2.如權(quán)利要求1所述的視頻流快速播放方法,其特征在于,該第一關(guān)鍵幀為該目前幀的該播放方向上的第X個一預(yù)設(shè)種類的幀,X等于該播放倍速除以
3.如權(quán)利要求1所述的視頻流快速播放方法,其特征在于,決定該視頻流的播放是否過快、剛好、或過慢的步驟包括若該系統(tǒng)時間差小于該播放時間差除以該播放倍速,則該視頻流的播放過快; 若該系統(tǒng)時間差等于該播放時間差除以該播放倍速,則該視頻流的播放速度剛好;以及若該系統(tǒng)時間差大于該播放時間差除以該播放倍速,則該視頻流的播放過慢。
4.如權(quán)利要求1所述的視頻流快速播放方法,其特征在于,等到該系統(tǒng)時間差與該播放時間差相匹配的步驟包括等到該系統(tǒng)時間差等于該播放時間差除以該播放倍速。
5.如權(quán)利要求1所述的視頻流快速播放方法,其特征在于,該第二關(guān)鍵幀為該第一關(guān)鍵幀的該播放方向上的下一個和該第一關(guān)鍵幀屬于同一種類的幀。
6.如權(quán)利要求1所述的視頻流快速播放方法,其特征在于,該第二關(guān)鍵幀為該第一關(guān)鍵幀的該播放方向上的第Y個和該第一關(guān)鍵幀屬于同一種類的幀,Y起初為一,若該視頻流的播放連續(xù)過慢,則將Y設(shè)置為該視頻流播放過慢的連續(xù)次數(shù)。
7.如權(quán)利要求6所述的視頻流快速播放方法,其特征在于,更包括 若該視頻流的播放沒有過慢,則將Y重置為一。
全文摘要
一種視頻流快速播放方法,由一視頻流播放系統(tǒng)執(zhí)行。本方法根據(jù)視頻流播放系統(tǒng)的系統(tǒng)時間差以及視頻流的播放時間差,決定視頻流的播放是否過快或過慢。若視頻流的播放過快,則等到系統(tǒng)時間差與播放時間差相匹配再繼續(xù)播放。若視頻流的播放過慢,則跳過至少一個關(guān)鍵幀以加快播放速度。本發(fā)明可精確控制各種不同視頻流的快進快退播放速度,提升使用者的觀感。
文檔編號H04N5/783GK102447868SQ20101050294
公開日2012年5月9日 申請日期2010年10月11日 優(yōu)先權(quán)日2010年10月11日
發(fā)明者朱征林, 胡佳 申請人:揚智電子(上海)有限公司