两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

一種基于dm365的網絡視頻傳輸系統(tǒng)及方法

文檔序號:8003816閱讀:223來源:國知局
一種基于dm365的網絡視頻傳輸系統(tǒng)及方法
【專利摘要】一種基于DM365的網絡視頻傳輸系統(tǒng),所述網絡視頻傳輸系統(tǒng)包括視頻設備、服務器和客戶端,所述視頻設備包括用于采集一路CCD攝像頭模擬視頻信號并轉為數(shù)字信號的視頻采集模塊,用于將采集視頻進行H.264標準壓縮編碼并寫入共享內存的視頻編碼模塊,用于將共享內存中的H.264數(shù)據(jù)打包發(fā)送并實現(xiàn)實時視頻數(shù)據(jù)的發(fā)送的視頻發(fā)送模塊;所述視頻編碼模塊采用達芬奇芯片DM365,所述服務器中,記錄和管理設備、用戶信息,轉發(fā)信令和媒體數(shù)據(jù);所述客戶端查看視頻設備的信息,并進行設備查詢、控制和實時監(jiān)控。以及提供一種基于DM365的網絡視頻傳輸方法。本發(fā)明清晰度較高、流暢度較好。
【專利說明】一種基于DM365的網絡視頻傳輸系統(tǒng)及方法
【技術領域】
[0001]本發(fā)明涉及視頻監(jiān)控領域,尤其是一種網絡視頻傳輸系統(tǒng)及方法。
【背景技術】
[0002]隨著社會的快速發(fā)展和人們生活水平的不斷提高,公眾對安防的意識逐漸加深,社會對安防的需求也隨之增長。近來,國內提出了建設“平安城市”的概念,就是使用完整的安全防范系統(tǒng)對城市進行覆蓋,包括市內視頻監(jiān)控系統(tǒng)、數(shù)字化城市管理系統(tǒng)、道路交通等多個系統(tǒng),利用市區(qū)級數(shù)據(jù)交換平臺實現(xiàn)資源共享,作為視頻數(shù)據(jù)的源頭,視頻監(jiān)控系統(tǒng)是重中之重。而在視頻監(jiān)控系統(tǒng)中,視頻數(shù)據(jù)的采集、編碼、傳輸?shù)募夹g是關鍵。在這種情況下,網絡視頻傳輸系統(tǒng)應用而生,它是一個將網絡通信技術、嵌入式技術以及視頻縮編碼、傳輸、控制技術相結合的系統(tǒng),它能夠提升網絡視頻監(jiān)控系統(tǒng)整體性能,具有較高的工程意義和市場價值。

【發(fā)明內容】

[0003]為了克服已有網絡視頻傳輸方式的視頻清晰度較低、流暢度較差的不足,本發(fā)明提供一種清晰度較高、流暢度較好的基于DM365的網絡視頻傳輸系統(tǒng)及方法。
[0004]本發(fā)明解決其技術問題所采用的技術方案是:
[0005]一種基于DM365的網絡視頻傳輸系統(tǒng),所述網絡視頻傳輸系統(tǒng)包括視頻設備、月艮務器和客戶端,所述視頻設備包括用于采集一路CCD(Charge-coupled Device,電荷稱合裝置)攝像頭模擬視頻信號并轉為數(shù)字信號的視頻采集模塊,用于將采集視頻進行H.264標準壓縮編碼并寫入共享內存的視頻編碼模塊,用于將共享內存中的H.264數(shù)據(jù)打包發(fā)送并實現(xiàn)實時視頻數(shù)據(jù)的發(fā)送的視頻發(fā)送模塊;所述視頻編碼模塊采用達芬奇芯片DM365,所述服務器中,記錄和管理設備、用戶信息,轉發(fā)信令和媒體數(shù)據(jù);所述客戶端查看視頻設備的信息,并進行設備查詢、控制和實時監(jiān)控。
[0006]進一步,所述達芬奇芯片DM365芯片具有ARM (Advanced RISC Machines,嵌入式系統(tǒng))核和DSP(digital signal processor,數(shù)字信號處理)協(xié)處理器雙核模式。
[0007]—種基于DM365的網絡視頻傳輸方法,攝像頭捕獲的模擬視頻信號首先由TVP5146芯片編碼成為YUV格式的視頻數(shù)據(jù),后經過VPFE (Video Processing Front End,視頻處理前端)處理之后,然后再通過TMS320DM365的H.264編碼器產生壓縮后的H.264視頻數(shù)據(jù),之后將H.264數(shù)據(jù)以RTP (Real-time Transport Protocol,實時傳輸協(xié)議)格式通過Internet進行打包發(fā)送至服務器;在客戶端,首先從服務器接收到RTP包中解析出
H.264數(shù)據(jù),送至解碼器解碼,最后將解碼后的YUV數(shù)據(jù)實時播放出來。
[0008]進一步,所述視頻設備包括視頻采集模塊、視頻編碼模塊和頻發(fā)送模塊,所述視頻設備的視頻數(shù)據(jù)處理過程分為兩個進程:視頻采集壓縮encode進程以及視頻發(fā)送dev_app進程,其中encode進程主要包括兩個線程:負責視頻采集的capture線程,負責視頻壓縮video線程;dev_app進程主要負責:RTP數(shù)據(jù)的打包發(fā)送。[0009]所述視頻采集過程如下:在創(chuàng)建VPFE視頻采集設備驅動實例前,先要向VPFE驅動注冊TVP5146設備,TVP5146將采集的數(shù)字信號放入等待隊列中;VPFE設備通過ioctl方法不斷地從等待隊列中讀取視頻數(shù)據(jù)到緩沖區(qū);應用程序通過V4L2接口和DMAI (DaVinciMultimedia Application Interface,達芬奇多媒體應用接口)接口獲取VPFE驅動中采集的視頻數(shù)據(jù)。
[0010]所述視頻編碼過程如下:配置編碼引擎文件encode, cfg,由于DaVinci軟件框架是一個高度模塊化的編程框架,DaVinci軟件的功能實現(xiàn)都已封裝成模塊,應用程序如果需要使用某個模塊,通過配置cfg文件,將用到的模塊配置好,之后使用,只要調用API即可;配置cfg文件,主要是配置Codec Engine以及相應的多媒體算法,參考TI提供的編碼demo的cfg文件。
[0011]視頻采集和視頻編碼的兩個線程實現(xiàn)如下capture線程將采集原始幀數(shù)據(jù)寫入緩存區(qū),通過管道Fifo_put()接口將緩存區(qū)地址發(fā)送給video線程;video線程通過Fifo_get O接口收到數(shù)據(jù)后,利用CodecEngine調用H.264編碼算法實例進行編碼,并把編碼好的一巾貞數(shù)據(jù)寫入共享內存,等待dev_app進程來讀取,若沒有被讀取,video線程進入阻塞狀態(tài),整個encode進程也被阻塞。
[0012]共享內存的過程如下:首先在兩個進程中分別調用createShmO函數(shù)申請一塊共享內存,各自進程調用shmatO函數(shù)將共享內存映射到本進程內存空間中,之后進程就可以對這塊共享內存進行操作。
[0013]本發(fā)明的有益效果主要表現(xiàn)在:(1)結合攝像頭以及DM365芯片視頻采集前端,采集獲取更高的清晰度的視頻數(shù)據(jù);(2)對于視頻壓縮功能,采用進程線程同步技術和TI的DM365芯片的特點,實現(xiàn)較高的視頻壓縮率和較低的功耗;(3)采用開源庫JRTPLIB,通過開源庫,更快捷的實現(xiàn)視頻數(shù)據(jù)的傳輸,可充分利用現(xiàn)有資源,減少開發(fā)工作量。(4)不需要專門的監(jiān)控中心或監(jiān)控管理部門,只要能連接Internet,用戶就可使用該視頻傳輸系統(tǒng),實現(xiàn)實時監(jiān)控的功能。綜上,該系統(tǒng)具有門檻低、網絡化、覆蓋面廣、經濟實用、實時性高,清晰度聞、功能低等優(yōu)點。
【專利附圖】

【附圖說明】
[0014]圖1是基于DM365的網絡視頻傳輸系統(tǒng)的原理框圖。
[0015]圖2是設備端的原理框圖。
[0016]圖3是視頻采集模塊流程圖。
[0017]圖4是視頻編碼模塊流程圖。
[0018]圖5是采集、編碼循環(huán)實現(xiàn)圖。
[0019]圖6是共享內存實現(xiàn)圖。
【具體實施方式】
[0020]下面結合附圖對本發(fā)明作進一步描述。
[0021]實施例1
[0022]參照圖1,一種基于DM365的網絡視頻傳輸系統(tǒng),所述網絡視頻傳輸系統(tǒng)包括視頻設備、服務器和客戶端,所述視頻設備包括用于采集一路CCD攝像頭模擬視頻信號并轉為數(shù)字信號的視頻采集模塊,用于將采集視頻進行H.264標準壓縮編碼并寫入共享內存的視頻編碼模塊,用于將共享內存中的H.264數(shù)據(jù)打包發(fā)送并實現(xiàn)實時視頻數(shù)據(jù)的發(fā)送的視頻發(fā)送模塊;所述視頻編碼模塊采用達芬奇芯片DM365,所述服務器中,記錄和管理設備、用戶信息,轉發(fā)信令和媒體數(shù)據(jù);所述客戶端查看視頻設備的信息,并進行設備查詢、控制和實時監(jiān)控。
[0023]進一步,所述達芬奇芯片DM365芯片具有ARM核和DSP協(xié)處理器雙核模式。
[0024]本實施例的系統(tǒng)由視頻設備、服務器、客戶端3個部分組成。視頻設備是該系統(tǒng)中的數(shù)據(jù)捕獲源,主要指有線網絡的前端設備。前端設備主要完成視頻的采集、壓縮,并通過有線網絡發(fā)送視頻至服務器??蛻舳嗽诒疚闹競€人電腦監(jiān)控程序,它可隨時查看前端設備的信息,并進行相應的操作,如設備查詢、控制和實時監(jiān)控。服務器是系統(tǒng)中的核心部件,在服務器端需要實現(xiàn)設備、用戶信息的記錄和管理以及信令和媒體數(shù)據(jù)的轉發(fā)。通過該視頻傳輸系統(tǒng)可以實現(xiàn)視頻數(shù)據(jù)的實時監(jiān)控。
[0025]達芬奇芯片DM365,采用H.264編碼標準,支持標清/高清視頻編碼,在視頻圖像的清晰度和編碼效率上都有很大的提升,而且支持常用的網絡傳輸協(xié)議。DM365芯片有著特殊的ARM核和DSP協(xié)處理器雙核模式有著特殊的數(shù)據(jù)處理方式。DM365視頻處理模塊由3個模塊構成:應用處理層、信號處理層和輸入/輸出接口層。視頻捕獲處理模塊屬于應用處理層,它運行在ARM端,通過Codec Engine的VISAAPI調用DSP協(xié)處理器端的H.264編碼算法完成視頻壓縮編碼。通過進程線程同步技術,實現(xiàn)采集、編碼、發(fā)送的同步。
[0026]壓縮編碼后數(shù)據(jù)通過RTP (Real-time Transport Protocol,實時傳輸協(xié)議)協(xié)議傳輸給視頻服務器,服務器轉發(fā)給客戶端。RTP提供了時間戳、序列號,以及其他能夠保證傳輸正確性和有效性的方法,以便于實現(xiàn)時間信息和流信息的同步,實現(xiàn)實時監(jiān)控。通過開源庫JRTPLIB實現(xiàn)視頻數(shù)據(jù)的傳輸。
[0027]參照圖1,該網絡視頻傳輸系統(tǒng)由客戶端、前端視頻設備、服務器端3個部分組成。攝像頭捕獲的模擬視頻信號首先由TVP5146芯片編碼成為YUV格式的視頻數(shù)據(jù),后經過VPFE處理之后,然后再通過TMS320DM365的H.264編碼器產生壓縮后的H.264視頻數(shù)據(jù),之后將H.264數(shù)據(jù)以RTP格式通過Internet進行打包發(fā)送至服務器。在客戶端,首先從服務器接收到RTP包中解析出H.264數(shù)據(jù),送至解碼器解碼,最后將解碼后的YUV數(shù)據(jù)實時播放出來。
[0028]實施例2
[0029]參照圖1?圖6,一種基于DM365的網絡視頻傳輸方法,攝像頭捕獲的模擬視頻信號首先由TVP5146芯片編碼成為YUV格式的視頻數(shù)據(jù),后經過VPFE處理之后,然后再通過TMS320DM365的H.264編碼器產生壓縮后的H.264視頻數(shù)據(jù),之后將H.264數(shù)據(jù)以RTP格式通過Internet進行打包發(fā)送至服務器;在客戶端,首先從服務器接收到RTP包中解析出
H.264數(shù)據(jù),送至解碼器解碼,最后將解碼后的YUV數(shù)據(jù)實時播放出來。
[0030]參照圖2,該視頻傳輸系統(tǒng)中,設備端視頻處理相關的部分主要是視頻的采集、編碼、發(fā)送。因此將該部分劃分為視頻采集模塊、視頻編碼模塊、視頻發(fā)送模塊三個基本功能模塊,而且各功能模塊間相互獨立又互相聯(lián)系。網絡視頻傳輸系統(tǒng)設備端各個模塊功能分別是:視頻采集模塊:采集一路CCD攝像頭模擬視頻信號,并轉為數(shù)字信號;視頻編碼模塊:將采集視頻進行H.264標準壓縮編碼,并寫入共享內存;視頻發(fā)送模塊:將共享內存中的H.264數(shù)據(jù)打包發(fā)送,實現(xiàn)實時視頻數(shù)據(jù)的發(fā)送。根據(jù)模塊的劃分,整個設備端視頻數(shù)據(jù)處理部分分為兩個進程:視頻采集壓縮encode進程以及視頻發(fā)送dev_app進程。其中encode進程主要包括兩個線程:負責視頻采集的capture線程,負責視頻壓縮video線程。dev_app進程主要負責:RTP數(shù)據(jù)的打包發(fā)送。
[0031]參照圖3,TI針對DaVinci平臺提供了 DMAI。DMAI為我們提供了 Capture模塊來實現(xiàn)視頻采集,它處于V4L2和應用程序之間,是對V4L2接口的進一步封裝。本系統(tǒng)的視頻采集程序是基于DMAI實現(xiàn)的,VPFE在內核中的文件是/dev/videoO,所有對VPFE的操作轉化成對視頻設備文件/dev/videoO的操作??傮w過程:在創(chuàng)建VPFE視頻采集設備驅動實例前,先要向VPFE驅動注冊TVP5146設備,TVP5146將采集的數(shù)字信號放入等待隊列中;VPFE設備通過ioctl方法不斷地從等待隊列中讀取視頻數(shù)據(jù)到緩沖區(qū);應用程序通過V4L2接口和DMAI接口獲取VPFE驅動中采集的視頻數(shù)據(jù)。
[0032]參照圖4, H.264 編碼標準提供了 Baseline-profiIe 和 high-profile 兩種編碼標準,我們使用TI官方提供的H.264Baseline Profile的demo包,其中包含了編譯好的H.264CodeC算法實例。我們這里的視頻編碼程序也是基于Codec Engine編寫的。編寫應用程序之前,首先配置編碼引擎文件encode, cfg,由于DaVinci軟件框架是一個高度模塊化的編程框架,DaVinci軟件的功能實現(xiàn)都已封裝成模塊,應用程序如果需要使用某個模塊,通過配置cfg文件,將用到的模塊配置好,之后使用,只要調用API (ApplicationProgramming Interface,應用程序接口)即可。配置cfg文件,主要是配置Codec Engine以及相應的多媒體算法,參考TI提供的編碼demo的cfg文件。
[0033]參照圖5,視頻流處理的同步即進入主循環(huán)后的同步。兩個線程都初始化完畢后,進入主循環(huán),在主循環(huán)中兩個線程分別實現(xiàn)視頻采集、視頻編碼的過程。具體過程capture線程將采集原始幀數(shù)據(jù)寫入緩存區(qū),通過管道Fifo_put()接口將緩存區(qū)地址發(fā)送給video線程;video線程通過Fifo_get O接口收到數(shù)據(jù)后,利用Codec Engine調用H.264編碼算法實例進行編碼,并把編碼好的一幀數(shù)據(jù)寫入共享內存,等待dev_app進程來讀取,若沒有被讀取,video線程進入阻塞狀態(tài),整個encode進程也被阻塞。
[0034]參照圖6,具體過程為:首先在兩個進程中分別調用createShmO函數(shù)申請一塊共享內存,各自進程調用shmatO函數(shù)將共享內存映射到本進程內存空間中,之后進程就可以對這塊共享內存進行操作。進程操作共享內存主要有讀取和寫入兩種操作。按照視頻流傳遞的方向,encode進程將H.264流寫入共享內存,而dev_app進程從內存讀取H.264流。兩個進程的同步采用信號量的方式實現(xiàn)。信號量(Semaphore)是一種多線程(進程)訪問共享資源進行控制的機制,一種用于解決互斥共享資源的同步問題而引入的機制。信號量通過PV操作來實現(xiàn)進程的同步和互斥。一般上來說,信號量S>=0,S表示可用資源的數(shù)量。執(zhí)行一次P(S)操作代表請求分配一個單位資源,S減I ;當S小于O時,表示無可用資源,請求進程必須等待的進程釋放該類資源,才能運行下去。而執(zhí)行一次V(S)操作表示釋放一個單位資源,S加I ;若S小于0,表示有進程正在等待該資源,因此可以喚醒一個等待狀態(tài)的進程去運行。本項目中,給共享內存申請兩個信號量write和read,初始賦值:write=l(共享內存可寫),read=0(共享內存不可讀)。encode進程將要寫入共享內存時,進行P (write)操作,此時write=0 (共享內存不可寫),V(read),read=l (共享內存可讀),經過一次寫入操作之后,共享內存狀態(tài)變成可讀不可寫,video線程處于阻塞狀態(tài)。同樣,在dev_app進程處,因為此時共享內存的read信號量大于O,表示可讀,dev_app進程進行P (read)操作,read=0,正常讀取視頻數(shù)據(jù)之后,進行V(write)操作,write=l,經過一次讀取操作之后,共享內存狀態(tài)變成可寫不可讀。encode進程和dev_app進程通過對共享內存讀寫,完成同步。encode進程中共享內存讀寫操作代碼如下所示,dev_app進程中共享內存讀寫操作與其類似。
【權利要求】
1.一種基于DM365的網絡視頻傳輸系統(tǒng),其特征在于:所述網絡視頻傳輸系統(tǒng)包括視頻設備、服務器和客戶端,所述視頻設備包括用于采集一路CCD攝像頭模擬視頻信號并轉為數(shù)字信號的視頻采集模塊,用于將采集視頻進行H.264標準壓縮編碼并寫入共享內存的視頻編碼模塊,用于將共享內存中的H.264數(shù)據(jù)打包發(fā)送并實現(xiàn)實時視頻數(shù)據(jù)的發(fā)送的視頻發(fā)送模塊;所述視頻編碼模塊采用達芬奇芯片DM365,所述服務器中,記錄和管理設備、用戶信息,轉發(fā)信令和媒體數(shù)據(jù);所述客戶端查看視頻設備的信息,并進行設備查詢、控制和實時監(jiān)控。
2.如權利要求1所述的基于DM365的網絡視頻傳輸系統(tǒng),其特征在于:所述達芬奇芯片DM365芯片具有ARM核和DSP協(xié)處理器雙核模式。
3.一種用如權利要求1所述的基于DM365的網絡視頻傳輸系統(tǒng)實現(xiàn)的方法,其特征在于:攝像頭捕獲的模擬視頻信號首先由TVP5146芯片編碼成為YUV格式的視頻數(shù)據(jù),后經過VPFE處理之后,然后再通過TMS320DM365的H.264編碼器產生壓縮后的H.264視頻數(shù)據(jù),之后將H.264數(shù)據(jù)以RTP格式通過Internet進行打包發(fā)送至服務器;在客戶端,首先從服務器接收到RTP包中解析出H.264數(shù)據(jù),送至解碼器解碼,最后將解碼后的YUV數(shù)據(jù)實時播放出來。
4.如權利要求3所述的方法,其特征在于:所述視頻設備包括視頻采集模塊、視頻編碼模塊和頻發(fā)送模塊,所述視頻設備的視頻數(shù)據(jù)處理過程分為兩個進程:視頻采集壓縮encode進程以及視頻發(fā)送dev_app進程,其中encode進程主要包括兩個線程:負責視頻采集的capture線程,負責視頻壓縮video線程;dev_app進程主要負責:RTP數(shù)據(jù)的打包發(fā)送。
5.如權利要求3或4所述的方法,其特征在于:所述視頻采集過程如下:在創(chuàng)建VPFE視頻采集設備驅動實例前,先要向VPFE驅動注冊TVP5146設備,TVP5146將采集的數(shù)字信號放入等待隊列中;VPFE設備通過ioctl方法不斷地從等待隊列中讀取視頻數(shù)據(jù)到緩沖區(qū);應用程序通過V4L2接口和DMAI接口獲取VPFE驅動中采集的視頻數(shù)據(jù)。
6.如權利要求3或4所述的方法,其特征在于:所述視頻編碼過程如下:配置編碼引擎文件encode, cfg,由于DaVinci軟件框架是一個高度模塊化的編程框架,DaVinci軟件的功能實現(xiàn)都已封裝成模塊,應用程序如果需要使用某個模塊,通過配置cfg文件,將用到的模塊配置好,之后使用,只要調用API即可;配置cfg文件,主要是配置CodecEngine以及相應的多媒體算法,參考TI提供的編碼demo的cfg文件。
7.如權利要求6所述的方法,其特征在于:視頻采集和視頻編碼的兩個線程實現(xiàn)如下:capture線程將采集原始幀數(shù)據(jù)寫入緩存區(qū),通過管道Fifo_put O接口將緩存區(qū)地址發(fā)送給video線程;video線程通過Fifo_get()接口收到數(shù)據(jù)后,利用Codec Engine調用H.264編碼算法實例進行編碼,并把編碼好的一幀數(shù)據(jù)寫入共享內存,等待dev_app進程來讀取,若沒有被讀取,video線程進入阻塞狀態(tài),整個encode進程也被阻塞。
8.如權利要求6所述的方法,其特征在于:共享內存的過程如下:首先在兩個進程中分別調用createShmO函數(shù)申請一塊共享內存,各自進程調用shmat O函數(shù)將共享內存映射到本進程內存空間中,之后進程就可以對這塊共享內存進行操作。
【文檔編號】H04N7/18GK103442204SQ201310343795
【公開日】2013年12月11日 申請日期:2013年8月8日 優(yōu)先權日:2013年8月8日
【發(fā)明者】孟利民, 周凱 申請人:浙江工業(yè)大學
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
鹿邑县| 鄂州市| 长汀县| 呼玛县| 株洲县| 泰顺县| 宜宾市| 云和县| 钟祥市| 手游| 陕西省| 托里县| 丰宁| 恭城| 永济市| 肥东县| 长岛县| 洪江市| 固阳县| 广东省| 礼泉县| 咸阳市| 石城县| 来宾市| 浙江省| 禹城市| 连山| 莎车县| 鹿泉市| 和田县| 洪洞县| 江孜县| 南乐县| 精河县| 祁阳县| 茶陵县| 阜平县| 拉萨市| 清丰县| 平乡县| 绥阳县|