真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

linux檢查攝像頭命令 linux打開攝像頭命令

Linux系統(tǒng)監(jiān)控要用到哪些命令

找到最耗CPU的java線程

網(wǎng)站建設哪家好,找創(chuàng)新互聯(lián)公司!專注于網(wǎng)頁設計、網(wǎng)站建設、微信開發(fā)、微信小程序開發(fā)、集團企業(yè)網(wǎng)站建設等服務項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了利通免費建站歡迎大家使用!

ps命令

命令:ps -mp pid -o THREAD,tid,time 或者 ps -Lfp pid

結果展示:

這個命令的作用,主要是可以獲取到對應一個進程下的線程的一些信息。 比如你想分析一下一個java進程的一些運行瓶頸點,可以通過該命令找到所有當前Thread的占用CPU的時間,也就是這里的最后一列。

比如這里找到了一個TID : 30834 ,所占用的TIME時間最高。

通過 printf “%x\n” 30834 首先轉化成16進制, 繼續(xù)通過jstack命令dump出當前的jvm進程的堆棧信息。 通過Grep命令即可以查到對應16進制的線程id信息,很快就可以找到對應最耗CPU的代碼快在哪。

簡單的解釋下,jstack下這一串線程信息內容:

Java代碼

“DboServiceProcessor-4-thread-295” daemon prio=10 tid=0x00002aab047a9800 nid=0x7d9b waiting on condition [0x0000000046f66000]

nid : 對應的linux操作系統(tǒng)下的tid,就是前面轉化的16進制數(shù)字

tid: 這個應該是jvm的jmm內存規(guī)范中的唯一地址定位,如果你詳細分析jvm的一些內存數(shù)據(jù)時用得上,我自己還沒到那種程度,所以先放下

top命令

命令:top -Hp pid

結果顯示:

和前面的效果一下,你可以實時的跟蹤并獲取指定進程中最耗cpu的線程。 再用前面的方法提取到對應的線程堆棧信息。

判斷I/O瓶頸

mpstat命令

命令:mpstat -P ALL 1 1000

結果顯示:

注意一下這里面的%iowait列,CPU等待I/O操作所花費的時間。這個值持續(xù)很高通??赡苁荌/O瓶頸所導致的。

通過這個參數(shù)可以比較直觀的看出當前的I/O操作是否存在瓶頸

如何利用Video4Linux獲取攝像頭數(shù)據(jù)

 1. 攝像頭的安裝

在Linux下常用的攝像頭驅動是spca5xx。這個網(wǎng)站還給出了這款驅動支持的攝像頭的種類。另外,ov511芯片直接就支持Linux,使用者款芯片的攝像頭有網(wǎng)眼V2000。我使用的是網(wǎng)眼V2000的攝像頭,和Z-Star

301p+現(xiàn)代7131R芯片的攝像頭。后一種需要spca5xx的驅動。關于spca5xx的安裝方法,網(wǎng)上有很多介紹,這里就不說了。

2. 攝像頭的調試

安裝好攝像頭后,為了測試攝像頭能否正常工作,可以用一下軟件。比較著名的是xawtv,在網(wǎng)上搜以下可以下載到。安裝好后,打開xawtv則可以調試攝像頭。

3. Video4Linux 編程獲取數(shù)據(jù)

現(xiàn)有的video4linux有兩個版本,v4l和v4l2。本文主要是關于v4l的編程。利用v4l API獲取視頻圖像一般有以下幾步:

a 打開設備

b 設置設備的屬性,比如圖像的亮度,對比度等等

c 設定傳輸格式和傳輸方式

d 開始傳輸數(shù)據(jù),一般是一個循環(huán),用以連續(xù)的傳輸數(shù)據(jù)

e 關閉設備

下面具體介紹v4l編程的過程。首先指出,在video4linux編程時要包含頭文件,其中包含了video4linux的數(shù)據(jù)結構和函數(shù)定義。

1)v4l的數(shù)據(jù)結構

在video4linux API中定義了如下數(shù)據(jù)結構,詳細的數(shù)據(jù)結構定義可以參考v4l API的文檔,這里就編程中經(jīng)常使用的數(shù)據(jù)結構作出說明。

首先我們定義一個描述設備的數(shù)據(jù)結構,它包含了v4l中定義的所有數(shù)據(jù)結構:

typedef struct

_v4ldevice

{int fd;//設備號

struct video_capability capability;

struct

video_channel channel[10];

struct video_picture picture;

struct video_clip

clip;

struct video_window window;

struct video_capture capture;

struct

video_buffer buffer;

struct video_mmap mmap;

struct video_mbuf

mbuf;

struct video_unit unit;

unsigned char

*map;//mmap方式獲取數(shù)據(jù)時,數(shù)據(jù)的首地址

pthread_mutex_t mutex;

int frame;

int

framestat[2];

int overlay;

}v4ldevice;

下面解釋上面這個數(shù)據(jù)結構中包含的數(shù)據(jù)結構,這些結構的定義都在中。

* struct

video_capability

name[32] Canonical name for this interface

type Type of

interface

channels Number of radio/tv channels if appropriate

audios

Number of audio devices if appropriate

maxwidth Maximum capture width in

pixels

maxheight Maximum capture height in pixels

minwidth Minimum capture

width in pixels

minheight Minimum capture height in pixels

這一個數(shù)據(jù)結構是包含了攝像頭的屬性,name是攝像頭的名字,maxwidth maxheight是攝像頭所能獲取的最大圖像大小,用像素作單位。

在程序中,通過ioctl函數(shù)的VIDIOCGCAP控制命令讀寫設備通道已獲取這個結構,有關ioctl的使用,比較復雜,這里就不說了。下面列出獲取這一數(shù)據(jù)結構的代碼:

int v4lgetcapability(v4ldevice *vd)

{

if(ioctl(vd-fd,

VIDIOCGCAP, (vd-capability)) 0)

{

v4lperror("v4lopen:VIDIOCGCAP");

return -1;

}

return 0;

}

*

struct video_picture

brightness Picture brightness

hue Picture hue (colour

only)

colour Picture colour (colour only)

contrast Picture

contrast

whiteness The whiteness (greyscale only)

depth The capture depth

(may need to match the frame buffer depth)

palette Reports the palette that

should be used for this image

這個數(shù)據(jù)結構主要定義了圖像的屬性,諸如亮度,對比度,等等。這一結構的獲取通過ioctl發(fā)出VIDIOCGPICT控制命令獲取。

* struct video_mbuf

size The number of bytes to

map

frames The number of frames

offsets The offset of each frame

這個數(shù)據(jù)結構在用mmap方式獲取數(shù)據(jù)時很重要:

size表示圖像的大小,如果是640*480的彩色圖像,size=640*480*3

frames表示幀數(shù)

offsets表示每一幀在內存中的偏移地址,通過這個值可以得到數(shù)據(jù)在圖像中的地址。

得到這個結構的數(shù)據(jù)可以用ioctl的VIDIOCGMBUF命令。源碼如下:

int v4lgetmbuf(v4ldevice

*vd)

{

if(ioctl(vd-fd, VIDIOCGMBUF, (vd-mbuf))0)

{

v4lperror("v4lgetmbuf:VIDIOCGMBUF");

return -1;

}

return

0;

}

而數(shù)據(jù)的地址可以有以下方式計算:

unsigned char

*v4lgetaddress(v4ldevice *vd)

{

return (vd-map +

vd-mbuf.offsets[vd-frame]);

}

2)獲取影像mmap方式。

在video4Linux下獲取影像有兩種方式:overlay和mmap。由于我的攝像頭不支持overlay方式,所以這里只談mmap方式。

mmap方式是通過內存映射的方式獲取數(shù)據(jù),系統(tǒng)調用ioctl的VIDIOCMCAPTURE后,將圖像映射到內存中,然后可以通過前面的v4lgetmbuf(vd)函數(shù)和v4lgetaddress(vd)函數(shù)獲得數(shù)據(jù)的首地址,這是李可以選擇是將它顯示出來還是放到別的什么地方。

下面給出獲取連續(xù)影像的最簡單的方法(為了簡化,將一些可去掉的屬性操作都去掉了):

char*

devicename="/dev/video0";

char* buffer;

v4ldevice device;

int width =

640;

int height = 480;

int frame =

0;

v4lopen("/dev/video0",device);//打開設備

v4lgrabinit(device,width,height);//初始化設備,定義獲取的影像的大小

v4lmmap(device);//內存映射

v4lgrabstart(device,frame);//開始獲取影像

while(1){

v4lsync(device,frame);//等待傳完一幀

frame

= (frame+1)%2;//下一幀的frame

v4lcapture(device,frame);//獲取下一幀

buffer =

(char*)v4lgetaddress(device);//得到這一幀的地址

//buffer給出了圖像的首地址,你可以選擇將圖像顯示或保存......

//圖像的大小為

width*height*3

..........................

}

轉載僅供參考,版權屬于原作者。祝你愉快,滿意請采納哦

在Linux系統(tǒng)下要如何實現(xiàn)在電腦上使用攝像頭進行錄像做成Video視

升級內核:

1.這里我用的內核是linux-2.6.32.59 版本的,首先下載這個內核

2.下載完畢之后拷貝到Linux中進行解壓,tar jxvf linux-2.6.32.59.tar

3.進入linux-2.6.32.59 目錄把當前內核的配置文件拷貝到當前目錄下cp /boot/config-2.6.18-238.e15 。/.config 因為我當前用的內核是linux-2.6.18版本的`

4.在配置視頻所需要的驅動 make menuconfig 進入之后找到Device Drivers 按回車進入 找到MultiMedia Support先按空格鍵進行選中 再按回車鍵進入找到 Video For Linux 按回車鍵選中 再按空格鍵選中 Video capture adapters 將此選項選中之后按回車鍵進入找到V4L USB devices 按空格鍵選中再按回車鍵進入 找到USB ZC0301[P] ImageProcessor and Control Chip support 按空格鍵選中 再找到《M》GSPCA based webcamsà先按空格鍵選中再按回車鍵進入在最后一項的菜單下選中ZC3XX USB Camera Driver

5.以上配置好之后再次回到頂層菜單,找到General setup-à按回車鍵進入找到[]enable deprecated sysfs features which may confuse old usersp 按空格鍵選中

6.經(jīng)過4 ,5 兩步驟已經(jīng)將視頻的驅動配置好退出保存

7.下面進行編譯 make 此步驟大概需要一個小時左右

8.再次進行 make modules_install

9.再次進行 make install

10.此時查看將攝像頭插入USB 再次查看設備文件中是否已經(jīng)有了 video0 用ls /dev/ 命令查看

11.如果有說明安裝成功

下面是將攝像頭的內容顯示出來

1首先安裝SDL庫在此下載

2.進行解壓tar zxvf SDL-1.2.15.tar

3.進入目錄 cd SDL-1.2.15 再進入 test目錄 cd test 在test 目錄下配置 。/configure再進行make 則會有許多編譯好的程序隨便運行一個試試

4.在我上傳的資料文件夾中找到servfox-R1_1_3 文件夾進入之后首先將Makefile.i386的名字改為 Makefile ,

5.編譯 make

6. 在我上傳的資料文件夾中找到spcaview-20061208 文件夾進入之后直接make

7.之后將攝像頭插入到USB 接口首先運行servfox-R1_1_3 文件夾中的servfox。/servfox 如果提示出現(xiàn)錯誤則要把打印的錯誤語句在spcav4l.c中找到將錯誤信息刪除知道沒有錯誤出現(xiàn),再次運行。/servfox -g –w 127.0.0.1:7070 –d /dev/video0

8. 再次運行spcaview 。/ spcaview –g –w 127.0.0.1:7070此時應該在你的虛擬機上就會顯示攝像頭拍出來的視頻注意此時的項目支持網(wǎng)絡

如何linux下檢測 usb攝像頭熱插拔事件

1.插上USB設備。 2.用root帳號執(zhí)行 fdisk -l 3.命令行會顯示USB設備清單,如果是U盤,注意看看容量一下就看出來了。


網(wǎng)站題目:linux檢查攝像頭命令 linux打開攝像頭命令
文章起源:http://weahome.cn/article/dodeico.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部