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
主站蜘蛛池模板: 婷婷亚洲天堂| 色婷婷成人| 中文字幕一区二区人妻电影| 97se亚洲综合在线天天| 国产真实乱人视频| 亚洲永久免费网站| 亚洲高清在线天堂精品| 久久综合丝袜日本网| 亚洲成年人网| 在线观看欧美国产| 亚洲无线观看| 久久婷婷五月综合色一区二区| 91精品小视频| 亚洲 日韩 激情 无码 中出| 亚洲精品国产精品乱码不卞| 极品国产一区二区三区| 波多野结衣一区二区三区AV| 精品一区二区无码av| 沈阳少妇高潮在线| 久久国产亚洲偷自| a毛片基地免费大全| 亚洲性影院| 久996视频精品免费观看| 激情亚洲天堂| 国产在线无码一区二区三区| 午夜视频在线观看免费网站 | 欧美国产日韩一区二区三区精品影视| 黄色在线不卡| 国模私拍一区二区| 精品国产成人av免费| 97久久免费视频| 自拍亚洲欧美精品| 欧美亚洲一二三区| 色欲不卡无码一区二区| 国产精品久久久精品三级| 久久影院一区二区h| 伊人蕉久影院| 日本国产精品一区久久久| 日韩精品亚洲一区中文字幕| 无码在线激情片| 久久久亚洲色| 狠狠综合久久| 粗大猛烈进出高潮视频无码| 91小视频在线播放| 91麻豆国产视频| 欧美亚洲一区二区三区在线| 精品无码一区二区在线观看| 波多野结衣AV无码久久一区| 五月天在线网站| 国产欧美综合在线观看第七页| 美女被操黄色视频网站| 99精品视频九九精品| 免费午夜无码18禁无码影院| 四虎精品黑人视频| 国产v精品成人免费视频71pao| 尤物特级无码毛片免费| 日韩 欧美 国产 精品 综合| 久热这里只有精品6| 亚洲成在线观看| 久久久久久久蜜桃| 91久草视频| 久草视频福利在线观看| 国产精品一区二区不卡的视频| 日本在线欧美在线| 一边摸一边做爽的视频17国产| 亚洲精品午夜天堂网页| 亚洲AV无码一区二区三区牲色| 国产日韩AV高潮在线| 一区二区三区国产| 啪啪永久免费av| 亚洲国产精品VA在线看黑人| 精品久久久久成人码免费动漫| 九九热这里只有国产精品| 亚洲国产黄色| 久久无码av三级| 国产亚洲日韩av在线| 亚洲天堂视频在线观看免费| 潮喷在线无码白浆| 国产熟睡乱子伦视频网站| 日韩经典精品无码一区二区| 狠狠躁天天躁夜夜躁婷婷| 亚洲中文字幕无码mv|