基于嵌入式Linux與S3C2440雙USB接口的視頻存儲
2.2 視頻采集存儲程序設計本文引用地址:http://cafeforensic.com/article/151471.htm
Vide04Linux設備驅動程序只提供了在系統(tǒng)層面*問硬件設備的一系列讀、寫等函數(shù)的接口,要實現(xiàn)存儲,還需再編寫一個對視頻流采集的應用程序,總體上創(chuàng)建兩個進程:進程一實時掃描串口接收到的信息,通過讀取命名管道內容將編碼信息發(fā)送給進程二;進程二根據(jù)接收到的編碼做出判斷,區(qū)別各種不規(guī)范駕駛行為,設定定時器不同時長以控制存儲時間,并將視頻分類存儲到不同目錄中。
Video4Linux設備驅動程序支持兩種捕獲圖像的方式:內存影射mmap方式和直接讀取read方式。mmap方式采用共享內存方式,數(shù)據(jù)采集速度快,但這種采集方式需攝像頭硬件支持。結合本文中使用的攝像頭,在圖像采集過程中,采用read方式直接讀取設備文件,將獲得的一幀數(shù)據(jù)保存到緩沖區(qū)中,通過convertframe()函數(shù)將pFramebuffer中的數(shù)據(jù)轉換成完整的JPEG格式的數(shù)據(jù)存儲到ptframe中,然后調用fWrite()函數(shù)將緩沖區(qū)中的JPEG格式的數(shù)據(jù)寫到指定文件中,從而得到一副JPEG格式原始數(shù)據(jù)塊。部分程序如下:
對于存儲的控制,本文采用“命名管道”方式,這是一種簡單的進程間通信機制,在同一計算機的不同進程之間,支持可靠的,單向或雙向的數(shù)據(jù)通信。
命名管道由視頻存儲進程利用函數(shù)int mkfifo(constchar*pathname,mode_t mode)創(chuàng)建,負責讀取由串口掃描接收進程接收到的控制信息。部分程序如下:
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評論