999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

DTV多節目傳送流實時多畫面播放軟件設計

2014-07-02 00:29:45褚晶輝劉子玉
電視技術 2014年21期
關鍵詞:設計

閔 行,褚晶輝,劉子玉,俞 瀅

(天津大學 電子信息工程學院,天津 300072)

DTV多節目傳送流實時多畫面播放軟件設計

閔 行,褚晶輝,劉子玉,俞 瀅

(天津大學 電子信息工程學院,天津 300072)

設計了一種實時播放數字電視(DTV)傳送流的軟件,支持多達16路節目的解碼和多畫面顯示。該設計利用商用的數字電視傳送流采集卡將碼流輸入到計算機內存中,然后利用FFmpeg開源庫實現對傳送流的解復用和多路視頻解碼,最后利用SDL開源庫將解碼后的圖像以多畫面的形式顯示在屏幕上。該設計提供了一種低成本的數字電視播出質量監測手段,軟件也具有較高的可移植性。

多節目傳送流;多畫面顯示;FFmpeg;SDL

隨著數字電視行業的迅猛發展,以及電視頻道的增多,對數字電視頻道播出質量監測的要求也越來越高。模擬電視時代,對于多路視頻監測多采用CRT顯示器構成的電視墻;在數字電視系統中,常見的方案也是將多個硬件解碼器的輸出接到電視墻上,此類方法的成本較高,不能充分發揮數字電視的優勢,而采集數字電視傳送流并直接進行多路視頻解碼和顯示的設計方案具有較大的硬件成本優勢和更大的靈活性[1]。

目前,我國的數字電視系統采用MPEG-2標準系統層規定的傳送流(Transport Stream,TS)格式對多路數字電視節目進行復用形成基帶信號(多節目傳送流,MPTS)。本文實現的方案首先利用商用的數字電視傳送流采集卡將碼流輸入到計算機內存中,再利用FFmpeg開源庫實現對傳送流的解復用和多路視頻解碼,利用SDL開源庫將解碼后的圖像以多畫面的形式顯示。

1 FFmpeg多路視頻解碼

FFmpeg是一款支持多種格式音頻與視頻播放、錄制、轉換和串流功能的自由軟件,它包含了目前領先的音頻、視頻編碼庫libavcodec,對大部分格式的視頻編碼都有良好的支持,VLC等多款開源播放器也都用到了FFm?peg。雖然FFmpeg是在Linux下開發的,對于GCC的依賴性非常強,但是可以在Windows等大多數操作系統下編譯,保證了其良好的可移植性。本文設計主要使用FFm?peg進行傳送流解復用和視頻解碼,具體過程如下:

在解碼之前,先調用av_register_all()初始化FFmpeg庫,注冊所有容器格式和解碼器。初始化結構體AVFor?matContext作為輸入輸出容器,將數字電視傳輸碼流保存到計算機的內存中,調用avformat_open_input()讀取計算機內存中TS碼流的頭部信息保存到容器中。結構體AV?CodecContext是一個描述編解碼器上下文的數據結構,包含了眾多編解碼器需要的參數信息,例如,視音頻流的個數、時長、比特率、文件名以及視音頻流數據本身等。將TS碼流中的視頻流與音頻流進行分離,讀取包括視頻流個數在內的視頻流信息,使用avcodec_open2()打開解碼器,avcodec_alloc_frame()為解碼幀分配內存,不斷地從碼流中提取視頻流幀數據,并調用FFmpeg的解碼核心函數avcodec_decode_video2()完成單線程的視頻解碼的全過程[2]。

考慮到要實現多畫面實時播放多個視頻流,本文采用了多線程的設計,根據TS碼流中視頻流的個數確定線程數量,每個線程獨立完成一路視頻的解碼與顯示,提高系統資源的利用率。此外,在此之前還需要創建一個獨立的線程,以便將來自數字電視傳送流采集卡的TS碼流保存至計算機內存中,供視頻解碼使用[3]。

2 SDL多畫面顯示

SDL是一套跨平臺支持多操作系統的開源多媒體開發庫,是各種多媒體應用與操作系統之間的接口。SDL共包括8個子系統,在視頻處理子系統中,要顯示的視頻區域被當作一塊視頻緩沖區,也就是一塊內存區域,SDL可以對該區域進行讀寫。視頻緩沖區內的最小單位是像素,SDL可以對視頻區域內的任意一個像素做處理,包括改變其顏色等,緩沖區的數據更新后調用刷新函數刷新顯示,完成視頻播放的過程[4]。

本文設計了如圖1所示的共6種不同的畫面播放模式,用戶可以根據自身需求選擇單路播放或者多路播放,多路視頻播放也可根據需要選擇不同畫面、大小、主次播放,支持多達16路節目同時播放。用戶選定播放模式后,將其作為參數傳入主程序中,程序根據選擇的播放模式以及屏幕分辨率,計算多路視頻畫面的播放位置。

圖1 多畫面視頻播放模式

SDL的初始化過程主要包括以下步驟:調用SDL_CreateWindow()創建一個可以用來繪制的窗口,調用SDL_CreateRenderer()創建一個渲染器,調用SDL_Cre?ateTexture()創建紋理緩存(texture)。SDL初始化之后,就可以將FFmpeg解碼輸出的視頻幀數據作為紋理緩存的輸入,本文將視頻幀數據保存為YUV420P數據格式。根據選定的播放模式,計算每個視頻流在畫面中對應的顯示位置,不斷地將視頻幀數據寫入紋理緩存并刷新顯示,就實現了多路視頻的多畫面播放。

3 軟件實現

本文設計的軟件工作流程如圖2所示。首先,將TS碼流路徑和播放模式作為參數傳遞給主程序,主程序對TS碼流路徑進行判斷;當路徑為0時,主程序讀取通過數字電視傳輸流采集卡輸入的實時TS碼流,否則,讀取保存在本地或是某個服務器上的TS碼流文件。然后,對TS碼流進行分析,分離出視頻流和音頻流,計算視頻流的個數。根據播放模式確定每個視頻流對應的播放畫面位置。最后,為每一個視頻流創建一個獨立的視頻解碼和視頻顯示線程。在此過程中,FFmpeg開源庫提供了傳送流的解復用和視頻流的解碼方法,SDL開源庫則提供了多畫面視頻顯示方法。

圖2 軟件工作流程

4 測試結果與分析

分別使用數字電視傳送流采集卡接收數字電視廣播基帶信號(即TS碼流)和用計算機硬盤上保存的TS文件對軟件的實時解碼和離線解碼功能進行測試,支持6種預設的播放模式,其中3種模式下的測試結果如圖3所示。

實驗表明,本文設計的軟件能夠實時讀取數字電視傳送流采集卡輸入的TS碼流,或者讀取計算機存儲設備中的TS碼流文件,支持6種預設的播放模式,最多可以實現16路畫面同時播放。

圖3 模式2、模式5及模式6下的播放效果

5 結論

本文設計的數字電視傳送流多畫面播放軟件是在跨平臺的開源庫FFmpeg和SDL的基礎上實現的,經過簡單修改在Windows、Linux和Mac OS操作系統上都可以運行,相對于文獻[5-7]提出的利用Microsoft公司的Direct?Show和DXVA等Windows平臺專有技術實現的系統,其適應性與擴展性更強,因此使用更加靈活,可滿足不同的用戶需求。在數字電視行業迅猛發展的背景下,對于數字電視多路視頻監測的需求使得該設計具有良好的應用前景。

致謝

[1]李欣時,仲影.數字電視多畫面顯示及監控系統的實現[J].有線電視技術,2008(8):108-110.

[2]辛長春,婁小平,呂乃光.基于FFmpeg的遠程視頻監控系統編解碼[J].電子技術,2013(1):3-5.

[3]李科,李璐,蘭時勇.基于FFmpeg和SDL實現多路實時流變換及播放[J].計算機技術與發展,2014(4):65-68.

[4]蔣鵬,劉玓.基于SDL庫的跨平臺多媒體應用[J].福建電腦,2003(5):39-40.

[5] 尚青青,朱秀昌.高清視頻監控中心的設計與實現[J].電視技術,2013,37(11):183-187.

[6]蘇俊峰,朱秀昌.基于DXVA的多路H.264高清視頻解碼器的實現[J].電視技術,2011,35(18):30-33.

[7]高譽菊,呂鹍,張剛.Windows平臺上AVS視頻監控客戶端的實現[J].電視技術,2014,38(11):94-96.

Design of Real-time M ulti-screen Decoding Software for DTV M ulti-program Transport Stream

MIN Hang,CHU Jinghui,LIU Ziyu,YU Ying
(School of Electronic Information Engineering,Tianjin University,Tianjin 300072,China)

A software is designed to play DTV multi-program transport stream in real-time,which supports decoding up to 16 programs and multi-screen display.The software acquires transport stream into the computer memory with a commercial digital TV transport stream capture card,and then the stream is demultiplexed and decoded with the open-source library FFmpeg. Finally,the decoded pictures are displayed on the screen in a multi-screen layout with the open-source library SDL.The design provides a low-cost method to monitor the quality of digital television broadcasting,and the software is highly portable.

MPTS;multi-screen display;FFmpeg;SDL

TN949.1

A

閔 行,碩士生,研究方向為數字多媒體技術和模式識別;

褚晶輝,博士,副教授,研究方向為數字多媒體技術和模式識別;

劉子玉,碩士生,研究方向為數字多媒體技術和模式識別;

俞 瀅,碩士生,研究方向為數字多媒體技術和模式識別。

??健男

2014-08-11

【本文獻信息】閔行,褚晶輝,劉子玉,等.DTV多節目傳送流實時多畫面播放軟件設計[J].電視技術,2014,38(21).

國家自然科學基金項目(61271069)

猜你喜歡
設計
二十四節氣在平面廣告設計中的應用
河北畫報(2020年8期)2020-10-27 02:54:06
何為設計的守護之道?
現代裝飾(2020年7期)2020-07-27 01:27:42
《豐收的喜悅展示設計》
流行色(2020年1期)2020-04-28 11:16:38
基于PWM的伺服控制系統設計
電子制作(2019年19期)2019-11-23 08:41:36
基于89C52的32只三色LED搖搖棒設計
電子制作(2019年15期)2019-08-27 01:11:50
基于ICL8038的波形發生器仿真設計
電子制作(2019年7期)2019-04-25 13:18:16
瞞天過海——仿生設計萌到家
藝術啟蒙(2018年7期)2018-08-23 09:14:18
設計秀
海峽姐妹(2017年7期)2017-07-31 19:08:17
有種設計叫而專
Coco薇(2017年5期)2017-06-05 08:53:16
從平面設計到“設計健康”
商周刊(2017年26期)2017-04-25 08:13:04
主站蜘蛛池模板: 亚洲乱伦视频| 19国产精品麻豆免费观看| 亚洲天堂网2014| 免费女人18毛片a级毛片视频| 国产鲁鲁视频在线观看| 在线免费a视频| 视频国产精品丝袜第一页| 精品综合久久久久久97超人该| 国产av无码日韩av无码网站| 制服丝袜亚洲| 日韩成人高清无码| 香蕉在线视频网站| 久久综合五月婷婷| 毛片国产精品完整版| 国产成人无码Av在线播放无广告| 久久精品视频一| 亚洲天天更新| 91精品国产无线乱码在线| av无码久久精品| 91成人免费观看在线观看| 色婷婷综合在线| 九九这里只有精品视频| 国产精品va| 人妻中文久热无码丝袜| 91视频首页| 国产精品香蕉在线| 乱人伦中文视频在线观看免费| 中文精品久久久久国产网址| 伦精品一区二区三区视频| 国产区人妖精品人妖精品视频| 麻豆精品在线播放| 激情综合图区| 色婷婷亚洲综合五月| 一级成人a毛片免费播放| 三上悠亚一区二区| 无码精品国产dvd在线观看9久 | 国产三级毛片| 老司机午夜精品视频你懂的| 久久美女精品| 国产玖玖玖精品视频| 精品国产免费观看一区| 亚洲三级视频在线观看| 2020极品精品国产 | 第一页亚洲| 日本高清在线看免费观看| 五月天婷婷网亚洲综合在线| 免费在线观看av| 十八禁美女裸体网站| 久久永久免费人妻精品| 乱人伦视频中文字幕在线| 久久久精品国产SM调教网站| 国产亚洲精| 中文无码精品a∨在线观看| 91久草视频| 国产在线精品99一区不卡| 国产免费精彩视频| 亚洲最大福利网站| 成人年鲁鲁在线观看视频| 九色在线观看视频| 日韩色图在线观看| 亚洲人免费视频| 久久99久久无码毛片一区二区| 国产另类视频| 国产丝袜无码精品| 色亚洲成人| 欧美一级在线| 国产精品入口麻豆| 日本午夜影院| 国产极品美女在线播放| 丁香五月激情图片| 91麻豆国产精品91久久久| 亚洲浓毛av| 欧美色视频日本| 呦视频在线一区二区三区| 精品国产成人av免费| 99精品免费在线| V一区无码内射国产| 亚洲AⅤ波多系列中文字幕| 美女免费精品高清毛片在线视| 国产幂在线无码精品| 国产主播喷水| 老色鬼久久亚洲AV综合|