日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

arm开发板6410/2440上mjpg-streamer网络视频服务器移植

發(fā)布時(shí)間:2025/5/22 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 arm开发板6410/2440上mjpg-streamer网络视频服务器移植 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

?攝像頭移植

一、環(huán)境

主機(jī)環(huán)境?:ubuntu?10.10?????????目標(biāo)板?:FS-S5PC100

?主機(jī)工具鏈?:gcc-4.4.5?????????交叉工具鏈?:arm-unknown-linux-gnueabi-gcc

??攝像頭?:ZC301

注意事項(xiàng):

自己制作文件系時(shí),需要將交叉編譯工具鏈中的庫文件拷貝到文件系統(tǒng)中。

2??調(diào)試時(shí)使用nfs掛載,調(diào)試完成后,將zImage和yaffs文件系統(tǒng)(yaffs可讀寫)燒入開發(fā)板。

二、移植過程

1、配置內(nèi)核使內(nèi)核支持芯片為ZC301的攝像頭
???Make?menuconfig

???Device?Drivers?--->?

??????????<*>?Multimedia?support?--->

???????????????????<*>?Video?For?Linux?

???????????????????[*]?Enable?Video?For?Linux?API?1?(DEPRECATED)?(NEW)

????????????????????[*]?Video?capture?adapters?(NEW)?--->

??????????????????????????????[*]?V4L?USB?devices?(NEW)?--->?

???????????????????????????????????????<*>?USB?Video?Class?(UVC)

???????????????????????????????????????[*]?UVC?input?events?device?support?(NEW)

????????????????????????????????<*>?USB?ZC0301[P]?webcam?support?(DEPRECATED)

2、重新編譯內(nèi)核?make?zImage

3、mjpg-streamer的移植

關(guān)于mjpg-streamer的資料可以在下面這個(gè)網(wǎng)址查看:http://sourceforge.net/apps/mediawiki/mjpg-streamer/index.php?title=Main_Page

mjpg-streamer的移植需要jpeg的庫,所以我們先移植jpeg的庫

(1)jpeg庫的移植

?1)jpeg源碼包通過下面這個(gè)網(wǎng)址下載??????????http://download.csdn.net/detail/colwer/4531343?

?2)解壓源碼包在/home/linux/?目錄下解壓:????????????tar?xvf?jpegsrc.v8b.tar.gz

?3)配置源碼,在/home/linux/目錄下創(chuàng)建jpeg目錄mkdir?jpeg

????????????????cd??jpeg-8b

???????????執(zhí)行????./configure??--prefix=/home/linux/jpeg??--host=arm-unknwn-linux-gnueabi

??4)編譯???????????????make

??5)安裝???????????????make?install

??6)拷貝庫到文件系統(tǒng)中????????cp??/home/linux/jpeg/lib/libjpeg.so.8???/source/rootfs/lib

(2)mjpg-streamer的移植

???????? 1)mjpg-stream源碼包通過下面這個(gè)網(wǎng)址下載??http://download.csdn.net/detail/colwer/4531434????????

???????? 2)解壓源碼????????????????tar?xvf?mjpg-streamer-r63.tar.gz

?????????3)修改源碼????????????????cd?mjpg-streamer-r63

????????????????修改頂層makefile及plugins目錄中的各級(jí)makefile,將所有

????????????????CC=gcc

????????????????修改為???????????????CC=arm-unknown-linux-gnueabi-gcc

????????修改plugins/input_uvc/Makfile

????????????????修改????????????????CFLAGS?+=?-O2?-DLINUX?-D_GNU_SOURCE?-Wall?-shared?–fPIC

????????????????為????????????????CFLAGS?+=?-O2?-DLINUX?-D_GNU_SOURCE?-Wall?-shared?-fPIC?-I/home/linux/jpeg/include

????????????????修改

????????????????$(CC)?$(CFLAGS)?-ljpeg?-o?$@?input_uvc.c?v4l2uvc.lo?jpeg_utils.lo?dynctrl.lo

????????????????為

????????????????$(CC)?$(CFLAGS)?-ljpeg?-L/home/linux/jpeg/lib?-o?$@?input_uvc.c?v4l2uvc.lo?jpeg_utils.lo?dynctrl.lo

???????4)編譯????????????????make

???????5)將mjpeg可執(zhí)行文件拷貝到文件系統(tǒng)的/bin目錄下???cp?mjpg-streamer??/source/rootfs/bin

在文件系統(tǒng)中創(chuàng)建mjpg目錄,將所有的動(dòng)態(tài)庫拷貝到該目錄下

??????????????mkdir?/source/rootfs/mjpg

????????????????cp?*.so?/source/rootfs/mjpg??{6個(gè)so文件}

將mjpeg_streamer-r63目錄下的/www目錄拷貝到文件系統(tǒng)中

cp??/www/?-a???/source/rootfs/??-rf

4?運(yùn)行

在WINDOWS下?運(yùn)行viewer.exe或運(yùn)行解壓文件中的www目錄下的所有文件復(fù)制到你當(dāng)前的BOA服務(wù)器指定的目錄下。

同時(shí)要將www目錄下的cambozla.jar?bodybg.gif?,favicon.ico,??favicon.png,??sidebarbg.gif拷貝到你的BOA服務(wù)器下。

打開開開發(fā)板將boa服務(wù)器運(yùn)行起來

????./etc/boa/boa?&

輸入下面一行命令:

./bin/mjpg_streamer??-i??"/mjpg/input_uvc.so?-d?/dev/video0"??-o??"/mjpg/output_http.so?-w??/www/??"

?在linux系統(tǒng)的瀏覽器中,輸入如下地址:??

?http://192.168.1.200:8080

顯示界面如下圖所示:

???????????

?

?

5?拍照功能的實(shí)現(xiàn)

由于mjpg_stream中output-file.so能實(shí)現(xiàn)連續(xù)拍照的功能,不能實(shí)現(xiàn)單拍或連拍幾張的功能所以需要對output_file原碼進(jìn)行修改。

#??cd?mjpg-streamer-rc63/plugins/output_file

#??vim?output_file.c

在96行?函數(shù)?void?*worker_thread(void?*arg)?體中加入以下代碼:

char?buf[10];???//

int?flags?=?0;???//拍照標(biāo)志,1:表示11張照片,2:表示1張照片

int?fd_com?=?0;?//打開管道的文件描述符

?

???stop_num?=?0;?//拍照計(jì)數(shù)

??if?(?access(“/tmp/webcom”,F_OK)?<?0?)????//創(chuàng)建有名管道用于接收拍照命令

{

???if?(?mkfifo(“/tmp/webcom”,0666?)?<?0)

???{

Printf(“?photo?fifo?create?failed\n”);

}

}

??fd_com?=?open?(“/tmp/webcom”,O_RDONLY,0666);

??if?(fd?<?0)

{

perror?(“open?the?file?webcom?error”);

}

?

在while(?ok?>=?0?&&?!pglobal->stop){?后加入

??if?(flags?==?0)

{

while(1)

?{

reade(fd_com,buf,sizeof(buf));

if?(strncmp(buf,”danger”,6)?==?0)????//拍11張照片

{

flags?=?1;

????bzero(buf,sizeof(buf));

????break;

}

if?(strncmp(buf,”one”,3)?==?0)???//1張照片

{

flags?=?2;

????bzero(buf,sizeof(buf));

????break;

}

?

}

}

?

if?(delay?>?0){

???usleep(1000*delay);

}后加入

stop_num++

if?(flags?==?1)????????//判斷拍照的數(shù)量

{

if??(?stop_num?>?9)

???{

stop_num?=?0;

flsgs?=?0;

}

}

else?if?(flags?==?2)

{

stop_num?=?0;

flags?=?0;

}

所以只要向有名管道/tmp/webcom寫入danger就能連拍11張照片,寫入one就拍一張照片。

?

:拍照功能實(shí)現(xiàn):

./bin/mjpg_streamer??–i??“/mjpeg/input_uvc.so??–d??/dev/video0”?-o?“/mjpeg/output_file.so???–f??/pice??-d??15000?”??&??echo??danger??>??/dev/video0?

轉(zhuǎn)載于:https://www.cnblogs.com/alan666/p/8312305.html

總結(jié)

以上是生活随笔為你收集整理的arm开发板6410/2440上mjpg-streamer网络视频服务器移植的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。