專利名稱:一種在線視頻中插播Flash的方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及網(wǎng)絡(luò)通信技術(shù),特別涉及一種在線視頻中插播Flash的方法和 裝置。
背景技術(shù):
隨著多媒體和網(wǎng)絡(luò)通訊技術(shù)的發(fā)展,各種在線視頻播放應(yīng)用已經(jīng)越來越普及,許多用戶都通過網(wǎng)絡(luò)觀看各種視頻內(nèi)容。目前,通過網(wǎng)絡(luò)觀看視頻的用戶不斷地增多,各種新興的互聯(lián)網(wǎng)產(chǎn)品也大 量出現(xiàn),比如視頻分享、在線電影播放、在線電視等等。由于視頻播放時所 具有的視覺獨(dú)占性,在視頻內(nèi)容里增加廣告內(nèi)容已經(jīng)成為了 一種很現(xiàn)實(shí)的可以 產(chǎn)生價值的需求所在?,F(xiàn)有的在視頻內(nèi)容中增加廣告內(nèi)容的方法是在客戶端中,采用 一種實(shí)現(xiàn) Flash動畫內(nèi)容的疊加的方法實(shí)現(xiàn)的,具體的步驟包括1 )創(chuàng)建一個獨(dú)立于視頻播放窗口的懸浮窗口 。
2 )在懸浮窗口中放置一個Flash播放控件播放Flash動畫。 通過響應(yīng)窗口縮放改變懸浮窗口的大小,通過移動的"視窗"操作系統(tǒng)(Windows)消息改變懸浮窗口的位置,實(shí)現(xiàn)在線視頻中播放Flash動畫。但是目前的在線視頻中播放Flash動畫的方法,由于視頻播放和Flash播 放是在兩個獨(dú)立窗口中進(jìn)行,不利于對視頻播放和Flash播放進(jìn)行控制,比如 視頻播放區(qū)域改變后(假設(shè)用戶將播放視頻由最大化變?yōu)榇翱诨?,由于Flash 動畫有延遲,無法立即同步改變。綜上所述,現(xiàn)有的在線視頻中播放Flash的方法,由于視頻播放和Flash 播放是在兩個獨(dú)立窗口中進(jìn)行,不利于對視頻播放和Flash播放進(jìn)行控制
發(fā)明內(nèi)容
本發(fā)明提供一種在線視頻中插播Flash的方法和裝置,用以解決現(xiàn)有技術(shù) 存在的在線視頻中插播Flash時,由于視頻播放和Flash播放是在兩個獨(dú)立窗 口中進(jìn)行,不利于對視頻播放和Flash播放進(jìn)行控制的問題。 本發(fā)明實(shí)施例提供的一種在線視頻中插播Flash的方法包括 將需要插播的Flash的內(nèi)容轉(zhuǎn)換成位圖; 將轉(zhuǎn)換后的所述位圖與^L頻內(nèi)容進(jìn)行疊加,并輸出。 本發(fā)明實(shí)施例提供的一種在線視頻中插播Flash的裝置包括 轉(zhuǎn)換模塊,用于將需要插播的Flash的內(nèi)容轉(zhuǎn)換成位圖; 疊加模塊,用于將轉(zhuǎn)換后的所述位圖與視頻內(nèi)容進(jìn)行疊加,并輸出。 本發(fā)明實(shí)施例將需要插播的Flash的內(nèi)容轉(zhuǎn)換成位圖;將轉(zhuǎn)換后的所述位 圖與視頻內(nèi)容進(jìn)行疊加,并輸出,從而能夠快速、方便地對視頻播放和Flash 播放進(jìn)行控制。
圖1A為本發(fā)明實(shí)施例第一種在線視頻中插播Flash的裝置結(jié)構(gòu)示意圖; 圖IB為本發(fā)明實(shí)施例第二種在線視頻中插播Flash的裝置結(jié)構(gòu)示意圖; 圖1C為本發(fā)明實(shí)施例第三種在線視頻中插播Flash的裝置結(jié)構(gòu)示意圖; 圖2為本發(fā)明實(shí)施例第一種在線視頻中插播Flash的方法流程示意圖; 圖3為本發(fā)明實(shí)施例第二種在線視頻中插播Flash的方法流程示意圖; 圖4為本發(fā)明實(shí)施例第三種在線視頻中插播Flash的方法流程示意圖; 圖5A為現(xiàn)有技術(shù)播放視頻的鏈路示意圖; 圖5B為本發(fā)明實(shí)施例播放視頻的鏈路示意圖。
具體實(shí)施例方式
在本發(fā)明實(shí)施例中,將Flash內(nèi)容轉(zhuǎn)換成與視頻流相同的4各式,并將轉(zhuǎn)換 后的Flash內(nèi)容與視頻流疊加,并輸出,實(shí)現(xiàn)了同一個窗口既顯示視頻流又顯 示Flash。下面結(jié)合說明書附圖對本發(fā)明實(shí)施例作進(jìn)一步詳細(xì)描述。如圖1A所示,本發(fā)明實(shí)施例第一種在線視頻中插播Flash的裝置包括轉(zhuǎn)換模塊10和疊加模塊20。轉(zhuǎn)換模塊10,與疊加模塊20連接,用于將需要插播的Flash的內(nèi)容轉(zhuǎn)換成位圖。其中,轉(zhuǎn)換模塊IO還可以進(jìn)一步包括創(chuàng)建模塊IOO和繪制模塊110。 創(chuàng)建模塊100,用于創(chuàng)建綁定位圖的內(nèi)存。在本實(shí)施例中,創(chuàng)建才莫塊100可以利用Windows API CreateCompatibleDC進(jìn)行創(chuàng)建。繪制模塊110,用于將Flash的當(dāng)前幀的內(nèi)容繪制到創(chuàng)建模塊100創(chuàng)建的 位圖上。疊加模塊20,與轉(zhuǎn)換模塊IO連接,用于將轉(zhuǎn)換模塊IO轉(zhuǎn)換后的位圖與視 頻內(nèi)容進(jìn)4亍疊加,并l俞出。在本實(shí)施例中,疊加模塊20在YUV顏色空間中進(jìn)行疊加,常用的方式為 疊加混合運(yùn)算。其中,本發(fā)明實(shí)施例第一種在線視頻中插播Flash的裝置還可以進(jìn)一步包 括獲取模塊30。獲取模塊30,與轉(zhuǎn)換模塊10連接,用于顯示需要插播的Flash的內(nèi)容,獲取顯示的當(dāng)前幀的內(nèi)容。獲取模塊30可以是ActiveX控件或其他能夠播放Flash內(nèi)容的軟件。 如果獲取模塊30是ActiveX控件,則轉(zhuǎn)換模塊10可以查詢ActiveX控件的IViewObj ect接口 ,通過調(diào)用IViewObj ect: :Draw創(chuàng)建綁定位圖的內(nèi)存,并將接口的內(nèi)容繪制到該內(nèi)存上。 其中,如果視頻輸出一般采用YUV格式,則本發(fā)明實(shí)施例第一種在線視 頻中插播Flash的裝置還可以進(jìn)一步包括緩存模塊40。緩存模塊40,與轉(zhuǎn)換模塊10和疊加模塊20連接,用于在轉(zhuǎn)換模塊10將 需要插播的Flash的內(nèi)容轉(zhuǎn)換成位圖之后,疊加模塊20將轉(zhuǎn)換后的位圖與視頻 內(nèi)容進(jìn)行疊加之前,從轉(zhuǎn)換的位圖中取出RGB格式的數(shù)據(jù),將RGB格式的數(shù) 據(jù)轉(zhuǎn)換成YUV格式的位圖,并進(jìn)行緩存。如果創(chuàng)建模塊100利用Windows API CreateCompatibleDC進(jìn)行創(chuàng)建,則緩 存模塊40從設(shè)備無關(guān)位圖(DIB)中取出RGB格式的數(shù)據(jù)。在本實(shí)施例中,緩存模塊40根據(jù)下面的公式將RGB格式的數(shù)據(jù)轉(zhuǎn)換為 YUV格式的位圖Y-0.299R + 0.587G + 0.114BU = -0.147R - 0.289G + 0.436BV = 0.615R-0.515G-0.100B 位圖中的RGB格式包括但不限于下列格式中的一種或幾種 RGB1、 RGB4、 RGB8、 RGB565、 RGB555、 RGB24、 RGB32、 ARGB32等。換成后的YUV格式包括但不限于下列格式中的一種或幾種YUY2、 YUYV、 YVYU、 UYVY、 AYUV、 Y41P、 Y411、 Y211、 IF09、IYUV、 YV12、 YVU9、 YUV411、 YUV420等。為了使轉(zhuǎn)換后的YUV格式與視頻內(nèi)容更易于重疊, 一般都將轉(zhuǎn)換為YV12格式。其中,疊加模塊20還可以進(jìn)一步包括第一處理模塊200和第一輸出模 塊210。第一處理模塊200,用于將緩存模塊40中的YUV格式的位圖按存儲的順 序與視頻內(nèi)容進(jìn)行疊加。第一輸出模塊210,用于輸出第一處理模塊200疊加后的視頻。
其中,疊加模塊20還可以進(jìn)一步包括第三處理模塊220。 第三處理模塊220,用于根據(jù)設(shè)定的透明值,對轉(zhuǎn)換模塊IO轉(zhuǎn)換后的位圖 進(jìn)4亍處理。則第 一處理模塊第三處理模塊220將轉(zhuǎn)換后的位圖按存儲順序與視頻內(nèi)容 進(jìn)行疊力口。其中,本發(fā)明實(shí)施例第一種在線視頻中插播Flash的裝置還可以進(jìn)一步包 括第一判斷模塊50。第一判斷模塊50,與疊加模塊20、獲取模塊30和緩存模塊40連接,用 于在緩存模塊40將YUV格式的位圖進(jìn)行緩存之后,疊加模塊20將轉(zhuǎn)換后的 位圖與視頻內(nèi)容進(jìn)行疊加之前,查看當(dāng)前幀是否是最后一幀,如果是,則通知 疊加模塊將轉(zhuǎn)換后的位圖與視頻內(nèi)容進(jìn)行疊加;否則通知獲取模塊30繼續(xù)獲取顯示的下一幀的內(nèi)容。在本發(fā)明實(shí)施例中,如果裝置中有第一判斷模塊50,則疊加模塊20中包 括第一處理模塊200和第 一輸出模塊210。如果裝置中沒有第 一判斷模塊50, 則疊加模塊20還可以進(jìn)一步包括第二處理模塊230和第二輸出模塊240,如 圖1B所示,本發(fā)明實(shí)施例第二種在線視頻中插播Flash的裝置中,第二處理模塊230,用于將緩存中的YUV格式的位圖與視頻內(nèi)容進(jìn)行疊加。第二輸出模塊240,用于輸出第二處理模塊230疊加后的視頻。 則本發(fā)明實(shí)施例第二種在線視頻中插播Flash的裝置還可以進(jìn)一步包括 第二判斷模塊60。第二判斷模塊60,與疊加模塊20和獲取模塊30連接,用于若當(dāng)前幀不是 最后一幀,則在疊加模塊20輸出視頻后,通知獲取模塊30繼續(xù)獲取顯示的下 一幀的內(nèi)容。本發(fā)明實(shí)施例第二種在線視頻中插播Flash的裝置適用于Flash內(nèi)容較多 的情況。
當(dāng)然,有一種實(shí)施方式是將圖1A和圖1B裝置合起來使用,如圖1C所示, 本發(fā)明實(shí)施例第三種在線視頻中插播Flash的裝置中,有圖1A所有的模塊, 還有圖1B的第二判斷模塊60、第二處理模塊230以及第二輸出模塊240。在實(shí)現(xiàn)過程中,裝置可以根據(jù)Flash的內(nèi)容,自由進(jìn)行切換,比如如果 Flash的內(nèi)容較少,則選擇圖1A的模塊進(jìn)行工作;如果Flash的內(nèi)容較多,則 選擇圖IB的模塊進(jìn)行工作。如圖2所示,本發(fā)明實(shí)施例第一種在線視頻中插播Flash的方法包括下列 步驟步驟201 、將獲取的Flash的內(nèi)容轉(zhuǎn)換成位圖。 其中,步驟201還可以進(jìn)一步包括將獲取的Flash的當(dāng)前幀的內(nèi)容繪制到綁定位圖的內(nèi)存上。 在本實(shí)施例中,可以利用Windows API CreateCompatibleDC創(chuàng)建一個綁定 了位圖的內(nèi)存,將獲取的Flash的當(dāng)前幀的繪制到該內(nèi)存上。 步驟202、將轉(zhuǎn)換后的位圖與視頻內(nèi)容進(jìn)行疊加,并輸出。 在本實(shí)施例中還可以設(shè)定位圖的透明值,則步驟202還可以進(jìn)一步包括 根據(jù)設(shè)定的透明值,對轉(zhuǎn)換后的位圖進(jìn)行處理; 將處理后的位圖與視頻內(nèi)容進(jìn)行疊加。其中,可以根據(jù)下列方式確定轉(zhuǎn)換后的位圖疊加到視頻內(nèi)容的位置以及透明值的大小用戶設(shè)定,預(yù)先設(shè)定,根據(jù)視頻內(nèi)容確定等等。其中,步驟201之前還可以進(jìn)一步包括顯示需要插播的Flash的內(nèi)容,獲取顯示的當(dāng)前幀的內(nèi)容。在本實(shí)施例中,可以采用ActiveX控件或其他能夠播放Flash內(nèi)容的軟件,顯示需要插播Flash的內(nèi)容。如果是ActiveX控件,則步驟201中,可以查詢ActiveX控件的IViewObject接口,通過調(diào)用IViewObject::Draw將接口的內(nèi)容繪制到綁定位圖的內(nèi)存上。
其中,步驟201和步驟202之間還可以進(jìn)一步包括 從位圖中取出RGB格式的數(shù)據(jù);將RGB格式的數(shù)據(jù)轉(zhuǎn)換成YUV格式的位圖,并進(jìn)行緩存,Y = 0.299R + 0.587G + 0.114B U = -0.147R - 0.289G + 0.436BV = 0.615R-0.515G-0.100B位圖中的RGB格式包括但不限于下列格式中的 一種或幾種RGB1、 RGB4、 RGB8、 RGB565、 RGB555、 RGB24、 RGB32、 ARGB32等。換成后的YUV格式包括但不限于下列格式中的 一種或幾種YUY2、 YUYV、 YVYU、 UYVY、 AYUV、 Y41P、 Y411、 Y211、 IF09、IYUV、 YV12、 YVU9、 YUV411、 YUV420等。為了使轉(zhuǎn)換后的YUV格式與視頻內(nèi)容更易于重疊, 一般都將轉(zhuǎn)換為YV12格式。在本實(shí)施例中,將RGB格式的數(shù)據(jù)轉(zhuǎn)換成YUV格式的位圖,并進(jìn)行緩存 之后,步驟202之前還可以進(jìn)一步包括步驟a201、查看所述當(dāng)前幀是否是最后一幀,如果是,則將轉(zhuǎn)換后的所述 位圖與視頻內(nèi)容進(jìn)行疊加,否則繼續(xù)獲取顯示的下一幀的內(nèi)容。則步驟202中,將緩存中的YUV格式的位圖按存儲的順序與視頻內(nèi)容進(jìn) 行疊力口。在本實(shí)施例中,如果步驟202中,將緩存中的YUV格式的位圖與視頻內(nèi) 容進(jìn)行疊加,則步驟202之后還可以進(jìn)一步包括步驟a202、查看當(dāng)前幀是否是最后一幀,如果是,則結(jié)束流程;否則,繼 續(xù)獲取顯示的下一幀的內(nèi)容。由于緩存位圖需要占用大量的內(nèi)存,所以對于Flash內(nèi)容較多時,可以選
擇步驟a202的流程,即轉(zhuǎn)換一張位圖就疊加一張位圖;而步驟a201的流程是 和Flash內(nèi)容較少的情況,即將所有的Flash內(nèi)容全部轉(zhuǎn)換成位圖后,在進(jìn)行 疊加,在實(shí)現(xiàn)過程中選擇哪種流程的方式包括但不限于下列方式中的 一種
根據(jù)Flash的內(nèi)容大小決定,根據(jù)用戶的設(shè)置決定,根據(jù)用戶終端的內(nèi)存 容量決定等等。
—(明實(shí)施例的方^ 如圖3所示,本發(fā)明實(shí)施例第二種在線視頻中插播Flash的方法包括下列 步驟
在本實(shí)施例中,F(xiàn)lash的內(nèi)容較小,即采用將所有的Flash內(nèi)容全部轉(zhuǎn)換成 位圖后,在進(jìn)行疊加的方法。
步驟300、利用ActiveX控件播放Flash的內(nèi)容。
步驟301 、跳轉(zhuǎn)到Flash的第 一幀。
步驟302、查詢ActiveX控件的IViewObject接口 。
步驟303 、通過調(diào)用IViewObject::Draw將獲取的Flash的當(dāng)前幀的內(nèi)容繪 制到綁定了內(nèi)存的位圖上。
步驟304、從DIB中取出RGB格式的位圖數(shù)據(jù),轉(zhuǎn)換成YV12格式的位圖。
步驟305、按照轉(zhuǎn)換的順序緩存YV12格式的位圖。 步驟306、查看當(dāng)前幀是否是最后一幀,如果是,則執(zhí)行步驟308;否貝'J, 執(zhí)行步驟307。
步驟307、跳轉(zhuǎn)到下一幀,并執(zhí)行步驟302。
步驟308、根據(jù)透明值,將緩存中的YV12格式的位圖按存儲的順序與視 頻內(nèi)容在YUV顏色空間中進(jìn)行疊加,并輸出。
如圖4所示,本發(fā)明實(shí)施例第三種在線視頻中插播Flash的方法包括下列 步驟
在本實(shí)施例中,F(xiàn)lash的內(nèi)容較大,即采用轉(zhuǎn)換一張位圖就疊加一張位圖
的方法。
步驟400、利用ActiveX控件播放Flash的內(nèi)容。
步驟401、跳轉(zhuǎn)到Flash的第一幀。
步驟402、查詢ActiveX控件的IViewObject接口 。
步驟403 、通過調(diào)用IViewObject::Draw將獲取的Flash的當(dāng)前幀的內(nèi)容繪 制到綁定了內(nèi)存的位圖上。
步驟404、從DIB中取出RGB格式的位圖數(shù)據(jù),轉(zhuǎn)換成YV12格式的位圖。
步驟405、緩存YV12格式的位圖。
步驟406、根據(jù)透明值,將緩存中的YV12格式的位圖與視頻內(nèi)容在YUV 顏色空間中進(jìn)行疊加,并輸出。
步驟407、查看當(dāng)前幀是否是最后一幀,如果是,則結(jié)束本流程;否則, 執(zhí)行步驟408。
步驟408、跳轉(zhuǎn)到下一幀,并執(zhí)行步驟402。
其中,步驟405中,會先刪除上一幀轉(zhuǎn)換的YV12格式的位圖,在緩存當(dāng) 前幀轉(zhuǎn)換的YV12格式的位圖。當(dāng)然,也可以設(shè)定緩存YV12格式的數(shù)量,采 用先進(jìn)先出方式進(jìn)行緩存。
需要說明的是,在具體實(shí)施過程中,將圖3和圖4合并起來,根據(jù)設(shè)定的 條件決定使用哪個流程;使用其他播放Flash軟件獲取Flash內(nèi)容,并進(jìn)行轉(zhuǎn) 換和疊加的方法與圖2 -圖4所示的方法類似,不再贅述。
在Windows平臺上,定義了如何利用標(biāo)準(zhǔn)組件來處理流媒體數(shù)據(jù),這些組 件稱為過濾器(Filter),將各種Filter組合在一起形成一個鏈路,即可對各種 流媒體進(jìn)行處理。
如圖5A所示,現(xiàn)有技術(shù)播放視頻的鏈路示意圖中,首先由原始濾波器 (Source Filter)從文件或網(wǎng)絡(luò)獲取視頻數(shù)據(jù),形成字節(jié)流;再由分離濾波器 (Splitter Filter)將4見頻流和音頻流分開,分別由視頻解碼器(Video Decoder)
和音頻解碼器(Audio Decoder)對視頻流和音頻流進(jìn)4亍解碼;最后由一見頻輸出 解碼器(Video Render Filter)和音頻輸出解碼器(Audio Render Filter)分別輸 出圖像和聲音。
本發(fā)明實(shí)施例可以在圖5A的基礎(chǔ)上,通過一個轉(zhuǎn)換濾波器(Transform Filter)完成位圖的疊加,如圖5B所示,本發(fā)明實(shí)施例播放視頻的鏈路示意圖 中,
以上鏈路建立完成后,播放視頻時,每幀視頻圖像在輸出前都會先輸出到 Transform Filter,由于Transform Filter在Video Render Filter之前,所以在llr出 視頻流之前,可以從Flash轉(zhuǎn)換得到的位圖中取出相應(yīng)的YV12格式的位圖, 和當(dāng)前視頻幀的位圖完成疊加后,由Video Render Filter輸出新的視頻幀的位 圖。
本領(lǐng)域的技術(shù)人員應(yīng)該明白,上述的本發(fā)明實(shí)施例中的各模塊或各步驟可 以用通用的計算裝置來實(shí)現(xiàn),它們可以集中在單個的計算裝置上,或者分布在 多個計算裝置所組成的網(wǎng)絡(luò)上,可選地,它們可以用計算裝置可執(zhí)行的程序代 碼來實(shí)現(xiàn),從而,可以將它們存儲在存儲裝置中由計算裝置來執(zhí)行,或者將它 們分別制作成各個集成電路模塊,或者將它們中的多個模塊或步驟制作成單個 集成電路模塊來實(shí)現(xiàn)。這樣,本發(fā)明不限制于任何特定的硬件和軟件結(jié)合。應(yīng)脫離本發(fā)明的精神保護(hù)范圍。
從上述實(shí)施例中可以看出本發(fā)明實(shí)施例將需要插播的Flash的內(nèi)容轉(zhuǎn)換 成位圖;將轉(zhuǎn)換后的所述位圖與視頻內(nèi)容進(jìn)行疊加,并輸出,從而能夠快速、 方便地對視頻播放和Flash播放進(jìn)行控制,并且對于Flash播放,能夠給用戶 帶來更好的視覺效果,在Flash播放的尺寸和位置上可以更靈活的配置,消除 了移動窗口帶來的重繪和托影的現(xiàn)象。
精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等
同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動和變型在內(nèi)。
權(quán)利要求
1、一種在線視頻中插播Flash的方法,其特征在于,該方法包括將需要插播的Flash的內(nèi)容轉(zhuǎn)換成位圖;將轉(zhuǎn)換后的所述位圖與視頻內(nèi)容進(jìn)行疊加,并輸出。
2、 如權(quán)利要求l所述的方法,其特征在于,所述需要插播的Flash的內(nèi)容 是根據(jù)下列步驟獲取的顯示需要插播的Flash的內(nèi)容,獲取顯示的當(dāng)前幀的內(nèi)容。
3、 如權(quán)利要求2所述的方法,其特征在于,所述將需要插播的所述Flash 的內(nèi)容轉(zhuǎn)換成位圖包括將需要插播的所述Flash的當(dāng)前幀的內(nèi)容繪制到綁定位圖的內(nèi)存上。
4、 如權(quán)利要求2或3所述的方法,其特征在于,所述將需要插播的所述 Flash的內(nèi)容轉(zhuǎn)換成位圖之后,所述將轉(zhuǎn)換后的所述位圖與視頻內(nèi)容進(jìn)行疊加 之前還包括從所述位圖中取出RGB格式的數(shù)據(jù);將RGB格式的數(shù)據(jù)轉(zhuǎn)換成YUV格式的位圖,并進(jìn)行緩存。
5、 如權(quán)利要求4所述的方法,其特征在于,所述將RGB格式的數(shù)據(jù)轉(zhuǎn)換 成YUV格式的位圖,并進(jìn)行緩存之后,所述將轉(zhuǎn)換后的所述位圖與視頻內(nèi)容 進(jìn)行疊加之前還包括查看所述當(dāng)前幀是否是最后一幀,如果是,則將轉(zhuǎn)換后的所述位圖與視頻 內(nèi)容進(jìn)行疊加,否則繼續(xù)獲取顯示的下一幀的內(nèi)容。
6、 如權(quán)利要求5所述的方法,其特征在于,所述將轉(zhuǎn)換后的所述位圖與 3見頻內(nèi)容進(jìn)行疊加包括將緩存中的YUV格式的位圖按存儲的順序與視頻內(nèi)容進(jìn)行疊加。
7、 如權(quán)利要求4所述的方法,其特征在于,所述將轉(zhuǎn)換后的所述位圖與 視頻內(nèi)容進(jìn)行疊加包括將緩存中的YUV格式的位圖與視頻內(nèi)容進(jìn)行疊加; 則所述將轉(zhuǎn)換后的所述位圖與視頻內(nèi)容進(jìn)行疊加,并輸出之后包括 若所述當(dāng)前幀不是最后一幀,則繼續(xù)獲取顯示的下一幀的內(nèi)容。
8、 如權(quán)利要求1所述的方法,其特征在于,所述將轉(zhuǎn)換后的所述位圖與 視頻內(nèi)容進(jìn)行疊加包括根據(jù)設(shè)定的透明值,對轉(zhuǎn)換后的所述位圖進(jìn)行處理; 將處理后的位圖與視頻內(nèi)容進(jìn)行疊加。
9、 一種在線視頻中插播Flash的裝置,其特征在于,該裝置包括 轉(zhuǎn)換模塊,用于將需要插播的Flash的內(nèi)容轉(zhuǎn)換成位圖; 疊加模塊,用于將轉(zhuǎn)換后的所述位圖與視頻內(nèi)容進(jìn)行疊加,并輸出。
10、 如權(quán)利要求9所述的裝置,其特征在于,所述裝置還包括 獲取模塊,用于顯示需要插播的Flash的內(nèi)容,獲取顯示的當(dāng)前幀的內(nèi)容。
11、 如權(quán)利要求IO所述的裝置,其特征在于,所述轉(zhuǎn)換模塊包括 創(chuàng)建模塊,用于創(chuàng)建綁定位圖的內(nèi)存;繪制模塊,用于將需要插播的所述Flash的當(dāng)前幀的內(nèi)容繪制到位圖上。
12、 如權(quán)利要求10或11所述的裝置,其特征在于,所述裝置還包括 緩存模塊,用于在所述轉(zhuǎn)換模塊將需要插播的所述Flash的內(nèi)容轉(zhuǎn)換成位圖之后,所述疊加模塊將轉(zhuǎn)換后的所述位圖與視頻內(nèi)容進(jìn)行疊加之前,從所述 位圖中取出RGB格式的數(shù)據(jù),將RGB格式的數(shù)據(jù)轉(zhuǎn)換成YUV格式的位圖, 并進(jìn)行緩存。
13、 如權(quán)利要求12所述的裝置,其特征在于,所述裝置還包括 第一判斷模塊,用于在所述緩存模塊將YUV格式的位圖進(jìn)行緩存之后,所述疊加模塊將轉(zhuǎn)換后的所述位圖與視頻內(nèi)容進(jìn)行疊加之前,查看所述當(dāng)前幀 是否是最后一幀,如果是,則通知所述疊加模塊將轉(zhuǎn)換后的所述位圖與視頻內(nèi) 容進(jìn)行疊加;否則通知獲取模塊繼續(xù)獲取顯示的下一幀的內(nèi)容。
14、 如權(quán)利要求13所述的裝置,其特征在于,所述疊加模塊包括 第一處理模塊,用于將緩存中的YUV格式的位圖按存儲的順序與視頻內(nèi) 容進(jìn)行疊加;第一輸出模塊,用于輸出疊加后的視頻。
15、 如權(quán)利要求12所述的裝置,其特征在于,所述疊加模塊包括 第二處理模塊,用于將緩存中的YUV格式的位圖與視頻內(nèi)容進(jìn)行疊加; 第二輸出模塊,用于輸出疊加后的視頻;則所述裝置包括第二判斷模塊,用于若所述當(dāng)前幀不是最后一幀,則在所述疊加模塊輸出 視頻后,通知所述獲取模塊繼續(xù)獲取顯示的下一幀的內(nèi)容。
16、 如權(quán)利要求9所述的裝置,其特征在于,所述疊加模塊還包括 第三處理模塊,用于根據(jù)設(shè)定的透明值,對轉(zhuǎn)換后的所述位圖進(jìn)行處理。
全文摘要
本發(fā)明實(shí)施例公開了一種在線視頻中插播Flash的方法,包括將需要插播的Flash的內(nèi)容轉(zhuǎn)換成位圖;將轉(zhuǎn)換后的所述位圖與視頻內(nèi)容進(jìn)行疊加,并輸出。通過本發(fā)明實(shí)施例解決了現(xiàn)有技術(shù)存在的在線視頻中插播Flash時,由于視頻播放和Flash播放是在兩個獨(dú)立窗口中進(jìn)行,不利于對視頻播放和Flash播放進(jìn)行控制的問題。本發(fā)明實(shí)施例同時公開了一種在線視頻中插播Flash的裝置。
文檔編號H04N5/262GK101159819SQ200710165969
公開日2008年4月9日 申請日期2007年11月9日 優(yōu)先權(quán)日2007年11月9日
發(fā)明者蔚 周, 熊曉林 申請人:深圳市迅雷網(wǎng)絡(luò)技術(shù)有限公司