亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于DirectShow的多節(jié)目片段序列的無縫播放系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

        2018-02-26 08:32:37田六方徐州電視臺(tái)
        視聽界(廣播電視技術(shù)) 2018年1期
        關(guān)鍵詞:系統(tǒng)

        田六方 徐州電視臺(tái)

        0. 引言

        在LED大屏播放零散節(jié)目的過程中,常常會(huì)在節(jié)目與節(jié)目切換時(shí)出現(xiàn)短暫的黑屏,這是由于解碼器解碼不連續(xù)引起的[1]。特別是在進(jìn)行廣告插播時(shí),節(jié)目的不斷切換,產(chǎn)生不斷的黑屏和閃爍,將嚴(yán)重影響LED大屏的視覺效果。基于這種情況,就要對(duì)零散的節(jié)目流進(jìn)行無縫拼接,其順序應(yīng)滿足當(dāng)天播放序列的要求。電視節(jié)目的拼接[2]技術(shù)是指從某一路電視信號(hào)源瞬間切換到另一路電視信號(hào)源,在電視屏幕上表現(xiàn)為一個(gè)畫面迅速轉(zhuǎn)換到另一個(gè)畫面,無黑場(chǎng)、無抖動(dòng)、無停頓的連續(xù)過程。

        自從多媒體問世以來,多媒體的開發(fā)工具也應(yīng)運(yùn)而生。DirectShow 技術(shù)是微軟公司開發(fā)的一套編程接口,架構(gòu)在DirectX 等其他的一些多媒體服務(wù)的基礎(chǔ)上[3]。DirectShow作為高效的多媒體開發(fā)系統(tǒng),其底層的硬件設(shè)備與高層的應(yīng)用程序互相影響、作用,圖1是DirectShow系統(tǒng)的框圖[4]。

        圖1 Direct Show系統(tǒng)框圖

        Direct Show使用Filter Graph模型來管理整個(gè)數(shù)據(jù)流的處理過程。Filter Graph中包含了各種Filter,各個(gè)Filter在Filter Graph Manager的統(tǒng)一控制下,按一定順序連接在一起,從而使數(shù)據(jù)在由Filter組成的鏈表中流動(dòng)[5],圖1中的箭頭表示Filter鏈表中的數(shù)據(jù)流的方向。在Direct Show系統(tǒng)框架外,是與用戶直接交互的應(yīng)用程序。應(yīng)用程序要按照一定的功能建立起相應(yīng)的Filter Graph,然后通過Filter Graph Manager來控制系統(tǒng)的數(shù)據(jù)處理過程。DirectShow能在Filter Graph運(yùn)行時(shí)接收到各種事件,并通過消息的方式發(fā)送給應(yīng)用程序。這樣,就實(shí)現(xiàn)了應(yīng)用程序與DirectShow系統(tǒng)之間的交互[6]。

        1. 程序框架設(shè)計(jì)

        為了統(tǒng)一對(duì)靜態(tài)圖片和視頻圖片進(jìn)行相同的處理,針對(duì)播放的FilterGraph進(jìn)行了統(tǒng)一封裝,為此定義了如圖2的類繼承關(guān)系。

        1.1 CPlayItem

        CPlayItem類為系統(tǒng)中播放單元的基礎(chǔ)類,主要內(nèi)容包括構(gòu)建FilterGraph的虛函數(shù)InitGraph()和播放虛函數(shù)PlayIt();這些虛函數(shù)必須在繼承類中進(jìn)行實(shí)現(xiàn)。其主要結(jié)構(gòu)如表1所示:

        圖2 播放對(duì)象各類之間的繼承關(guān)系

        表 1 CPlayItem 成員

        其中InitGraph()函數(shù)在程序加載播放序列時(shí)根據(jù)播放文件類型構(gòu)建相應(yīng)的FilterGraph;PlayIt()在合適的適合播放本對(duì)象,并根據(jù)字幕信息和播放時(shí)間控制來確定文件的起播點(diǎn)和播放長(zhǎng)度。SetPositions()函數(shù)設(shè)置該FilterGraph的播放控制。

        1.2 CPlayPic

        CPlayPic實(shí)現(xiàn)播放靜態(tài)圖片時(shí)的行為,包括渲染字幕和時(shí)長(zhǎng)控制等。由于播放靜態(tài)圖片不需要?jiǎng)?chuàng)建Filter Graph,所以其初始化函數(shù)僅僅只需直接返回即可,CPlayPic:InitGraph() 實(shí)現(xiàn)見表 2。

        表 2 CPlayPic:InitGraph() 實(shí)現(xiàn)

        在播放靜態(tài)圖片時(shí),由于需要?jiǎng)討B(tài)顯示字幕和時(shí)鐘等隨時(shí)間改變的圖像元素,所以其播放過程被實(shí)現(xiàn)為一個(gè)線程,CPlayPic:PlayIt()實(shí)現(xiàn)見表 3。

        表 3 CPlayPic:PlayIt()實(shí)現(xiàn)

        在線程InitialThreadProc_Play中的每一個(gè)循環(huán)均按順序做如下過程,播放靜態(tài)圖片的一個(gè)循環(huán)動(dòng)作見表4。

        表4 播放靜態(tài)圖片的一個(gè)循環(huán)動(dòng)作

        1.3 CPlayAVI

        CPlayAVI實(shí)現(xiàn)對(duì)視頻片段的FilterGraph的構(gòu)建和播放過程的控制。為此,該類中添加了一系列處理FilterGraph的類成員,如表5所示。

        表5 CPlayAVI中與視頻播放相關(guān)的類成員

        其中初始化FilterGraph的過程中加入攔截解碼后圖片數(shù)據(jù)流的Filter,目的是對(duì)視頻中的每一幀圖片進(jìn)行處理,包括添加字幕和時(shí)鐘等。其中CPlayAVI:InitGraph()的實(shí)現(xiàn)基本如表 6 所示。

        表 6 CPlayAVI:InitGraph()的創(chuàng)建 FilterGraph 主要流程

        Graph在播放的過程中,每幀圖像在解碼完畢后,都會(huì)調(diào)用CSampleGrabberCB_TXT類的BufferCB(double SampleTime, BYTE ? pBuffer, long BufferSize )函數(shù),在此函數(shù)內(nèi),進(jìn)行類似表4的相同過程。

        2. 多線程無縫播放

        為了實(shí)現(xiàn)各節(jié)目片段之間的無縫連接,程序在初始化節(jié)目單時(shí),將節(jié)目單中的所有播放文件按照播放順序創(chuàng)建播放列表,表7是加載節(jié)目單時(shí)創(chuàng)建播放列表代碼片段。

        表7 加載節(jié)目單時(shí)創(chuàng)建播放列表

        當(dāng)一個(gè)節(jié)目對(duì)象播放完畢時(shí),主線程會(huì)收到一個(gè)事件,此時(shí)立刻進(jìn)行下一個(gè)播放對(duì)象的播放。由于此對(duì)象的Graph已經(jīng)在初始化時(shí)渲染就位,所以播放圖像立刻出現(xiàn)在屏幕上,不會(huì)出現(xiàn)黑屏的現(xiàn)象。播放下一個(gè)對(duì)象的事件相應(yīng)如表8所示。

        LRESULT CPlayVedioDlg:OnGNotify(WPARAM w,LPARAM iScreenID){int ino =GetNextMedia(iScreenID); //下一個(gè)要播放

        的播放對(duì)象序號(hào)saPalylist[ino]->PlayIt(); //播放下一個(gè)對(duì)象}

        3.結(jié)束語

        本系統(tǒng)采用VC++語言,在DirectShow框架基礎(chǔ)上進(jìn)行開發(fā)。使用多線程進(jìn)行各個(gè)節(jié)目片段的緩沖播放,實(shí)現(xiàn)了各相鄰節(jié)目片段之間的無縫播放。本系統(tǒng)的主要目的是為了方便多個(gè)LED大屏的節(jié)目在組織管理時(shí)的靈活性。目前該系統(tǒng)已在鎮(zhèn)江廣電的多個(gè)大屏上使用,效果良好,播放順暢。能夠?qū)崿F(xiàn)每個(gè)節(jié)目、臺(tái)標(biāo)、時(shí)鐘和字母的自由組合,如圖3所示,基本達(dá)到了設(shè)計(jì)目標(biāo)。

        圖3 本系統(tǒng)實(shí)現(xiàn)了臺(tái)標(biāo)(左上)、字幕和時(shí)鐘(右上)的自由組合

        1.譚建國, 張文軍. 數(shù)字HDTVTS流無縫拼接技術(shù)研究 [J]. 通信學(xué)報(bào) ,2004,25(5):119-124.

        2. 郭淑艷. 數(shù)字電視TS流實(shí)時(shí)低延遲無縫拼接技術(shù)的研究與實(shí)現(xiàn)[D]. 廣東: 華南師范大學(xué). 2007.

        3. 趙炯, 陳力. 利用VC++實(shí)現(xiàn)基于DirectShow的視頻播放器開發(fā)[J]. 成都大學(xué)學(xué)報(bào)(自然科學(xué)版 ),2011,30(4):349-352.

        4. 孟月華, 鄧基. Direct Show技術(shù)的應(yīng)用研究與開發(fā)[J]. 計(jì)算機(jī)系統(tǒng)應(yīng)用 , 2013,22(6):196-199.

        5.謝屈波,王六森,夏定純. 基于Direct Show的圖像采集的實(shí)現(xiàn)[J].軟件導(dǎo)刊,2010,9(6):183-184.

        6. 郭昊. 基于DirectShow技術(shù)實(shí)現(xiàn)視頻采集[J]. 火控雷達(dá)技術(shù) , 2008, 37(2):97-100.

        猜你喜歡
        系統(tǒng)
        Smartflower POP 一體式光伏系統(tǒng)
        WJ-700無人機(jī)系統(tǒng)
        ZC系列無人機(jī)遙感系統(tǒng)
        基于PowerPC+FPGA顯示系統(tǒng)
        基于UG的發(fā)射箱自動(dòng)化虛擬裝配系統(tǒng)開發(fā)
        半沸制皂系統(tǒng)(下)
        FAO系統(tǒng)特有功能分析及互聯(lián)互通探討
        連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
        一德系統(tǒng) 德行天下
        PLC在多段調(diào)速系統(tǒng)中的應(yīng)用
        国产成人高清视频在线观看免费| 精品无码国产污污污免费网站| 国产成人无码A区在线观| 亚洲天堂免费一二三四区| 久久久麻豆精亚洲av麻花| 国产精品毛片一区二区三区| 久久精品亚洲乱码伦伦中文| 大胸美女吃奶爽死视频| 成人爽a毛片在线播放| 朝鲜女人大白屁股ass孕交| 欧美俄罗斯乱妇| 国产午夜精品美女裸身视频69| 一区二区三区精品免费| 97久久精品人妻人人搡人人玩| 国产成人无码区免费网站| 久草视频在线这里只有精品| 日本成人精品在线播放| 99热爱久久99热爱九九热爱| 熟女性饥渴一区二区三区| 久久精品国产亚洲一级二级| 女女同恋一区二区在线观看| 爆爽久久久一区二区又大又黄又嫩| 在线播放国产女同闺蜜| 日韩精品成人一区二区三区| 亚洲开心婷婷中文字幕| 国产精品天天在线午夜更新| 国产成人啪精品视频免费网| 丝袜美足在线视频国产在线看| 成人免费直播| 亚洲影院丰满少妇中文字幕无码| 在线精品亚洲一区二区三区| 日本在线视频www色| 嫖妓丰满肥熟妇在线精品| 激情亚洲的在线观看| 亚洲中文字幕人成乱码在线 | 国产精品成人嫩妇| 蜜桃av噜噜噜一区二区三区| 人人超碰人人爱超碰国产| 久久精品视频在线看99| 国产一区二区精品网站看黄| 丰满少妇人妻久久精品|