專(zhuān)利名稱(chēng):一種改變流媒體文件播放速度的方法
技術(shù)領(lǐng)域:
本發(fā)明屬于計(jì)算機(jī)網(wǎng)絡(luò)電子通訊技術(shù)領(lǐng)域,特別涉及一種實(shí)現(xiàn)流媒體文件的加快或放慢播放的方法。
背景技術(shù):
流媒體技術(shù)是近年來(lái)興起的一種在線播放技術(shù)。在線播放,顧名思義就是邊下載邊播放,播放器并不用等到多媒體文件全部下載到本地硬盤(pán)以后再播放,而是在下載的同時(shí)進(jìn)行播放。播放器在客戶(hù)端的內(nèi)存中開(kāi)辟出一個(gè)緩沖區(qū),通常是幾兆字節(jié)的空間,播放器等到緩沖區(qū)中有足夠的數(shù)據(jù)后開(kāi)始解碼播放,這個(gè)過(guò)程通常需要幾秒鐘的時(shí)間,同下載完后再播放相比大大節(jié)省了等待時(shí)間,而且由于沒(méi)有下載到硬盤(pán)上,而是直接存儲(chǔ)到內(nèi)存中,播放完后即被播放器刪除,因此對(duì)數(shù)字版權(quán)起到保護(hù)作用。在技術(shù)上在線播放器要比下載播放的播放器更復(fù)雜,它必須支持網(wǎng)絡(luò)播放功能。
從網(wǎng)絡(luò)上獲取多媒體信息主要有兩種方式下載播放和在線播放。下載播放就是將多媒體文件通過(guò)HTTP協(xié)議或FTP協(xié)議下載到本地硬盤(pán),然后啟動(dòng)多媒體播放器播放。由于多媒體文件通常都很大,從幾兆到幾十兆甚至幾百兆字節(jié)大小,要完全下載完需要幾分鐘、幾十分鐘、到幾個(gè)小時(shí)不等,往往會(huì)使客戶(hù)等的不耐煩。而且通過(guò)這種方式無(wú)法觀看現(xiàn)場(chǎng)直播、遠(yuǎn)程教育等實(shí)時(shí)性較強(qiáng)的節(jié)目。下載播放的最大的缺點(diǎn)是無(wú)法提供數(shù)字版權(quán)的保護(hù),用戶(hù)將多媒體文件下載以后,就可以在網(wǎng)上隨意發(fā)布,因此不適合商業(yè)應(yīng)用。
“流媒體”不同于傳統(tǒng)的多媒體,它是一種結(jié)構(gòu)化的網(wǎng)絡(luò)媒體流,它的主要特點(diǎn)就是以“視音頻流”(Video-Audio Stream)的形式在網(wǎng)絡(luò)上傳送,播放器可以象播放本地文件一樣播放網(wǎng)絡(luò)流媒體,從而實(shí)現(xiàn)暫停、恢復(fù)、快進(jìn)、快退等功能,也為慢速、快速播放提供了可能。
人們?cè)诘蛶挼礁邘挱h(huán)境下都可以在線欣賞到連續(xù)不斷的較高品質(zhì)的音頻和視頻節(jié)目。流媒體技術(shù)廣泛應(yīng)用在互聯(lián)網(wǎng)多媒體新聞發(fā)布、在線直播、網(wǎng)絡(luò)廣告、網(wǎng)絡(luò)視頻廣告、電子商務(wù)、視頻點(diǎn)播、遠(yuǎn)程教育、網(wǎng)絡(luò)電臺(tái)、實(shí)時(shí)視頻會(huì)議等互聯(lián)網(wǎng)的信息服務(wù)領(lǐng)域?,F(xiàn)在的主流播放器有微軟公司的Media Player,Real公司的Real Player和蘋(píng)果公司的Quick Time都支持該網(wǎng)絡(luò)播放功能。
流媒體播放器對(duì)收到的視頻幀的顯示順序及時(shí)間是根據(jù)視頻幀內(nèi)的時(shí)間戳來(lái)確定的,時(shí)間戳是視頻節(jié)目采集制作時(shí)存儲(chǔ)到視頻幀內(nèi)的一種時(shí)間值,流媒體播放器利用它來(lái)決定某一視頻幀在什么時(shí)間播放。視頻幀的時(shí)間戳就反映了視頻幀的顯示順序以及顯示時(shí)間間隔,由此可以決定節(jié)目的顯示速率。流媒體播放器按照收到的視頻幀時(shí)間戳的大小和順序進(jìn)行播放,就實(shí)現(xiàn)了正常播放。
現(xiàn)有技術(shù)的一種方法如圖1所示,包括以下步驟步驟101,音視頻文件在進(jìn)行網(wǎng)絡(luò)傳輸前,首先對(duì)每一視頻幀的時(shí)間戳進(jìn)行變換,然后將變換后的視頻幀通過(guò)網(wǎng)絡(luò)傳送出去。
步驟102,客戶(hù)端的流媒體播放器收到視頻幀后對(duì)它的時(shí)間戳進(jìn)行反變換。
步驟103,播放器將轉(zhuǎn)換后的視頻幀送到解碼單元進(jìn)行解碼。
步驟104,播放器將解碼后的視頻幀送到顯示單元,顯示單元根據(jù)視頻幀內(nèi)的時(shí)間戳顯示該視頻幀,播放器按照正常幀速率播放視頻。
采用上述方法的用戶(hù)在通過(guò)網(wǎng)絡(luò)欣賞音視頻節(jié)目的時(shí)候只能以正常播放速率的視頻速度進(jìn)行播放,不能根據(jù)的意愿選擇不同于正常播放速率的視頻速度進(jìn)行播放,使用戶(hù)的需求受到限制。
現(xiàn)有技術(shù)的一種變速播放是通過(guò)客戶(hù)端實(shí)現(xiàn)的,客戶(hù)端收到數(shù)據(jù)包后,通過(guò)對(duì)時(shí)戳的特殊處理,實(shí)現(xiàn)變速功能。這種方法的缺點(diǎn)是客戶(hù)端實(shí)現(xiàn)慢速播放,需要修改終端;服務(wù)器不能保證客戶(hù)端緩存區(qū)不溢出,如果服務(wù)器按照正常速度發(fā)送碼流,會(huì)讓客戶(hù)端無(wú)法實(shí)現(xiàn)相關(guān)功能;快速播放時(shí),服務(wù)器對(duì)碼流控制的方法不完善。
發(fā)明內(nèi)容
本發(fā)明的目的是為克服已有技術(shù)的不足之處,提出了一種改變流媒體文件播放速度的方法,采用本發(fā)明方法,用戶(hù)在通過(guò)網(wǎng)絡(luò)欣賞音視頻節(jié)目的時(shí)候可以選擇不同于正常播放速率的視頻速度進(jìn)行播放,可以選擇低于正常幀速率的速度播放,也可以選擇高于正常幀速率的速度播放,便于用戶(hù)更好地按自己的意愿欣賞節(jié)目,從而為用戶(hù)提供更多、更豐富的服務(wù)。
為解決上述技術(shù)問(wèn)題,本發(fā)明提出了一種改變流媒體文件播放速度的方法,在用戶(hù)播放器以正常速度播放時(shí),對(duì)其播放速度進(jìn)行切換,改為快速播放或慢速播放。本發(fā)明方法包括以下步驟(1)客戶(hù)端選擇改變流媒體文件的播放速度,改變后的播放速度為其原播放速度的N倍或N分之一;(2)客戶(hù)端通過(guò)RTSP協(xié)議將變速播放請(qǐng)求上報(bào)服務(wù)器;(3)服務(wù)器接收到變速播放請(qǐng)求后,判斷變速播放請(qǐng)求是倍速加快播放請(qǐng)求還是倍速放慢播放請(qǐng)求;(4)服務(wù)器根據(jù)變速播放請(qǐng)求,對(duì)播放時(shí)間戳進(jìn)行變換,并將變換后的時(shí)間戳保存在流媒體文件碼流中。
所述方法可以進(jìn)一步包括(5)客戶(hù)端接收到流媒體文件碼流后,發(fā)送到解碼單元解碼;(6)客戶(hù)端將解碼后的流媒體文件發(fā)送顯示單元,顯示單元根據(jù)流媒體文件視頻幀內(nèi)的時(shí)間戳顯示該視頻幀。
所述步驟1中,客戶(hù)端選擇改變流媒體文件的播放速度,改變后的播放速度為其原播放速度的N倍或N分之一,N可以為2、4、8、16、32或64。
所述步驟3中,服務(wù)器接收到變速播放請(qǐng)求后,如果變速播放請(qǐng)求為倍速放慢播放請(qǐng)求,則所述步驟4可以進(jìn)一步包括,服務(wù)器根據(jù)倍速放慢播放請(qǐng)求,對(duì)播放時(shí)間戳依照下列公式進(jìn)行變換TSn’=(TSn-TS)×C×N+Rd
上式中TSn’為變換后的時(shí)間戳;TSn為變換前的原始時(shí)間戳;TS為初始參考時(shí)間戳;C為常數(shù);Rd為隨機(jī)數(shù)或偽隨機(jī)數(shù);N為放慢倍數(shù)。
所述步驟3中,服務(wù)器接收到變速播放請(qǐng)求后,如果變速播放請(qǐng)求為倍速加快播放請(qǐng)求,則所述步驟4可以進(jìn)一步包括,服務(wù)器根據(jù)倍速加快播放請(qǐng)求,對(duì)播放時(shí)間戳依照下列公式進(jìn)行變換TSn’=(TSn-TS)/(C×N)+Rd上式中TSn’為變換后的時(shí)間戳;TSn為變換前的原始時(shí)間戳;TS為初始參考時(shí)間戳;C為常數(shù);Rd為隨機(jī)數(shù)或偽隨機(jī)數(shù);N為加快倍數(shù)。
所述步驟3中,服務(wù)器接收到變速播放請(qǐng)求后,如果變速播放請(qǐng)求為倍速加快播放請(qǐng)求,則所述步驟4可以進(jìn)一步包括,服務(wù)器根據(jù)倍速加快播放請(qǐng)求,對(duì)播放時(shí)間戳進(jìn)行變換;服務(wù)器選擇關(guān)鍵幀傳送,拋棄非關(guān)鍵幀。
所述步驟3中,服務(wù)器接收到變速播放請(qǐng)求后,如果變速播放請(qǐng)求為倍速加快播放請(qǐng)求,則所述步驟4可以進(jìn)一步包括,服務(wù)器選擇關(guān)鍵幀傳送,拋棄非關(guān)鍵幀,當(dāng)關(guān)鍵幀的碼流超過(guò)發(fā)送帶寬時(shí),拋棄部分關(guān)鍵幀,保持發(fā)送帶寬恒定。
本發(fā)明方法通過(guò)流媒體服務(wù)器對(duì)視頻幀時(shí)間戳進(jìn)行線性縮放處理,在用戶(hù)播放器實(shí)現(xiàn)慢速播放或快速播放。由服務(wù)器修改時(shí)戳,客戶(hù)端所做的改動(dòng)很小。本發(fā)明方法與編解碼器和網(wǎng)絡(luò)傳輸協(xié)議無(wú)關(guān),實(shí)現(xiàn)碼流控制,可以保證播放碼流不超過(guò)播放帶寬,服務(wù)器與客戶(hù)端相互配合,保證了客戶(hù)端緩存區(qū)不會(huì)溢出。用戶(hù)可以根據(jù)自己的要求進(jìn)行配置,不拘泥于視頻文件的原速率播放,操作簡(jiǎn)單,易于實(shí)現(xiàn),特別是慢速播放非常流暢。
圖1為現(xiàn)有技術(shù)的一種流媒體文件播放方法的示意圖;圖2為根據(jù)本發(fā)明實(shí)施例所述的播放方法的示意圖;圖3為根據(jù)本發(fā)明實(shí)施例所述的選擇慢速播放的方法流程圖;圖4為根據(jù)本發(fā)明實(shí)施例所述的選擇快速播放的方法流程圖。
具體實(shí)施例方式
如圖2所示,為根據(jù)本發(fā)明實(shí)施例所述的播放方法的示意圖,其具體步驟為步驟201,播放器將視頻幀送到顯示單元,顯示單元根據(jù)視頻幀內(nèi)的時(shí)間戳顯示該視頻幀,播放器按照正常幀速率播放視頻;步驟202,判斷用戶(hù)是否請(qǐng)求對(duì)流媒體文件播放速度進(jìn)行切換,如果用戶(hù)請(qǐng)求放慢播放速度,則轉(zhuǎn)入步驟204,否則進(jìn)行下一步;步驟203,服務(wù)器根據(jù)加快播放請(qǐng)求,對(duì)播放時(shí)間戳進(jìn)行變換,保留關(guān)鍵幀,并將變換后的時(shí)間戳保存在流媒體文件碼流中,用戶(hù)接收到流媒體文件碼流后,發(fā)送到解碼單元解碼,并將解碼后的流媒體文件發(fā)送顯示單元,顯示單元根據(jù)流媒體文件視頻幀內(nèi)的時(shí)間戳顯示該視頻幀。
步驟204,服務(wù)器根據(jù)放慢播放請(qǐng)求,對(duì)播放時(shí)間戳進(jìn)行變換,并將變換后的時(shí)間戳保存在流媒體文件碼流中,用戶(hù)接收到流媒體文件碼流后,發(fā)送到解碼單元解碼,并將解碼后的流媒體文件發(fā)送顯示單元,顯示單元根據(jù)流媒體文件視頻幀內(nèi)的時(shí)間戳顯示該視頻幀。
如圖3所示,為根據(jù)本發(fā)明實(shí)施例所述的選擇慢速播放的方法流程圖,其具體步驟為步驟301,選擇慢速播放,其速率是原速率的N分之一,N一般可以是2、4、8、16、32或64;步驟302,客戶(hù)端通過(guò)RTSP協(xié)議通知服務(wù)器,服務(wù)器收到慢速播放請(qǐng)求后,對(duì)時(shí)間戳進(jìn)行如下變換TSn’=(TSn-TS)×C×N+Rd式中TSn’變換后的時(shí)間戳,用于網(wǎng)絡(luò)傳輸,TSn變換前的原始時(shí)間戳,TS初始參考時(shí)間戳,C常數(shù),Rd隨機(jī)數(shù),NN分之一倍速步驟303,播放器收到碼流后,將視頻幀送到解碼單元進(jìn)行解碼;步驟304,播放器將解碼后的視頻幀送到顯示單元;步驟305,顯示單元根據(jù)視頻幀內(nèi)的時(shí)間戳顯示該視頻幀;客戶(hù)端的播放速率就變成了原來(lái)的N分之一,從而實(shí)現(xiàn)了慢速播放。
如圖4所示,為根據(jù)本發(fā)明實(shí)施例所述的選擇快速播放的方法流程圖,包括以下步驟步驟401,用戶(hù)選擇快速播放,其速率是原速率的N倍,N一般可以是2、4、8、16、32或64;步驟402,客戶(hù)端通過(guò)RTSP協(xié)議通知服務(wù)器,流媒體服務(wù)器收到快速播放請(qǐng)求后,對(duì)時(shí)間戳進(jìn)行變換,采用的公式如下TSn’=(TSn-TS)/(C×N)+RdTSn’變換后的時(shí)間戳,用于視頻幀的顯示控制;TSn變換前的時(shí)間戳;
TS初始參考時(shí)間戳;C常數(shù);Rd隨機(jī)數(shù);NN倍速;步驟403,流媒體服務(wù)器選擇關(guān)鍵幀傳送,拋棄非關(guān)鍵幀,如果關(guān)鍵幀的碼流超過(guò)發(fā)送帶寬時(shí),需要拋棄部分關(guān)鍵幀,用以保持發(fā)送帶寬的恒定;步驟404,播放器收到碼流后,將視頻幀送到解碼單元進(jìn)行解碼;步驟405,播放器將解碼后的視頻幀送到顯示單元,顯示單元根據(jù)視頻幀內(nèi)的時(shí)間戳顯示該視頻幀,客戶(hù)端的播放速率就變成了原來(lái)的N倍,從而實(shí)現(xiàn)了快速播放。
權(quán)利要求
1.一種改變流媒體文件播放速度的方法,通過(guò)調(diào)節(jié)播放時(shí)間戳在客戶(hù)端實(shí)現(xiàn)流媒體文件的倍速加快或倍速放慢播放,其特征在于,所述方法包括以下步驟(1)客戶(hù)端選擇改變流媒體文件的播放速度,改變后的播放速度為其原播放速度的N倍或N分之一;(2)客戶(hù)端通過(guò)RTSP協(xié)議將變速播放請(qǐng)求上報(bào)服務(wù)器;(3)服務(wù)器接收到變速播放請(qǐng)求后,判斷變速播放請(qǐng)求是倍速加快播放請(qǐng)求還是倍速放慢播放請(qǐng)求;(4)服務(wù)器根據(jù)變速播放請(qǐng)求,對(duì)播放時(shí)間戳進(jìn)行變換,并將變換后的時(shí)間戳保存在流媒體文件碼流中。
2.根據(jù)權(quán)利要求1所述方法,其特征在于,所述方法進(jìn)一步包括(5)客戶(hù)端接收到流媒體文件碼流后,發(fā)送到解碼單元解碼;(6)客戶(hù)端將解碼后的流媒體文件發(fā)送顯示單元,顯示單元根據(jù)流媒體文件視頻幀內(nèi)的時(shí)間戳顯示該視頻幀。
3.根據(jù)權(quán)利要求1所述方法,其特征在于,所述步驟1中,客戶(hù)端選擇改變流媒體文件的播放速度,改變后的播放速度為其原播放速度的N倍或N分之一,N為2、4、8、16、32或64。
4.根據(jù)權(quán)利要求1所述方法,其特征在于所述步驟3中,服務(wù)器接收到變速播放請(qǐng)求后,如果變速播放請(qǐng)求為倍速放慢播放請(qǐng)求,則所述步驟4進(jìn)一步包括,服務(wù)器根據(jù)倍速放慢播放請(qǐng)求,對(duì)播放時(shí)間戳依照下列公式進(jìn)行變換TSn’=(TSn-TS)×C×N+Rd上式中TSn’為變換后的時(shí)間戳;TSn為變換前的原始時(shí)間戳;TS為初始參考時(shí)間戳;C為常數(shù);Rd為隨機(jī)數(shù)或偽隨機(jī)數(shù);N為放慢倍數(shù)。
5.根據(jù)權(quán)利要求1所述方法,其特征在于所述步驟3中,服務(wù)器接收到變速播放請(qǐng)求后,如果變速播放請(qǐng)求為倍速加快播放請(qǐng)求,則所述步驟4進(jìn)一步包括,服務(wù)器根據(jù)倍速加快播放請(qǐng)求,對(duì)播放時(shí)間戳依照下列公式進(jìn)行變換TSn’=(TSn-TS)/(C×N)+Rd上式中TSn’為變換后的時(shí)間戳;TSn為變換前的原始時(shí)間戳;TS為初始參考時(shí)間戳;C為常數(shù);Rd為隨機(jī)數(shù)或偽隨機(jī)數(shù);N為加快倍數(shù)。
6.根據(jù)權(quán)利要求1所述方法,其特征在于所述步驟3中,服務(wù)器接收到變速播放請(qǐng)求后,如果變速播放請(qǐng)求為倍速加快播放請(qǐng)求,則所述步驟4進(jìn)一步包括,服務(wù)器根據(jù)倍速加快播放請(qǐng)求,對(duì)播放時(shí)間戳進(jìn)行變換;服務(wù)器選擇關(guān)鍵幀傳送,拋棄非關(guān)鍵幀。
7.根據(jù)權(quán)利要求6所述方法,其特征在于所述步驟4進(jìn)一步包括,服務(wù)器選擇關(guān)鍵幀傳送,拋棄非關(guān)鍵幀,當(dāng)關(guān)鍵幀的碼流超過(guò)發(fā)送帶寬時(shí),拋棄部分關(guān)鍵幀,保持發(fā)送帶寬恒定。
全文摘要
本發(fā)明提供了一種改變流媒體文件播放速度的方法,通過(guò)調(diào)節(jié)播放時(shí)間戳在客戶(hù)端實(shí)現(xiàn)流媒體文件的倍速加快或倍速放慢播放,包括以下步驟(1)客戶(hù)端選擇改變流媒體文件的播放速度,改變后的播放速度為其原播放速度的N倍或N分之一;(2)客戶(hù)端通過(guò)RTSP協(xié)議將變速播放請(qǐng)求上報(bào)服務(wù)器;(3)服務(wù)器接收到變速播放請(qǐng)求后,判斷變速播放請(qǐng)求是倍速加快播放請(qǐng)求還是倍速放慢播放請(qǐng)求;(4)服務(wù)器根據(jù)變速播放請(qǐng)求,對(duì)播放時(shí)間戳進(jìn)行變換,并將變換后的時(shí)間戳保存在流媒體文件碼流中。本發(fā)明方法,可以滿(mǎn)足用戶(hù)在通過(guò)網(wǎng)絡(luò)欣賞音視頻節(jié)目的時(shí)候選擇不同于正常播放速率的視頻速度進(jìn)行播放的要求,便于為用戶(hù)提供更多、更豐富的服務(wù)。
文檔編號(hào)H04L29/02GK101075949SQ20061008054
公開(kāi)日2007年11月21日 申請(qǐng)日期2006年5月15日 優(yōu)先權(quán)日2006年5月15日
發(fā)明者沈燦 申請(qǐng)人:中興通訊股份有限公司