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

        ?

        Linux 下基于ARM9的嵌入式視頻循環(huán)采集監(jiān)控系統(tǒng)

        2010-07-25 07:16:30陳滄毅路林吉
        微型電腦應(yīng)用 2010年8期
        關(guān)鍵詞:視頻文件嵌入式編碼

        陳滄毅,路林吉

        0 引言

        目前視頻監(jiān)控和錄制主要采用攝像頭、硬盤錄像機、錄像等組成視頻監(jiān)控網(wǎng),該類視頻監(jiān)控網(wǎng)絡(luò)具有工作穩(wěn)定可靠的優(yōu)點。但是在某些特殊工作現(xiàn)場,如無人值守的倉庫、大規(guī)模的森林,以及高速的交通工具等,當(dāng)發(fā)生事故或災(zāi)情后,往往由于現(xiàn)場的破壞和時效性,而難以分清責(zé)任和分析事故原因。因此,對事故易發(fā)點的連續(xù)視頻監(jiān)控就尤為重要。

        比如在高速行駛的機動車上發(fā)生車禍,絕大多數(shù)情況需要掌握的事故原因集中在事故之前很短的一段時間。因此,分清事故責(zé)任和分析事故原因,所需要的視頻信息大部分在事故時間點之前的幾十分鐘之內(nèi)。換句話說,除了這幾十分鐘的信息,其它幾天、幾個月,甚至幾年的視頻監(jiān)控信息都屬于冗余信息。

        有鑒于此,本文提出了利用嵌入式系統(tǒng),實現(xiàn)視頻信息的循環(huán)錄制,只保留最后時刻視頻信息的便攜式連續(xù)視頻監(jiān)控系統(tǒng),并在Linux系統(tǒng)的基礎(chǔ)上得以實現(xiàn)[1]。

        1 系統(tǒng)硬件組成

        在本系統(tǒng)研究中,采用了目前比較常見的MINI2440開發(fā)板,是目前國內(nèi)性價比較高的一款學(xué)習(xí)板;它采用Samsung S3C2440為微處理器,并采用專業(yè)穩(wěn)定的CPU 內(nèi)核電源芯片和復(fù)位芯片來保證系統(tǒng)運行時的穩(wěn)定性。在處理器豐富資源的基礎(chǔ)上,對系統(tǒng)硬件進行了相關(guān)的配置和擴展,平臺配置了64MB的Flash和64MB的SDRAM,通過USB接口外接USB攝像頭和U盤,實現(xiàn)了整個硬件平臺的搭建[2]。

        2 Video4Linux視頻采集標(biāo)準(zhǔn)[3]

        Video4Linux是Linux系統(tǒng)視頻采集軟件的總接口。各種網(wǎng)絡(luò)攝像頭,視頻采集卡,電視卡以及類似的設(shè)備均歸類于視頻采集領(lǐng)域,Video4Linux為此提供了一整套相應(yīng)的API接口。由于各個設(shè)備均有自己獨立的特性,Unix系統(tǒng)均在此基礎(chǔ)上進行了抽象,本著一切均是文件的設(shè)計思想,只需要進行 open()方法即可打開設(shè)備文件,read()/write()分別是對該設(shè)備進行讀寫傳輸數(shù)據(jù),ioctl()則是對設(shè)備參數(shù)配置。

        除了 read()/write()讀寫的方法,Video4Linux特別提供了內(nèi)存映射接口 mmap()直接將設(shè)備內(nèi)存映射到用戶進程的地址空間中,這樣用戶可以直接在進程中讀寫內(nèi)存來控制設(shè)備,為視頻壓縮爭取了時間,有效地提高了視頻采集速度。

        3 采用FFmpeg庫實現(xiàn)視頻數(shù)據(jù)存儲

        FFmpeg是一個集錄制、轉(zhuǎn)換、音/視頻編碼解碼功能為一體的完整的開源解決方案。FFmpeg的開發(fā)是基于 Linux操作系統(tǒng),但是可以在大多數(shù)操作系統(tǒng)中編譯和使用,包括windows系統(tǒng)等。FFmpeg支持MPEG、DivX、MPEG-4、AC3、DV、FLV等40多種編碼,AVI、MPEG、OGG、Matroska、ASF等90多種解碼。

        FFmpeg庫支持多平臺運行,包括Linux、Windows和M ac OS等系統(tǒng)。本設(shè)計將FFmpeg移植到ARM9架構(gòu)的系統(tǒng)上,通過交叉編譯生成運行庫[4]。

        3.1 基于FFmpeg的視頻處理技術(shù)

        FFmpeg主目錄下主要有 libavcodec、libavformat和libavutil等子目錄。其中 libavcodec用于存放各個encode/decode模塊,libavformat用于存放 muxer/demuxer模塊,libavutil用于存放內(nèi)存操作等常用模塊。

        利用ffmpeg庫生成視頻文件,需要用到兩個貫穿始終的數(shù)據(jù)結(jié)構(gòu):struct AVFormatContext和struct AVStream。

        圖1 用FFmpeg庫生成視頻文件的基本流程

        struct AVFormatContext包含了一個視頻流的格式內(nèi)容,如所采用的編碼器(本文采用的是MJPEG的格式)等重要信息。而struct AVStream則包含了“流”這個概念中的一些數(shù)據(jù),比如:幀率、基本時間計量單位、首幀位置、持續(xù)時間、幀數(shù)以及幀數(shù)據(jù)本身等等。基于FFmpeg庫生成視頻文件的基本流程見圖一。

        3.2 FFmpeg在嵌入式系統(tǒng)上的交叉編譯

        為了編譯成 ARM 上執(zhí)行的二進制程序,需要對configure文件和 Makefile文件進行手動修改,./configure–help命令可以得到有用的信息。

        然后執(zhí)行make,make install。此步后,將生成所需要的二進制工具ffmpeg和ffserver。其中ffmpeg用于對媒體文件進行處理或視音頻設(shè)備進行操作,ffserver是一個http的流媒體服務(wù)器。另外生成兩個庫文件 libavcodec.so和libavformat.so。這兩個庫文件將是未來設(shè)計的重點。

        3.3 視頻循環(huán)錄制的方法

        這部分的工作是整個設(shè)計的核心。一般來說對視頻信息的循環(huán)錄制均采用日志處理的方法,即通過多文件實現(xiàn)循環(huán)錄制。這種方式經(jīng)常伴隨著一個明顯的缺陷是兩個文件中間存在視頻數(shù)據(jù)丟失現(xiàn)象。另外一種方案是通過對索引塊信息進行修改,使其達(dá)到隨機存取的能力,這種方式編程繁瑣,效果欠佳,尤其在FFmpeg體系下,時間軸控制起來涉及較底層代碼,這里不推薦采納。筆者認(rèn)為,采用第一種方案存在丟幀現(xiàn)象完全可以從軟件代碼設(shè)計有效避免,且通過該方案可以清楚記錄下每一段視頻的拍攝時間,極大方便了未來的查閱檢索。如果覺得多文件觀察起來較為繁瑣,該設(shè)計還提供了視頻自動按照時間順序合成的腳本。

        3.3.1 檢測日志文件及讀取記錄

        為了達(dá)到循環(huán)錄制的功能,需要在 U盤空間吃緊時刪除早些時間錄制的文件,因而獲取當(dāng)前刪除序號數(shù)至關(guān)重要,保證了日志文件與現(xiàn)有視頻的數(shù)據(jù)同步。

        3.3.2 FFmpeg重要函數(shù)解析

        表1 FFmpeg基本函數(shù)功能簡介

        av_write_frame(AVFormatCo ntext *s,AVPacket *pkt)件int av_write_trailer(AVFormatCo ntext *s)寫入流結(jié)尾信息到指定輸出文件并釋放內(nèi)存數(shù)據(jù)。

        表1列舉了部分FFmpeg庫重要函數(shù)的功能,具體可以參見源碼。這些函數(shù)均是基于FFmpeg編程的基礎(chǔ)。

        3.3.3 采用MJPEG編碼方式

        Motion JPEG(MJPEG)是一種視頻壓縮格式,其中每一幀圖象都分別使用JPEG編碼。同樣格式的MJPEG視頻壓縮不同于幀間壓縮,因為壓縮位元率比較低,所以編碼與解碼相對比較容易,并不需要過多的運算能力,符合ARM嵌入式的設(shè)計需求。此外,一些移動設(shè)備,如手機、數(shù)碼相機也常使用MJPEG來進行短片的編碼。該編碼的主要缺陷是壓縮效率不高,文件尺寸相對較大,但由于現(xiàn)在 U盤設(shè)備價格已經(jīng)十分低廉,因而在對硬件系統(tǒng)要求不高的地方應(yīng)用還是相當(dāng)廣泛的。

        MPEG-4是另外一種較為成熟的編碼方式,主要針對視頻會議、可視電話的超低比特率編碼需求,一般在嵌入式系統(tǒng)中應(yīng)用需采用專用的壓縮芯片完成,成本較高,這也是本設(shè)計沒有采納的主要原因[6]。

        3.3.4 實現(xiàn)循環(huán)錄制功能

        文獻[1]中提到使用多文件錄制視頻會存在丟幀現(xiàn)象,可能是因為某些視頻錄像機錄制文件時,針對每一個文件均是同樣的處理流程,換句話說,就是每次錄制過程均是上一次過程的簡單重復(fù),這樣勢必導(dǎo)致在處理視頻文件結(jié)尾的時候部分幀丟失,前后文件不連續(xù)等現(xiàn)象。

        本系統(tǒng)采取的方法是多線程幀控制法,即當(dāng)視頻將達(dá)到指定幀數(shù)時,開辟新線程對新的文件進行初始化;當(dāng)視頻達(dá)到指定幀數(shù)時,開辟新線程作后期處理并關(guān)閉文件。如此循環(huán)往復(fù),自然將每一幀信息均完整保存下來。

        3.3.5 系統(tǒng)主體設(shè)計流程概覽

        圖2 主線程運行流程圖

        圖3 視頻采集線程工作流程

        圖4 按鍵監(jiān)聽線程工作流程

        4 程序運行實驗及分析

        程序編寫完成后,就可以通過宿主機使用交叉編譯器編譯連接生成可執(zhí)行文件,并向目標(biāo)機移植后運行。

        軟件參數(shù)設(shè)定:

        窗口大?。?40×480

        幀率:15fps

        單個文件幀數(shù):9000

        通過長達(dá)5個多小時的視頻錄制測試,軟件工作正常,視頻質(zhì)量穩(wěn)定,從未出現(xiàn)丟幀或花屏現(xiàn)象,清晰度流暢性極佳。當(dāng)達(dá)到硬盤空間極限時,系統(tǒng)自動刪除早期文件,對視頻正常錄制過程沒有任何影響。實驗表明,在嵌入式Linux系統(tǒng)上實現(xiàn)循環(huán)錄制是完全可行的。

        5 結(jié)語

        本文根據(jù)特殊工作現(xiàn)場對循環(huán)視頻監(jiān)控系統(tǒng)要求,在嵌入式Linux系統(tǒng)中實現(xiàn)了視頻循環(huán)錄制的功能。程序運行結(jié)果表明該設(shè)計方案運行可靠,符合實際工程需求,其主要特點如下:

        1. 系統(tǒng)采用一般的USB攝像頭,價格低廉,極大節(jié)約了成本。

        2. 采用基于 Linux的嵌入式視頻監(jiān)控系統(tǒng)解決方案,功能擴展性強,能支持多種硬件接口。

        3. 系統(tǒng)可進行循環(huán)錄制,即自動探測U盤空間,刪除早期數(shù)據(jù),實現(xiàn)滾動更新功能。用戶可隨時選擇時間段下載數(shù)據(jù)。

        4. 整個系統(tǒng)體積小巧,安裝方便,適合各種工作場合。

        [1]劉少剛,王學(xué)軍.基于嵌入式Linux系統(tǒng)的單個AVI文件視頻循環(huán)錄制的研究[J].哈爾濱:林業(yè)機械與木工設(shè)備,2008.

        [2]廣東友善之臂計算機科技有限公司 Mini2440用戶手冊[Z].2007.

        [3]陳云鶴.基于嵌入式Linux的視頻信號實時采集系統(tǒng)的設(shè)計[D].華中科技大學(xué)2006.

        [4]吳張順,張旬.基于FFmpeg的視頻編碼存儲研究與實現(xiàn)[J].杭州:杭州電子科技大學(xué)學(xué)報.2006.

        [5]Epplin J,Linux as an Embedded Operating System[M],Embedded Systems Programming,1997.

        猜你喜歡
        視頻文件嵌入式編碼
        流媒體視頻文件相似性識別的方法
        隨心定制視頻文件的縮略圖
        電腦報(2021年23期)2021-07-23 17:36:18
        基于SAR-SIFT和快速稀疏編碼的合成孔徑雷達(dá)圖像配準(zhǔn)
        《全元詩》未編碼疑難字考辨十五則
        子帶編碼在圖像壓縮編碼中的應(yīng)用
        電子制作(2019年22期)2020-01-14 03:16:24
        Genome and healthcare
        搭建基于Qt的嵌入式開發(fā)平臺
        嵌入式軟PLC在電鍍生產(chǎn)流程控制系統(tǒng)中的應(yīng)用
        Altera加入嵌入式視覺聯(lián)盟
        倍福 CX8091嵌入式控制器
        自動化博覽(2014年4期)2014-02-28 22:31:15
        亚洲一区二区三区香蕉| 骚货人妻视频中文字幕| 国产在线观看视频一区二区三区| 熟妇人妻无码中文字幕老熟妇| 免费观看黄网站在线播放| 91情侣视频| 亚洲人妻av综合久久| 女优一区二区三区在线观看| 天天躁日日躁狠狠很躁| 精品久久久久一区二区国产| 亚洲一区二区三区在线更新| 久久综合精品人妻一区二区三区| 亚洲第一页综合图片自拍| 91精品国产丝袜在线拍| 国产三级在线观看高清| 西川结衣中文字幕在线| 亚洲产国偷v产偷v自拍色戒| 亚洲色大成人一区二区| av一区二区三区有码| 久久久久九九精品影院| 久久国产精久久精产国| 日韩久久无码免费看A| 中文字幕色偷偷人妻久久一区| 国产ww久久久久久久久久| 国产高清视频91| 日日噜噜夜夜久久密挑| 亚洲成av人片在www鸭子| 亚洲男人的天堂在线播放| 无码a级毛片免费视频内谢| 精彩亚洲一区二区三区| 十八禁在线观看视频播放免费| 国产亚洲一本大道中文在线| 国产99久久久国产精品免费 | 国产精品欧美亚洲韩国日本| 国产一区二区三区日韩在线观看| 国产成人亚洲精品无码av大片| 夜夜综合网| 成人亚洲av网站在线看| 永久亚洲成a人片777777| 日本动态120秒免费| 日本无吗一区二区视频|