專利名稱:基于關(guān)鍵幀的視頻流索引播放系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種基于關(guān)鍵幀的視頻流索引播放方法,尤指一種在視頻播放器中加入一個預(yù)覽播放窗口,實現(xiàn)根據(jù)預(yù)覽播放窗口的內(nèi)容選擇主播放的內(nèi)容的方法。
目前存在的預(yù)覽方法,一般是在媒體播放器中提供快進(jìn)方式,即采用固定的大于正常播放速度的幀率播放視頻,這樣雖然也可以達(dá)到對視頻內(nèi)容的預(yù)覽,但不能實現(xiàn)對某些特定幀的播放,例如基于鏡頭分割、場景分割或內(nèi)容分析得到的關(guān)鍵幀,它們之間的時間間隔一般并不固定,采用固定時間間隔的播放方式顯然無法播放這些關(guān)鍵幀。
為實現(xiàn)上述目的,基于關(guān)鍵幀的視頻流索引播放方法包括步驟在視頻播放器中加入預(yù)覽播放窗口;在視頻文件中的每個視頻流中建立一個索引軌道;視頻播放器根據(jù)預(yù)覽播放窗口的內(nèi)容選擇主播放的內(nèi)容。
圖2為本發(fā)明的播放器界面示意圖。
圖3為本發(fā)明視頻文件索引預(yù)覽軌道生成方法流程示意圖。
圖4為本發(fā)明的視頻播放器根據(jù)預(yù)覽播放窗口的索引預(yù)覽內(nèi)容選擇主播放窗口的內(nèi)容的方法流程示意圖。
如圖2所示,在視頻播放器中加入一個預(yù)覽播放窗口,視頻文件中針對需要索引瀏覽的視頻軌道,建立一個新的索引預(yù)覽軌道,視頻播放器可以根據(jù)索引預(yù)覽軌道中記錄索引關(guān)鍵幀的時間戳信息計算出此索引幀所對應(yīng)的正常播放時間,從而實現(xiàn)根據(jù)預(yù)覽播放窗口的內(nèi)容選擇主播放的內(nèi)容的方法。
本發(fā)明的視頻播放器播放方式,視頻播放器包括主播放窗口和一個預(yù)覽播放窗口,主播放窗口中進(jìn)行正常的視頻播放;預(yù)覽窗口中依次按固定幀率播放多幅索引關(guān)鍵幀。
如圖3所示,本發(fā)明的視頻文件索引預(yù)覽軌道生成方法,在視頻文件中針對需要索引瀏覽的視頻軌道,建立一個新的索引預(yù)覽軌道。它的建立方法為在新的索引預(yù)覽軌道中記錄索引關(guān)鍵幀的時間戳信息。
上述的索引預(yù)覽軌道生成方法包括如下步驟1.用關(guān)鍵幀選擇算法從視頻流中選出關(guān)鍵幀,這一步既可以在生成過程中在壓縮域同步進(jìn)行,也可以預(yù)先在原始視頻流中對關(guān)鍵幀進(jìn)行標(biāo)注;2.生成trak.meda.minf.stbl.stsd對象,在其中設(shè)定預(yù)覽索引軌道的timescale(時標(biāo))為視頻流的正常索引軌道中的timescale;3.生成預(yù)覽索引軌道中的timesstamp(時間戳)信息時,相鄰幀之間時間戳的差值應(yīng)該為常數(shù)Idifference。設(shè)視頻流的正常播放幀率為NframeRate,希望的預(yù)覽索引流的播放幀率為IframeRate,在制作節(jié)目時確定,正常播放的視頻流相鄰幀之間的時間戳差為Ndifference,則預(yù)覽索引軌道流的相鄰時間戳差I(lǐng)difference由下式確定Idifference=Ndifference*Iframerate/NframeRate4.在生成預(yù)覽索引軌道的樣本數(shù)據(jù)時,記錄下此樣本數(shù)據(jù)對應(yīng)的在視頻流正常播放時的時間戳信息,例如,如果正在生成預(yù)覽索引軌道的第5幀,它所對應(yīng)的時間戳信息為(5-1)*Idifference,這一幀對應(yīng)于視頻流正常播放時的第100幀,它的時間戳信息為(100-1)*Ndifference,我們可以在索引軌道樣本數(shù)據(jù)RTP成包信息中記錄值A(chǔ)ddDifference,它由下式得到AddDifference=(5-1)*Idifference-(100-1)*Ndifference;5.設(shè)置索引軌道樣本數(shù)據(jù)頭信息‘X’位為1。
6.在實際生成并進(jìn)行發(fā)送時,根據(jù)頭信息中的‘X’=1而采用擴(kuò)展頭,在擴(kuò)展頭中存放AddDifference。格式如下0 10 20 30+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+profile | length+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| AddDifference|+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+其中設(shè)置profile=999,length=1。
如圖4所示本發(fā)明的視頻播放器根據(jù)預(yù)覽播放窗口的索引預(yù)覽內(nèi)容選擇主播放窗口的內(nèi)容的方法,視頻播放器可以根據(jù)索引預(yù)覽軌道中記錄索引關(guān)鍵幀的時間戳信息計算出此索引幀所對應(yīng)的正常播放時間,從而實現(xiàn)根據(jù)預(yù)覽播放窗口的內(nèi)容選擇主播放的內(nèi)容。
上述的根據(jù)預(yù)覽播放窗口的索引預(yù)覽內(nèi)容選擇主播放窗口的內(nèi)容的方法包括如下步驟1.在有預(yù)覽索引信息的情況下,播放界面做調(diào)整,增加預(yù)覽播放窗口;2.在有預(yù)覽索引信息的情況下,進(jìn)行各個媒體流同步時,應(yīng)該排除預(yù)覽索引流;3.對預(yù)覽索引流,需要記錄下包頭中的擴(kuò)展信息;4.當(dāng)用戶點擊某一索引幀時,可以根據(jù)擴(kuò)展頭中記錄的信息計算出此索引幀所對應(yīng)的正常播放時間,計算方法如下假設(shè)條件和上面預(yù)覽索引軌道生成中的例子相同,即用戶點擊了正在播放的預(yù)覽視頻流的第5幀,而此幀對應(yīng)于正常視頻流中的第100幀,此時對應(yīng)的正常播放時間為NormalTime,則NormalTime=(100-1)*Ndifference=AddDifference+(5-1)*Idifference;其中AddDiffernce為包擴(kuò)展頭中的數(shù)據(jù),(5-1)*Idifference對應(yīng)于包頭中timestamp值;5.播放器應(yīng)該能夠根據(jù)前一步得到的NormalTime通過上行請求從新的播放時間開始播放。
權(quán)利要求
1.一種基于關(guān)鍵幀的視頻流索引播放方法,其特征在于包括步驟在視頻播放器中加入預(yù)覽播放窗口;在視頻文件中的每個視頻流中建立一個索引軌道;視頻播放器根據(jù)預(yù)覽播放窗口的內(nèi)容選擇主播放的內(nèi)容。
2.按權(quán)利要求1所述的方法,其特征在于視頻播放器包括主播放窗口和預(yù)覽播放窗口,主播放窗口中進(jìn)行正常的視頻播放,預(yù)覽窗口中依次按固定幀率播放多幅索引關(guān)鍵幀。
3.按權(quán)利要求1所述的方法,其特征在于所述的在每個視頻流中建立一個索引軌道包括步驟用關(guān)鍵幀選擇算法從視頻流中選出關(guān)鍵幀;生成trak.meda.minf.stbl.stsd對象,設(shè)定預(yù)覽索引軌道的時標(biāo)為視頻流的正常索引軌道中的時標(biāo);生成預(yù)覽索引軌道中的時間戳信息時,相鄰幀之間時間戳的差值應(yīng)該為常數(shù);在生成預(yù)覽索引軌道的樣本數(shù)據(jù)時,記錄下此樣本數(shù)據(jù)對應(yīng)的在視頻流正常播放時的時間戳信息。
4.按權(quán)利要求3所述的方法,其特征在于所述的從視頻流中選出關(guān)鍵幀在生成過程中在壓縮域進(jìn)行或預(yù)先在原始視頻流中對關(guān)鍵幀進(jìn)行標(biāo)注。
全文摘要
一種基于關(guān)鍵幀的視頻流索引播放方法,包括步驟在視頻播放器中加入預(yù)覽播放窗口;在視頻文件中的每個視頻流中建立一個索引軌道;視頻播放器根據(jù)預(yù)覽播放窗口的內(nèi)容選擇主播放的內(nèi)容。本發(fā)明提供了一種基于關(guān)鍵幀的視頻流索引播放方法,通過在視頻播放器中加入一個預(yù)覽播放窗口,同時在視頻文件中針對需要索引瀏覽的視頻軌道,建立一個新的索引預(yù)覽軌道,視頻播放器根據(jù)索引預(yù)覽軌道中記錄索引關(guān)鍵幀的時間戳信息計算出此索引幀所對應(yīng)的正常播放時間,從而實現(xiàn)根據(jù)預(yù)覽播放窗口的內(nèi)容選擇主播放的內(nèi)容。
文檔編號H04N7/00GK1444398SQ0210327
公開日2003年9月24日 申請日期2002年3月12日 優(yōu)先權(quán)日2002年3月12日
發(fā)明者黃晁, 史宏周, 李錦濤, 林守勛 申請人:中國科學(xué)院計算技術(shù)研究所