專利名稱:一種計算機(jī)的多視頻播放方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及視頻播放技術(shù)領(lǐng)域,具體的講,涉及一種計算機(jī)的多視頻播放方法及裝置。
背景技術(shù):
觀看視頻,已經(jīng)成為個人電腦的主要應(yīng)用。特別是在互聯(lián)網(wǎng)進(jìn)入千家萬戶的今天,網(wǎng)絡(luò)和網(wǎng)絡(luò)視頻成為多媒體信息傳播的全新渠道。各種各樣的視頻內(nèi)容,無論是由普通用戶制作的個人視頻,還是由專業(yè)媒體制作的視頻節(jié)目,都能夠讓世界各地的互聯(lián)網(wǎng)用戶隨時隨地通過網(wǎng)絡(luò)下載或者在線播放。
原始的視頻信號需要經(jīng)過壓縮、編碼,才能保證在最大限度保證音視頻質(zhì)量的前提下,減少視頻文件的大小,降低網(wǎng)絡(luò)傳輸中的帶寬要求。而經(jīng)過壓縮和編碼的視頻,在用戶的電腦上,需要解碼還原成可以觀看的視頻。
視頻的編碼和解碼算法較為復(fù)雜,特別是對那些壓縮比高,音視頻質(zhì)量高的視頻,如果采用軟件的方式編解碼,會消耗大量的系統(tǒng)資源,對CPU的處理能力、內(nèi)存的大小都有非常高的要求。為此,在需要大量制作、傳輸視頻時,需要編碼硬件設(shè)備;而在一些嵌入式的設(shè)備,如機(jī)頂盒、MP4播放器等等,都會采用解碼芯片來還原視頻。
最初的視頻,基本上都是以文件的方式進(jìn)行傳播,用戶需要完全下載到視頻文件的拷貝之后才能開始觀看,而由于視頻文件較大,因此需要等待很長時間。為此,基于網(wǎng)絡(luò)的流媒體視頻應(yīng)運而生,用戶可以一邊下載一邊觀看流媒體視頻。流媒體視頻的誕生,讓網(wǎng)絡(luò)電視IPTV在近幾年成為電信運營商和視頻內(nèi)容商重點投入的領(lǐng)域。用戶能夠在寬帶網(wǎng)絡(luò)上在線收看各種視頻。此外,隨著視頻DV設(shè)備的普及,普通用戶也能夠像專業(yè)媒體一樣制作個人視頻。因此也誕生了各種網(wǎng)絡(luò)視頻分享網(wǎng)站。無論用戶使用的是哪一種視頻服務(wù),得到的哪種格式的視頻內(nèi)容,最終視頻都將通過“視頻播放器”解碼、還原成可觀看的視頻畫面。
當(dāng)前,主流的視頻播放器的主要運行方式包括獨立應(yīng)用程序模式(窗口模式)、嵌入網(wǎng)頁瀏覽器的模式及全屏播放模式。
在窗口模式下,如普通的計算機(jī)應(yīng)用程序一樣,用戶可以使用播放器的菜單、播放控制按鈕、最大最小化窗口等功能。
嵌入網(wǎng)頁瀏覽器的模式與窗口模式略有不同,一些控制視頻播放的按鈕和右鍵菜單被保留,而最大化最小化、菜單等功能都被去除。在絕大多數(shù)對于各種提供網(wǎng)絡(luò)視頻內(nèi)容和服務(wù)的網(wǎng)站,都能夠看到在網(wǎng)頁上嵌入了視頻播放器,用戶可以在瀏覽網(wǎng)頁信息的同時收看相應(yīng)的視頻內(nèi)容。
無論是窗口模式還是嵌入網(wǎng)頁模式,用戶都可以將視頻全屏化,即讓視頻畫面獨占整個顯示空間。全屏模式中,視頻縮放、控制(暫停、快進(jìn)等)功能都會疊加在視頻畫面之上,用戶無須退出全屏模式即可實現(xiàn)對視頻的控制。全屏模式是用戶在長期觀看電視、電影等傳統(tǒng)視頻體驗。在全屏的情形下,視頻會獨占用戶的關(guān)注,同時全屏對視頻質(zhì)量的要求也非常高。
目前市場上所有的視頻播放器都采用了如上三種模式。一方面說明網(wǎng)絡(luò)用戶已經(jīng)逐漸形成了網(wǎng)絡(luò)視頻觀看的習(xí)慣行為模式,另一方面也說明這種簡單的視頻收看模式存在著無法克服的關(guān)鍵難一些問題,包括(1)單一視頻這些視頻播放器任一時刻,在一個播放器中只能播放一段視頻。當(dāng)用戶需要獲取多個視頻內(nèi)容時,只能通過多開視頻窗口的方式來實現(xiàn)。多個視頻窗口會造成諸如聲音混雜在一起、占用更多的系統(tǒng)資源等等問題。用戶體驗只能用混亂來形容。并且,目前在沒有安裝特定顯卡的PC上,不能在全屏播放一個視頻時同時在屏幕上播放另一個視頻,即很難用純軟件的方式實現(xiàn)全屏下的畫中畫(PIP)。
(2)視頻與信息分離網(wǎng)絡(luò)上大量的圖片、文本和Flash內(nèi)容,只有在網(wǎng)頁中才能與視頻共存。而視頻在很大程度上,由于其特殊性,對用戶注意力的吸引力是巨大的,因此很難能夠再去注意到這些相關(guān)的內(nèi)容。另外在全屏或者窗口的播放模式之下,用戶無法在觀看視頻的時候獲取到其他類型的信息。
傳統(tǒng)視頻播放器存在的以上問題,極大的限制了創(chuàng)新視頻應(yīng)用和服務(wù)的產(chǎn)生,尤其阻礙了網(wǎng)絡(luò)廣告視頻市場的發(fā)展。
廣告是互聯(lián)網(wǎng)的成功商業(yè)模式之一。傳統(tǒng)網(wǎng)絡(luò)廣告以圖片、Flash和文本內(nèi)容為主,而視頻廣告能夠傳遞的品牌力量,是傳統(tǒng)方式所無法比擬的。但是目前的視頻廣告模式包括如下兩種方式(1)在節(jié)目視頻播放過程中插播廣告視頻(如Yahoo Movie)與電視廣告相同,視頻廣告在節(jié)目播放的過程中插入,完全取代原有視頻。對于該方式,一方面用戶感受差,用戶的正常收看行為被打斷,往往在廣告視頻播放期間,用戶會轉(zhuǎn)移其收看點做其他事情。另一方面,插播廣告視頻只能有兩種實現(xiàn)方式1)制作節(jié)目視頻時就將廣告剪切進(jìn)去這就需要在前期視頻編輯上投入大量人力、物力,而一旦視頻制作完成后就無法對廣告內(nèi)容進(jìn)行修改。
2)往往僅在節(jié)目視頻播放開始和結(jié)束時插播如此浪費了大量的有效廣告時機(jī)和時間,并且開始和結(jié)束時用戶的注意力很難能夠完全放在視頻之上。并且這樣的廣告投放相對來說與觀看節(jié)目的過程之間還是割裂的,而且用戶是無法選擇的,因此用戶體驗并不好。
(2)在頁面上出現(xiàn)視頻廣告(如iCast)當(dāng)用戶雜瀏覽網(wǎng)頁時,自動升起視頻廣告。大面積的遮擋住了網(wǎng)頁內(nèi)容,用戶沒有選擇。因此用戶體驗比較差,并且絕大多數(shù)此類的廣告都會被瀏覽器或工具條屏蔽,無法彈出。
另外,網(wǎng)絡(luò)視頻,在理論上是能夠有無窮的頻道的,這一點和傳統(tǒng)電視固定數(shù)量的頻道不同。但是對于用戶個體來說,其注意力是有限的。而這些海量的網(wǎng)絡(luò)視頻頻道中播出的各種內(nèi)容,在單視頻的情況下,并沒有讓用戶完全享受到選擇的權(quán)利。
隨著網(wǎng)絡(luò)帶寬的增容、視頻存儲成本的下降和視頻分享觀看的流行,“視頻”已經(jīng)成為互聯(lián)網(wǎng)新的焦點,然而傳統(tǒng)視頻節(jié)目播放與視頻廣告投放的以上缺陷,極大限制了視頻播放的應(yīng)用和服務(wù)的產(chǎn)生,也阻礙了視頻服務(wù)商業(yè)模式的創(chuàng)新和發(fā)展。
發(fā)明內(nèi)容
有鑒于如上問題,本發(fā)明的目的在于提供一種計算機(jī)的多視頻播放方法及裝置,以實現(xiàn)電腦中多視頻的畫中畫顯示,提高用戶體驗。
為了實現(xiàn)上述目的,本發(fā)明的技術(shù)方案為一種計算機(jī)的多視頻播放方法,包括如下步驟從遠(yuǎn)端或本地接收至少兩個媒體源信息;根據(jù)所述至少兩個媒體源的地址讀取對應(yīng)的媒體,并對媒體進(jìn)行解碼,各自生成一路視頻幀數(shù)據(jù)和一路音頻數(shù)據(jù);將解碼生成的至少兩路視頻幀顯示到同一屏幕的不同視窗上,并以其中一個視窗作為主視窗,以所述主視窗以外的窗口作為輔助視窗;選擇與主視窗中的視頻幀對應(yīng)的音頻脈沖調(diào)制數(shù)據(jù)進(jìn)行播放輸出。
所述的至少兩路視頻幀是通過調(diào)用D3D的接口顯示到屏幕的不同視窗上。
設(shè)置所述D3D接口的顯示刷新頻率為25幀/秒。
該方法還包括預(yù)先設(shè)置界面顯示參數(shù),以根據(jù)所述界面顯示參數(shù)輸出播放視頻。
所述界面顯示參數(shù)包括視頻的大小、位置、透明度和/或動畫效果信息。
該方法還包括預(yù)先設(shè)置媒體讀取控制參數(shù),以根據(jù)該控制信息控制各個媒體的讀取。
所述媒體讀取控制參數(shù)包括媒體地址及讀取時間或頻率控制信息。
所述媒體包括視頻流和媒體文件,媒體文件包括視頻、音頻、FLASH、文字和圖片。
該方法還包括在所述視頻幀上設(shè)置超級鏈接。
該方法還包括設(shè)置鼠標(biāo)或鍵盤的快捷鍵,以切換主視窗和輔視窗。
所述參數(shù)通過XML格式配置文件、命令行、用戶指定方式進(jìn)行配置。
所述主視窗和輔助視窗以疊加或并排的方式進(jìn)行顯示。
一種計算機(jī)中的多視頻播放裝置,包括界面管理單元、至少兩個媒體源讀取單元、視頻展現(xiàn)單元及音頻展現(xiàn)單元;所述界面管理單元用于從遠(yuǎn)端或本地接收至少兩個媒體源信息,并根據(jù)所述的媒體源信息設(shè)置媒體地址;所述媒體源讀取單元,用于接收媒體地址,讀取所述媒體,并對媒體進(jìn)行解碼,生成視頻幀數(shù)據(jù)和音頻數(shù)據(jù),并將所述視頻幀數(shù)據(jù)傳送至視頻展現(xiàn)單元;所述視頻展現(xiàn)單元,用于將所述至少兩個媒體源讀取單元生成的視頻幀顯示到同一屏幕的不同視窗上,并以其中一個視窗作為主視窗,以主視窗以外的窗口作為輔助視窗;所述音頻展示單元,用于接收與主視窗中的視頻幀對應(yīng)的音頻數(shù)據(jù),并進(jìn)行播放。
所述界面管理單元還用于預(yù)先設(shè)置界面顯示參數(shù),并將所述的界面顯示參數(shù)傳輸至所述視頻展現(xiàn)單元,以根據(jù)所述界面顯示參數(shù)輸出播放視頻。
所述界面顯示參數(shù)包括視頻的大小、位置、透明度和/或動畫效果信息。
所述界面管理單元還用于設(shè)置媒體讀取控制參數(shù),以根據(jù)該控制信息控制各個媒體的讀取。
所述媒體讀取控制參數(shù)包括媒體讀取時間或頻率控制信息。
所述視頻展現(xiàn)單元通過調(diào)用D3D接口將所述視頻幀顯示到屏幕的視窗上。
所述D3D接口的顯示刷新頻率為25幀/秒。
所述媒體包括視頻流和媒體文件,媒體文件包括視頻、音頻、FLASH、文字和圖片。
通過如上所述的本發(fā)明,實現(xiàn)了多個視頻(視頻、圖片、文本、FLASH等)在同一屏幕上的相互疊加(或并排)的播放,即實現(xiàn)了計算機(jī)上多視頻播放的畫中畫功能,極大地提高了用戶體驗,并擴(kuò)展了視頻的應(yīng)用和服務(wù),擴(kuò)大了商業(yè)市場。
圖1為本發(fā)明的方法流程圖;圖2為本發(fā)明的對視頻幀數(shù)據(jù)進(jìn)行顯示的流程示意圖;圖3為本發(fā)明的多視頻播放裝置的結(jié)構(gòu)框圖;圖4為本發(fā)明實施例的顯示場景3的示意圖;圖5為本發(fā)明實施例的顯示場景4的示意圖;圖6為本發(fā)明實施例的顯示場景5的示意圖;圖7為本發(fā)明實施例的顯示場景6的示意圖;圖8a、圖8b為本發(fā)明實施例的顯示場景7的示意圖。
具體實施例方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚,下面結(jié)合附圖對本發(fā)明的具體實施例進(jìn)行詳細(xì)說明。
實施例1本實施例是使用微軟的Direct 3D(簡稱D3D)技術(shù),利用Direct 3D可以同時處理多個圖形對象的能力,實現(xiàn)多個視頻同時在全屏幕下顯示(畫中畫功能)。
在本實施例中,實現(xiàn)電腦視頻畫中畫顯示的基本原理在于用兩個或多個三角形來描述一個視頻/圖片/文字的位置和大小,然后將這些三角形的數(shù)據(jù)輸入到D3D的功能函數(shù)將它們顯示出來。
電腦的視頻一般是4∶3的矩形,可以用兩個斜邊相連的直角三角形來表示,視頻的位圖數(shù)據(jù)使用D3D支持的紋理對象(texture)來描述,將這個紋理與上述兩個三角形進(jìn)行關(guān)聯(lián),然后把這些數(shù)據(jù)輸入D3D的函數(shù),就能用指定位置和大小顯示出一幀視頻,連續(xù)顯示后續(xù)的視頻幀,就能得到視頻播放的畫面。
利用同樣的工作原理,就可以在一副畫面上放入不同的多個視頻/圖片/文字,用一系列的三角形進(jìn)行描述,然后一次性輸入D3D的函數(shù)進(jìn)行顯示。不斷循環(huán)重復(fù)這個動作,就能得到多個視頻/圖片/文字交織在一起同時顯示的效果。
利用視頻每秒25幀的特點,將D3D的顯示刷新率也設(shè)置成25幀/秒,既能得到流暢的播放畫面,也很好地控制了CPU和內(nèi)存的消耗。這是由于D3D的處理能力在一秒之內(nèi)可以同時顯示很多個三角形并加上紋理,而我們的系統(tǒng)用兩個三角形就可以描述一個視頻/圖片/文字對象,在屏幕上同時出現(xiàn)的對象一般不超過50個(太多的對象會導(dǎo)致畫面混亂,實際中很少出現(xiàn)),所以實際上大多數(shù)時候每秒需要顯示的三角形數(shù)量為50*2*25=2500個,只占一臺較低配置的機(jī)器(如筆記本電腦)D3D三角形處理能力的2500/3000000=0.08%。而一幀視頻的位圖尺寸一般是640*480,一秒鐘需要處理視頻的位圖點數(shù)為640*480*25=7.68M,僅占較低配置的機(jī)器(如筆記本電腦)D3D紋理處理能力的7.68M/242.6M=3.17%。由此可見對于處理若干個視頻這樣的高動態(tài)數(shù)據(jù)流,D3D完全可以勝任。
D3D支持窗口和全屏兩種顯示模式,并能夠隨時在兩種模式間切換,兩種顯示模式支持的功能是一致的。由于我們實現(xiàn)的方式是直接利用D3D來實現(xiàn)多視頻和圖文疊加的功能,這些功能在窗口和全屏下的表現(xiàn)都是一樣的。
D3D在窗口和全屏模式下都支持鼠標(biāo)功能,在視頻播放過程中,當(dāng)電腦收到鼠標(biāo)點擊的事件時,根據(jù)鼠標(biāo)的坐標(biāo)位置,在畫面對象列表中查找,畫面對象都包含有位置大小等信息,可以據(jù)此判斷鼠標(biāo)是點擊了哪個對象,如果該對象定義有關(guān)聯(lián)的動作,播放系統(tǒng)會執(zhí)行該動作,這個動作可以是范圍很廣的功能,比如將某個對象顯示/隱藏,生成/毀滅其他對象等。這樣就可以為用戶提供進(jìn)一步的信息,給用戶提供交互的功能。
我們的系統(tǒng)每秒顯示25次,在每次顯示之前,三角形的位置大小和紋理等屬性都可以改變,所以系統(tǒng)能夠提供實時更新顯示的圖片/文字信息,改變位置大小,做出動畫效果等功能。
雖然本實施例中是采用D3D函數(shù)實現(xiàn)多視頻的畫中畫顯示,但本發(fā)明并不限于此。采用OpenGL、DirectShow等與D3D類似的計算機(jī)圖形和視頻處理接口同樣可以對多個可視對象進(jìn)行處理,并在同一畫面中顯示出來,只是達(dá)到的效果難以同D3D相比擬。
如采用其他的3D技術(shù),如OpenGL,也同樣可以達(dá)到D3D所實現(xiàn)我們系統(tǒng)的全部功能,但OpenGL面向的是專業(yè)用戶,對硬件有較高要求。除此之外,微軟在DirectShow SDK中提供的控件VMR9(Video Mixing Render 9),也能實現(xiàn)將兩路解碼后的視頻流在屏幕上進(jìn)行疊加顯示,但是VMR9應(yīng)用上有較多問題,比如難以平滑地對小視頻窗口進(jìn)行移動或者改變大小、顯示較多對象時存在較大的效率問題等。
圖1是本發(fā)明的在同一屏幕中實現(xiàn)多視頻播放的流程示意圖。如圖1所示,可包括如下步驟(1)讀取XML(eXtensible Markup Language,可擴(kuò)展標(biāo)記語言)配置文件本實施例中可用XML配置文件來對多視頻播放進(jìn)行配置。各種多媒體內(nèi)容在一個集中的交互界面中同時顯示時,不但需要協(xié)調(diào)各種內(nèi)容的同步、分步顯示,并且還需要處理用戶交互、響應(yīng)用戶動作等等。因此需要預(yù)先定義模板、播放計劃和腳本,以對視頻內(nèi)容和其他多媒體信息進(jìn)行控制,并且負(fù)責(zé)與服務(wù)端通信,隨時處理用戶的控制信號??梢酝ㄟ^XML配置文件來對預(yù)先定義的模板、播放計劃和腳本等進(jìn)行配置。所述配置文件中還包括需要播放的多個(包括兩個)媒體源信息。
所述配置也可以通過手動配置或通過輸入命令行來實現(xiàn)。
(2)根據(jù)配置文件生成界面元素,并設(shè)置界面元素的各種屬性。
對應(yīng)于要播放的媒體的個數(shù),生成相同個數(shù)的界面元素。在此,所述界面元素包括視頻的大小位置、透明度、動畫效果(如淡入淡出、旋轉(zhuǎn))等界面顯示參數(shù),設(shè)置界面元素的屬性也即對所述界面顯示參數(shù)進(jìn)行設(shè)置。設(shè)置的界面元素可以以隊列形式傳送給要進(jìn)行視頻展示的單元。根據(jù)設(shè)置的界面元素就可以在對應(yīng)的媒體播放時對媒體的顯示效果進(jìn)行控制。
(3)根據(jù)配置文件中的配置生成媒體讀取控制參數(shù)、設(shè)置媒體源地址(如URL,統(tǒng)一資源定位符,即網(wǎng)址),并根據(jù)設(shè)置讀取相應(yīng)的媒體(包括媒體文件及媒體流等,該媒體既可以位于本地電腦,也可以位于遠(yuǎn)端服務(wù)器),并各自將媒體包解碼成視頻幀數(shù)據(jù)和音頻脈沖調(diào)制數(shù)據(jù)。對應(yīng)于多個媒體,共解碼成對應(yīng)的多路視頻幀數(shù)據(jù)和音頻脈沖調(diào)制數(shù)據(jù)。如在同時顯示2個視頻的情況下,則將根據(jù)2個媒體源對應(yīng)的地址將2個媒體解碼成2路視頻數(shù)據(jù)和2路音頻數(shù)據(jù)。
在此,所述的媒體讀取控制參數(shù)是用于控制媒體讀取時間或頻率的參數(shù)。如,控制生成輔助視窗的媒體每隔5分鐘讀取播放一次,或者在主視窗媒體在連接、下載和緩沖時讀取播放等。該參數(shù)可以根據(jù)需要方便的進(jìn)行修改與設(shè)置。
(4)按照界面元素的設(shè)置,將解碼生成的多路視頻幀數(shù)據(jù)在同一屏幕的不同視窗顯示出來。具體顯示的步驟如圖2所示。
視頻展現(xiàn)單元不間斷的檢查界面元素隊列中是否有需要展現(xiàn)的界面元素,當(dāng)視頻展現(xiàn)單元發(fā)現(xiàn)有需要展現(xiàn)的元素后,將根據(jù)界面結(jié)構(gòu)單元指定的參數(shù)設(shè)置顯示參數(shù),然后從隊列中將要展現(xiàn)的界面元素取出。
視頻展現(xiàn)單元將要顯示的界面元素分解成三角形,如果要展現(xiàn)的界面元素是視頻的話,視頻展現(xiàn)單元將從進(jìn)行媒體源讀取的單元中獲取視頻幀的位圖數(shù)據(jù),并將其轉(zhuǎn)換成紋理對象。
視頻展現(xiàn)單元根據(jù)所獲得的顯示參數(shù)、紋理數(shù)據(jù),設(shè)置三角形的紋理、位置、大小。然后調(diào)用D3D接口將由許許多多三角形構(gòu)成的界面元素顯示畫面輸出到畫面緩沖區(qū)當(dāng)中。
這時視頻展現(xiàn)單元將檢查上一幀畫面的顯示是否已過去1/25秒,如果沒有則等待,如果已過去1/25秒,則調(diào)用D3D接口將畫面緩沖區(qū)中的顯示畫面輸出到計算機(jī)屏幕上。
視頻展現(xiàn)器會不斷重復(fù)圖2所示過程,讓視頻流暢的播放出來。
所顯示的不同視窗中,以其中一個視窗作為主視窗,其它的視窗作為輔助視窗。如可以以設(shè)置的顯示尺寸大的視窗作為主視窗。
(5)根據(jù)需要選擇對某一個媒體源的音頻解碼數(shù)據(jù)進(jìn)行播放。
通常,以與主視窗中的視頻幀對應(yīng)的音頻解碼數(shù)據(jù)進(jìn)行播放輸出。
經(jīng)過如上的步驟,就實現(xiàn)了具有畫中畫功能的多視頻播放效果。不僅可以避免單一視頻的單調(diào),又不會引起聲音的混雜;而且在播放主視頻時,如果要插播廣告等媒體內(nèi)容,無需在制作主視頻媒體時將廣告剪切進(jìn)去,且隨時都可以進(jìn)行播放;并且,由于可以控制廣告頁面的位置大小、透明度等,及時在播放主視頻媒體時播放,也不會太影響主視頻媒體的觀看效果,因此大大提高了用戶體驗。
利用3D技術(shù),本發(fā)明的多視頻播放方法可支持至少兩個視頻窗口無縫、平滑地相互疊加的體驗(畫中畫功能)如畫面分為主視頻窗口和輔視頻窗口,用戶聽到的聲音是主視頻窗口中播放的聲音。
本發(fā)明還能夠在視頻播放界面上疊加多個輔助視頻、Flash、圖片和文本內(nèi)容,并通過界面元素的設(shè)置,可以支持在視頻上疊加滾動字幕(包括文字、圖片)。字幕的內(nèi)容和相關(guān)參數(shù)均可以設(shè)置。
本發(fā)明還可通過設(shè)置快捷鍵來切換主視頻窗口和輔視頻窗口,即將同時播出的主視頻節(jié)目和輔視頻內(nèi)容的播出位置進(jìn)行互換。在輔視頻內(nèi)容播出完成之后,主節(jié)目視頻都將重新回到主播放窗口進(jìn)行播放。
本發(fā)明還支持在P2P連接、下載和緩沖時插播視頻廣告。當(dāng)播放客戶端首次連接或切換頻道時,會因為連接、下載和緩沖而導(dǎo)致主視頻窗口無播放內(nèi)容。此時客戶端根據(jù)輔助視頻投放計劃的安排,在主視頻窗口播出廣告,同時顯示連接、下載和緩沖的進(jìn)度。當(dāng)主視頻節(jié)目緩沖完成后,直接在主視頻窗口播放,并自動將廣告視頻切換至輔視頻窗口繼續(xù)播出,直至輔助視頻播放完成。
本發(fā)明同樣支持超級鏈接。在廣告視頻、圖片、滾動字幕的內(nèi)容(文字和圖片)上都可以指定超級鏈接。用戶點擊輔助視頻窗口、圖片和文字內(nèi)容后,彈出新的瀏覽器窗口打開相應(yīng)的鏈接。
在切換主輔視頻窗口、輔助視頻內(nèi)容出現(xiàn)的過程中,本發(fā)明支持各種場景切換效果。如1.淡入淡出、2.彈入彈出、3.飛入飛出效果的切換。
本發(fā)明還支持全屏和窗口播放。當(dāng)用戶在視頻播放位置雙擊時,自動切換至窗口或全屏播放方式。
本發(fā)明可為用戶提供鼠標(biāo)操作和鍵盤的快捷鍵,做如下動作1.切換主視頻窗口和輔助視頻窗口;2.全屏和窗口播放之間的切換;3.切換主節(jié)目視頻的播出地址(頻道切換)。如各個節(jié)目視頻的頻道可以以文字形式疊加在主節(jié)目視頻窗口上,通過鼠標(biāo)點擊相應(yīng)頻道或操作鍵盤的快捷鍵可以進(jìn)行頻道的切換。
本發(fā)明還可提供單獨的客戶端應(yīng)用程序。用戶可以直接運行客戶端程序即可觀看主視頻流和相應(yīng)的廣告投放內(nèi)容。需要支持的操作系統(tǒng)包括WindowsXP及Windows 2003。
另外,客戶端可嵌入網(wǎng)頁中??蛻舳丝蒃mbed到網(wǎng)頁中,內(nèi)嵌的客戶端同樣可以播放主視頻節(jié)目和廣告投放內(nèi)容。支持同樣的交互操作(鼠標(biāo)和鍵盤快捷鍵等)。此外,用戶通過點擊頁面中的頻道鏈接即可實現(xiàn)頻道切換。
本實施例的如上畫中畫的多視頻播放方法可以以軟件、硬件或軟硬件結(jié)合的方式來實現(xiàn)。如通過軟件根據(jù)如上步驟可以制作出進(jìn)行多視頻播放的新的視頻播放器,以運行于電腦之上。本發(fā)明的視頻播放器可包括如下模塊(以包含2個視頻的畫中畫顯示為例進(jìn)行說明)界面管理模塊、兩個媒體源讀取模塊、視頻展現(xiàn)模塊及音頻展現(xiàn)模塊。
所述界面管理模塊用于接收兩個媒體源信息,并設(shè)置媒體源地址、界面顯示參數(shù)及媒體讀取控制參數(shù);其中,所述的界面顯示參數(shù)(或統(tǒng)稱界面元素)主要包括視頻的大小位置、透明度、動畫效果(如淡入淡出、旋轉(zhuǎn))等(但并不限定于此,還可包括其它常用的一些畫面顯示參數(shù)),這些參數(shù)均可以修改與設(shè)置。所述媒體讀取控制參數(shù)主要用于控制媒體讀取模塊對媒體文件的讀取,例如,控制生成輔助視窗的媒體文件每隔5分鐘讀取播放一次,與主視頻媒體文件同時讀取并播放、或者在主視窗播放文件在連接、下載和緩沖時讀取播放等。所述界面管理模塊將與兩個媒體源對應(yīng)的兩個界面顯示信息(或稱界面元素)傳輸?shù)揭曨l展現(xiàn)模塊。
所述兩個媒體源讀取模塊,用于分別根據(jù)各個媒體源地址,讀取媒體(如媒體文件和/或媒體流),并對媒體進(jìn)行解碼,生成對應(yīng)的視頻幀數(shù)據(jù)和音頻數(shù)據(jù),并將所述視頻幀數(shù)據(jù)傳送至視頻展現(xiàn)單元。
所述視頻展現(xiàn)模塊,用于將所述兩個媒體源讀取單元生成的視頻幀顯示到同一屏幕的不同視窗上,并以其中一個視窗作為主視窗,以所述主視窗以外的窗口作為輔助視窗;所述音頻展示模塊,用于接收兩路音頻脈沖調(diào)制數(shù)據(jù)中的一路進(jìn)行播放。例如,可以選擇與主視窗播放的視頻對應(yīng)的音頻脈沖調(diào)制數(shù)據(jù)進(jìn)行播放。
本發(fā)明的視頻播放器可支持播放主流的視頻格式文件或流,如WMV、H.264、mpeg-2/4、Flash等。
利用XML配置文件可以預(yù)先配置顯示模板、播放計劃等,而界面管理模塊可以根據(jù)Xml配置文件的配置進(jìn)行客戶端參數(shù)的設(shè)置,因此通過XML配置文件及界面管理模塊,可實現(xiàn)如下的播放管理功能(1)可控制廣告視頻的播出。如1.指定廣告視頻的位置(文件或視頻流地址);2.廣告投放的時間和頻率;3.廣告所在輔視頻窗口的初始大小、出現(xiàn)位置和切換效果。
(2)可控制滾動字幕的廣告播出。1.可控制滾動字幕的內(nèi)容(文字和圖片);2.可控制字幕的出現(xiàn)時間和頻率;3.可控制滾動的速度;4.可控制字幕出現(xiàn)的位置;5.可設(shè)置字幕的外觀,包括大小、字體、顏色和半透明。
(3)可控制圖片廣告的投放。如可設(shè)置廣告圖片(如Logo)的圖片文件地址、出現(xiàn)時間和頻率、圖片位置和大小。
(4)支持實時插播廣告。如客戶端可通過遠(yuǎn)程接口接收服務(wù)端指令,實時插播視頻廣告。
(5)可按預(yù)發(fā)布的廣告投放計劃播出。以遠(yuǎn)程接口或文件的形式,支持廣告投放的Schedule。這些Schedule在廣告播出前預(yù)先發(fā)布到客戶端??蛻舳藢凑誗chedule的形式播出廣告。Schedule中可以包括廣告內(nèi)容、播出形式、播出計劃(播出時間/定時播出頻率)。
(6)記錄廣告播放日志??捎涗浻脩粼谟^看視頻過程中,廣告播出的實際情況,需要記錄的數(shù)據(jù)包括1.用戶ID或客戶端ID;2.時間;3.主視頻節(jié)目ID;4.廣告ID,開始播出時間和時長;5.廣告播出采用的廣告位。
(7)支持異步下載廣告視頻??赏ㄟ^異步的方式提前將要投放的廣告視頻下載到客戶端。
(8)提供遠(yuǎn)程管理接口??商峁┻h(yuǎn)程調(diào)用接口,支持如下控制1.廣告視頻的投放和播放控制;2.文字及圖片廣告的投放和控制;3.廣告播放日志數(shù)據(jù)的采集。
(9)靈活的安裝與升級。用戶可以下載或在線安裝客戶端。用戶可在線升級客戶端。
(10)異步的廣告播出日志采集。可以以異步的形式定期采集客戶端記錄下來的廣告播出日志。
(11)提供廣告投放統(tǒng)計報表。以各種維度對實際播出日志進(jìn)行數(shù)據(jù)挖掘,并生成報表1.按廣告商;2.按廣告內(nèi)容;3.按廣告位;4.按廣告時段;5.其他。并且,統(tǒng)計結(jié)果可以以Xml或Excel文件的方式輸出。
下面列舉幾個場景來說明本發(fā)明的視頻播放器帶來的用戶體驗。
場景1A小姐最近喜歡看臺灣的綜藝節(jié)目《康熙來了》,但是由于內(nèi)地電視臺沒有播出,因此A小姐只能通過網(wǎng)絡(luò)視頻的方式收看。
和往常一樣,A小姐照例到常去的在線視頻網(wǎng)站去看最新一期的《康熙來了》,本期的嘉賓是臺灣歌手-任賢齊。
A小姐點擊網(wǎng)頁鏈接,網(wǎng)頁調(diào)用本發(fā)明的視頻播放器,開始播放。
1)開始播放時,由于網(wǎng)絡(luò)連接和緩沖需要時間,在這段時間里A小姐在播放器里看到的是視頻網(wǎng)站其他精彩視頻節(jié)目的預(yù)告片;2)連接成功并且緩沖完成后,A小姐開始觀看《康熙來了》,開始觀看1分鐘后,視頻畫面自動出現(xiàn)一個旋轉(zhuǎn)的視頻網(wǎng)站Logo圖片,提示用戶這端視頻是有版權(quán)的;3)開始觀看5分鐘后,視頻畫面的下方出現(xiàn)了滾動字幕,提示用戶“任賢齊的歌友會將與X月X日在X處舉辦......”;4)開始觀看10分鐘后,視頻畫面下方緩緩升起一個視頻小窗口,視頻內(nèi)容是一段廣告視頻,視頻內(nèi)容是“任賢齊最新專輯發(fā)售及MV片段”,當(dāng)A小姐點擊該視頻窗口時,《康熙來了》被切換至小窗口播出,而廣告視頻被切換至主視頻窗口播出。
A小姐對廣告內(nèi)容非常感興趣,點擊主視頻窗口后彈出了在線圖書音像網(wǎng)站的頁面,開始購買。同時《康熙來了》又切換回了主視頻窗口開始播放。
場景22010世界杯開踢了,Mr.Cool聽說天空電視臺在英國的數(shù)字信號通過多個頻道,對一場比賽的多個不同機(jī)位的攝像機(jī)拍攝的畫面同時直播,電視觀眾可以自由的選擇、切換想從哪個角度收看比賽。Mr.Cool在網(wǎng)上也找到了提供類似服務(wù)的一家網(wǎng)絡(luò)視頻直播網(wǎng)站。
Mr.Cool打開視頻直播網(wǎng)站,選擇了一場正在直播的比賽(荷蘭vs.德國),網(wǎng)頁調(diào)用本發(fā)明的視頻播放器,開始播放。
1)主視頻窗口一開始播放的是由公共電視信號轉(zhuǎn)過來的視頻內(nèi)容。
2)在主視頻窗口下方有四個小的視頻窗口,分別同步播放著從兩隊球門后方的攝像機(jī)、跟蹤明星球員的攝像機(jī)傳過來的三個直播視頻流,還有一個是網(wǎng)站編輯剛剛剪輯的本場比賽精彩鏡頭反復(fù)播放的視頻流。
3)荷蘭隊進(jìn)攻,Mr.Cool趕緊切換到德國隊球門后的視頻流。球進(jìn)了!半場休息時,Mr.Cool切換到精彩剪輯視頻窗口,收看上半場的精彩鏡頭重放。
場景3P2P連接時或視頻下載時,全屏顯示廣告,并同時小窗口顯示連接進(jìn)度(如圖4所示)。連接完畢后,主窗口顯示原視頻。
場景4轉(zhuǎn)播節(jié)目的廣告時間,小窗口升起,播送運營商的節(jié)目預(yù)告廣告(如圖5所示)。運營商的節(jié)目預(yù)告廣告自動切換到大窗口(此時是廣告),小窗口繼續(xù)顯示原節(jié)目(此時是廣告),或者由用戶來切換,因為預(yù)告節(jié)目似乎應(yīng)比原廣告更吸引人。
場景5節(jié)目播放中,根據(jù)預(yù)先制定的廣告政策顯示小窗口,播放廣告(如圖6所示),用戶可進(jìn)行節(jié)目間的切換。其中廣告小窗口可設(shè)定每固定時間(每半個小時)播放一次,持續(xù)時間5分鐘。
場景6在屏幕的左上方(或任意位置)顯示圖片(如圖7所示),可控制顯示時間、次數(shù),所述圖片可以是廣告或臺標(biāo)。
場景7在視頻上疊加顯示時鐘,離整點或半點差一分鐘時開始顯示,持續(xù)顯示一分到一分半鐘,在顯示時間的同時可以顯示鐘表廣告,可設(shè)置模擬時鐘在表盤(如圖8a),數(shù)字時鐘在上方(如圖8b)。
實施例2本實施例中對實現(xiàn)多視頻播放的裝置進(jìn)行描述。
圖3為本發(fā)明的多視頻播放裝置的結(jié)構(gòu)框圖,在此僅以包括兩個視頻的畫中畫播放裝置為例進(jìn)行說明,由此可以很容易的延伸到多個視頻的畫中畫顯示。如圖2所示,所述裝置主要包括界面管理單元、兩個媒體源讀取單元、視頻展現(xiàn)單元及音頻展現(xiàn)單元。
所述界面管理單元用于接收兩個媒體源信息,并根據(jù)設(shè)置媒體源地址、界面顯示參數(shù)及播放控制參數(shù);其中,所述的界面顯示參數(shù)(或統(tǒng)稱界面元素)主要包括視頻的大小位置、透明度、動畫效果(如淡入淡出、旋轉(zhuǎn))等(但并不限定于此,還可包括其它常用的一些畫面顯示參數(shù)),這些參數(shù)均可以修改與設(shè)置。所述播放控制參數(shù)主要用于控制媒體讀取單元對媒體文件的讀取,例如,控制生成輔助視窗的媒體文件每隔5分鐘讀取播放一次,與主視頻媒體文件同時讀取并播放、或者在主視窗播放文件在連接、下載和緩沖時讀取播放等。所述界面管理單元將與兩個媒體源對應(yīng)的兩個界面顯示信息(或稱界面元素)傳輸?shù)揭曨l展現(xiàn)單元。
所述兩個媒體源讀取單元,用于分別根據(jù)各個媒體源地址,讀取媒體文件(包括媒體流),并對媒體文件進(jìn)行解碼,生成對應(yīng)的視頻幀數(shù)據(jù)和音頻數(shù)據(jù),并將所述視頻幀數(shù)據(jù)傳送至視頻展現(xiàn)單元。
所述視頻展現(xiàn)單元,用于將所述至少兩個媒體源讀取單元生成的視頻幀顯示到同一屏幕的不同視窗上,并以其中一個視窗作為主視窗,以所述主視窗以外的窗口作為輔助視窗;所述音頻展示單元,用于選擇性地接收兩路音頻脈沖調(diào)制數(shù)據(jù)中的一路進(jìn)行播放。例如,可以選擇與主視窗播放的視頻對應(yīng)的音頻脈沖調(diào)制數(shù)據(jù)進(jìn)行播放。
通過在計算機(jī)中設(shè)置如上單元,就可以實現(xiàn)視頻的畫中畫播放。
以上具體實施方式
僅用于說明本發(fā)明,而非用于限定本發(fā)明。凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種計算機(jī)的多視頻播放方法,其特征在于,該方法包括如下步驟從遠(yuǎn)端或本地接收至少兩個媒體源信息;根據(jù)所述至少兩個媒體源的地址讀取對應(yīng)的媒體,并對媒體進(jìn)行解碼,各自生成一路視頻幀數(shù)據(jù)和一路音頻數(shù)據(jù);將解碼生成的至少兩路視頻幀顯示到同一屏幕的不同視窗上,并以其中一個視窗作為主視窗,以所述主視窗以外的窗口作為輔助視窗;選擇與主視窗中的視頻幀對應(yīng)的音頻脈沖調(diào)制數(shù)據(jù)進(jìn)行播放輸出。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述的至少兩路視頻幀是通過調(diào)用D3D的接口顯示到屏幕的不同視窗上。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于設(shè)置所述D3D接口的顯示刷新頻率為25幀/秒。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于該方法還包括預(yù)先設(shè)置界面顯示參數(shù),以根據(jù)所述界面顯示參數(shù)輸出播放視頻。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述界面顯示參數(shù)包括視頻的大小、位置、透明度和/或動畫效果信息。
6.根據(jù)權(quán)利要求1所述的方法,其特征在于該方法還包括預(yù)先設(shè)置媒體讀取控制參數(shù),以根據(jù)該控制信息控制各個媒體的讀取。
7.根據(jù)權(quán)利要求6所述的方法,其特征在于所述媒體讀取控制參數(shù)包括媒體地址及讀取時間或頻率控制信息。
8.根據(jù)權(quán)利要求1所述的方法,其特征在于所述媒體包括視頻流和媒體文件,媒體文件包括視頻、音頻、FLASH、文字和圖片。
9.根據(jù)權(quán)利要求1所述的方法,其特征在于該方法還包括在所述視頻幀上設(shè)置超級鏈接。
10.根據(jù)權(quán)利要求1所述的方法,其特征在于該方法還包括設(shè)置鼠標(biāo)或鍵盤的快捷鍵,以切換主視窗和輔視窗。
11.根據(jù)權(quán)利要求4或6所述的方法,其特征在于所述參數(shù)通過XML格式配置文件、命令行、用戶指定方式進(jìn)行配置。
12.根據(jù)權(quán)利要求1所述的方法,其特征在于所述主視窗和輔助視窗以疊加或并排的方式進(jìn)行顯示。
13.一種計算機(jī)中的多視頻播放裝置,其特征在于,該裝置包括界面管理單元、至少兩個媒體源讀取單元、視頻展現(xiàn)單元及音頻展現(xiàn)單元;所述界面管理單元用于從遠(yuǎn)端或本地接收至少兩個媒體源信息,并根據(jù)所述的媒體源信息設(shè)置媒體地址;所述媒體源讀取單元,用于接收媒體地址,讀取所述媒體,并對媒體進(jìn)行解碼,生成視頻幀數(shù)據(jù)和音頻數(shù)據(jù),并將所述視頻幀數(shù)據(jù)傳送至視頻展現(xiàn)單元;所述視頻展現(xiàn)單元,用于將所述至少兩個媒體源讀取單元生成的視頻幀顯示到同一屏幕的不同視窗上,并以其中一個視窗作為主視窗,以主視窗以外的窗口作為輔助視窗;所述音頻展示單元,用于接收與主視窗中的視頻幀對應(yīng)的音頻數(shù)據(jù),并進(jìn)行播放。
14.根據(jù)權(quán)利要求13所述的裝置,其特征在于所述界面管理單元還用于預(yù)先設(shè)置界面顯示參數(shù),并將所述的界面顯示參數(shù)傳輸至所述視頻展現(xiàn)單元,以根據(jù)所述界面顯示參數(shù)輸出播放視頻。
15.根據(jù)權(quán)利要求14所述的裝置,其特征在于所述界面顯示參數(shù)包括視頻的大小、位置、透明度和/或動畫效果信息。
16.根據(jù)權(quán)利要求13所述的裝置,其特征在于所述界面管理單元還用于設(shè)置媒體讀取控制參數(shù),以根據(jù)該控制信息控制各個媒體的讀取。
17.根據(jù)權(quán)利要求16所述的裝置,其特征在于所述媒體讀取控制參數(shù)包括媒體讀取時間或頻率控制信息。
18.根據(jù)權(quán)利要求13所述的裝置,其特征在于所述視頻展現(xiàn)單元通過調(diào)用D3D接口將所述視頻幀顯示到屏幕的視窗上。
19.根據(jù)權(quán)利要求18所述的裝置,其特征在于所述D3D接口的顯示刷新頻率為25幀/秒。
20.根據(jù)權(quán)利要求13所述的裝置,其特征在于所述媒體包括視頻流和媒體文件,媒體文件包括視頻、音頻、FLASH、文字和圖片。
全文摘要
本發(fā)明提供一種計算機(jī)的多視頻播放方法及裝置,所述方法包括從遠(yuǎn)端或本地接收至少兩個媒體源信息;根據(jù)所述至少兩個媒體源的地址讀取對應(yīng)的媒體,并對媒體進(jìn)行解碼,各自生成一路視頻幀數(shù)據(jù)和一路音頻數(shù)據(jù);將解碼生成的至少兩路視頻幀顯示到同一屏幕的不同視窗上,并以其中一個視窗作為主視窗,以所述主視窗以外的窗口作為輔助視窗;選擇與主視窗中的視頻幀對應(yīng)的音頻數(shù)據(jù)進(jìn)行播放輸出。本發(fā)明實現(xiàn)了計算機(jī)上多視頻播放的畫中畫功能,極大地提高了用戶體驗,并擴(kuò)展了視頻的應(yīng)用和服務(wù),擴(kuò)大了商業(yè)市場。
文檔編號H04N5/45GK1997153SQ200610063668
公開日2007年7月11日 申請日期2006年12月31日 優(yōu)先權(quán)日2006年12月31日
發(fā)明者陳俊, 邱向彤, 梁炬 申請人:北京衡準(zhǔn)科技有限公司