色yeye在线视频观看_亚洲人亚洲精品成人网站_一级毛片免费播放_91精品一区二区中文字幕_一区二区三区日本视频_成人性生交大免费看

當前位置:首頁 > 嵌入式培訓 > 嵌入式學習 > 講師博文 > OpenWRT下的mjpg streamer配置

OpenWRT下的mjpg streamer配置 時間:2018-08-15      來源:未知

1.1.1 軟件介紹

mjpg-streamer 可以通過文件或者是HTTP方式訪問linux UVC兼容攝像頭。

1.1.2 安裝

在openwrt系統下,需要安裝以下攝像頭的驅動。

opkg kmod-usb2

opkg install kmod-usb-ohci #一般BCM用的是ohci USB控制器

opkg install kmod-usb-video

opkg install kmod-video-gspca-core

opkg install kmod-video-core

opkg install kmod-video-uvc #免驅uvc攝像頭

opkg install kmod-video-gspca-zc3xx #中微星攝像頭 如zc301 zc303 zc305

opkg install kmod-i2c-core

opkg install kmod-input-core

如果能找到 /dev/video0 的設備文件,就說明驅動已經安裝成功。

如果沒有成功,羅技的攝像頭還可以嘗試一下安裝kmod-video-pwc。

在openwrt系統下面,安裝mjpg-streamer很簡單。

opkg install mjpg-streamer

安裝完了之后,運行

/etc/init.d/mjpg-streamer start

就可以啟動了。

1.1.3 使用

在firefox瀏覽器里面輸入 //192.168.1.1:8080/?action=stream ,應該能看到攝像頭抓取的視頻。

這個視頻的幀數很低,顯得攝像頭反應很慢。可以修改/etc/config/mjpg-streamer里面的fps參數。

如果想在公司訪問家里的攝像頭,還應該修改防火墻,接受8080端口的外網請求。

添加下面配置到 /etc/config/firewall

config rule

option src wan

option proto tcp

option dest_port 8080

option target ACCEPT

然后重啟防火墻 /etc/init.d/firewall restart,就可以了。

外網訪問攝像頭的時候,如果看視頻可能速度會跟不上,可以只看截屏。//192.168.1.1:8080/?action=snapshot

需要將192.168.1.1替換成路由器說使用的公網IP地址

1.1.4 設置開機自啟動

openwrt是基于linux內核的路由操作系統,

總結一下OpenWrt的啟動流程:1.CFE->2.linux->3./etc/preinit->4./sbin/init ->5./etc/inittab ->6./etc/init.d/rcS->7./etc/rc.d/S* ->8.經過裁剪,因此與普通linux系統文件結構有所不同。為了添加攝像頭裝了mjpg_streamer,但是每次都要手動啟動攝像頭,實在是太麻煩了于是給它設置為開機自啟動。

首先在/etc/init.d里添加需要啟動的shell腳本

vim startCamera

#!/bin/sh /etc/rc.common

# /init.d/startCamera

START=50

start()

{

mjpg_streamer -b -i "input_uvc.so -r 320x240 -f 15 " -o "output_http.so -p 8080 -w /web"

}

stop()

{

killall startCamera

}

之后還需要在rc.d目錄下做一個鏈接,啟動時系統會按順序啟動rc.d目錄下的腳本鏈接,對應執行init.d目錄下的啟動腳本。

命令:ln -s /etc/init.d/startCamera /etc/rc.d/S50startCamera

重啟,即可

現在實現了開機自啟動

如果想關閉的話 直接殺進程就可以了

還有一種是通過傳參來設置

mjpg_streamer -b -i "input_uvc.so -r 320x240 -f 15 -y" -o "output_http.so -p 8080 -w /web"網址

//192.168.1.90:8080/?action=stream

服務啟動

/etc/init.d/mjpg-streamer enable 是設置開機自動啟動

/etc/init.d/mjpg-streamer disable 是禁止開機自動啟動

/etc/init.d/mjpg-streamer start 是現在啟動

/etc/init.d/mjpg-streamer restart 重啟

/etc/init.d/mjpg-streamer stop 停止

service mjpg-streamer start

設置開機自動啟動服務

/etc/init.d/mjpg-streamer enable

立即啟動服務

/etc/init.d/mjpg-streamer start [1]

很像ser2net,即便拔掉攝像頭再插上也會識別。

1.1.5 配置用戶名和密碼

mjpg-streamer 還可以使用用戶名和密碼來訪問。

修改 /etc/init.d/mjpg-streamer 中的[ $enabled -gt 0 -a -c $device ] && sleep 3 && $SSD -S -m -p $PIDF -q -x $PROG -- --input "input_uvc.so --device $device --fps $fps --resolution $resolution" --output "output_http.so --port $port" &為[ $enabled -gt 0 -a -c $device ] && sleep 3 && $SSD -S -m -p $PIDF -q -x $PROG -- --input "input_uvc.so --device $device --fps $fps --resolution $resolution" --output "output_http.so --port $port -c user:pass" &

后添加的部分就是用戶名和密碼,中間用冒號分割。重新啟動mjpg-streamer,保證配置生效。

/etc/init.d/mjpg-streamer restart

1.2 OpenWRT下的ser2net配置使用

1.2.1 軟件介紹

ser2net是以款串口轉發軟件,這是一個可以通過個人PC或手機向路由的指定端口發送數據,然后路由原封不動的將數據發送到路由的TTL接口的程序。當安裝完這個程序后,我們就可以通過編制的程序向路由的TTL口發送串行數據,意義在于:單片機就可以接受路由發送的串行數據進行各種控制。

聯網以后利用opkg指令來安裝,或用luci安裝,安裝完以后會出現一個文件

vi /etc/ser2net.conf

找到

2001:raw:600:/dev/ttyATH0:9600 NONE 1STOPBIT 8DATABITS XONXOFF LOCAL -RTSCTS

#2002:raw:600:/dev/ttyS1:9600 NONE 1STOPBIT 8DATABITS XONXOFF LOCAL -RTSCTS

注意,這里"#"代表的是屏蔽,我們修改的是非屏蔽語句,可以看到,上位機發送的端口是2001,這就是我們需要發送的端口號,波特率是9600,其它的略。

1.2.2 設置開機啟動

ser2net開機自啟動:

命令vi /etc/rc.local 打開它,i進入編輯,在exit0的上一行添加一條ser2net,esc退出編輯,wq保存

命令vi /etc/init.d/ser2net,,i進入編輯

#!/bin/sh /etc/rc.common

# /init.d/my-ser2net

START=99

start() {

ser2net –c /etc/ser2net.conf

}

Esc退出編輯,wq 保存。

命令reboot重啟路由器,ok

直接輸入ser2net可以啟動此軟件。輸入 ./ser2net 驗證自啟動修改是否正確

1.2.3 串口ser2net過濾特殊字符

許多流行的linux串口編程的版本中都沒對c_iflag(termios成員變量)這個變量進行有效的設置,這樣傳送ASCII碼時沒什么問題,但傳送二進制數據時遇到0x0d,0x11和0x13卻會被丟掉。不用說也知道,這幾個肯定是特殊字符,被用作特殊控制了。關掉ICRNL和IXON選項即可解決。

c_iflag &= ~(ICRNL | IXON);

0x0d 回車符CR

0x11 ^Q VSTART字符

0x13 ^S VSTOP字符

ICRNL 將輸入的CR轉換為NL

IXON 使起動/停止輸出控制流起作用

在《UNIX環境高級編程第二版》第18章第11小節看到把終端I/O設置為原始模式(串口通訊就是終端I/O的原始模式)時輸入屬性設置為

term.c_iflag &= ~(BRKINT | ICRNL | INPCK | ISTRIP | IXON);

原來這三個數據是串口通信里面特殊字符,具有特別的意義,會被ser2net過濾掉,那么怎么保證數據完整無誤地傳輸呢?

方法一:修改ser2net源代碼,這個方法太麻煩。

方法二: 用winscp登陸WIFI板,轉到/etc/目錄,打開ser2net.conf文件,找到如下配置:

2001:raw:600:/dev/ttyATH0:9600 NONE 1STOPBIT 8DATABITS XONXOFF LOCAL -RTSCTS

將其中藍色字體部分刪除,變為:

2001:raw:600:/dev/ttyATH0:9600 NONE 1STOPBIT 8DATABITS LOCAL -RTSCTS

保存,再重啟WIFI板,ser2net就不再會過濾掉特殊字符了。

那如何在OpenWRT源碼編譯鏡像的時候就將此軟件包配置好呢,簡單的方法就是修改編譯所需軟件包中的配置文件,文件路徑:/dl/ser2net-2.9.1.tar.gz

tar -zxvf ser2net-2.9.1.tar.gz

進入我們解壓的目錄

cd ser2net-2.9.1/

ls

可以找到ser2net.config,對其進行編輯

vi ser2net.config

將XONXOFF刪除,將ttyS0改為ttyATH0,另外此處還可以修改端口號及串口波特率。wq保存退出,然后退回到dl目錄,刪除之前的軟件包,重新壓縮。

cd ..

rm ser2net-2.9.1.tar.gz

tar –zcvf ser2net-2.9.1.tar.gz ser2net-2.9.1/

1.2.4 ser2net的雙向通信

因shell與ser2net占用同一個串口,當我們向串口發送數據時就會出現問題,需要將shell注釋掉。根據我們選擇額硬件平臺,我們需要修改./target/linux/ar71xx/base-files/etc/inittab

vi ./target/linux/ar71xx/base-files/etc/inittab

將后一行#號注釋掉

上一篇:飛行控制器Pixhawk簡介

下一篇:什么是 ZigBee協議棧?

熱點文章推薦
華清學員就業榜單
高薪學員經驗分享
熱點新聞推薦
前臺專線:010-82525158 企業培訓洽談專線:010-82525379 院校合作洽談專線:010-82525379 Copyright © 2004-2022 北京華清遠見科技集團有限公司 版權所有 ,京ICP備16055225號-5京公海網安備11010802025203號

回到頂部

主站蜘蛛池模板: 亚洲欧洲精品无码av | 俄罗斯毛毛xxxx喷水 | 国产精品白浆无码流出 | 北条一二三区 | 91国精品| 特黄男女交性A片激情视频 免费SM羞辱调教视频在线观看 | KTV少少爷互囗交Gaygv | 国产成人av一区二区三区在线观看 | 男人天堂999 | 少妇愉情理伦片丰满丰满 | 男男调教小太正裸体 | 国产精品十八禁在线观看 | 国产寡妇色xxⅹ交肉视频 | 激情综合激情五月俺也去 | 丰满爆乳无码一区二区三区 | 无码精品A∨在线观看十八禁 | 中国国语对白高潮A片 | 国产精品久久久久久久久丝袜 | 日本中字在线视频二区 | 久久精品A一国产成人免费网站 | 国产青榴视频a片在线观看 亚洲Av无码专区国产乱码DVD | 免费A级毛片无码A∨中文字幕 | 国产又粗又猛又大爽又黄 | 在线精品亚洲欧美日韩国产 | 色综合色欲色综合色综合色乛 | 国产999精品成人网站 | 亚洲日韩国产精品无码AV | 三级中文字幕永久在线 | japanese色系home中文 | 亚洲精品国品乱码久久久久 | 欧美日韩精品在线观看视频 | 亚洲毛片αv无线播放一区 亚洲色大成网站久久久 | 无码精品人妻一区二区三区人妻斩 | 无码少妇一区二区浪潮免费 | 奶头好大下面好爽的视频 | 少妇被黑人4p到惨叫在线观看 | 精品无码一区二区三区不卡 | 欧美极品少妇BBXX中国 | 亚洲欧美日韩中文高清WWW777 | 国产乱人激情H在线观看 | 男女好痛好深好爽视频 |