在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于飛凌嵌入式OK113i網頁視頻監控項目

嵌入式技術 ? 來源:嵌入式技術 ? 作者:嵌入式技術 ? 2024-01-08 22:57 ? 次閱讀

1.開發板簡介

OK113i-S開發板采用核心板+底板的結構形式,基于全志T113-i處理器設計開發,處理器為ARMCortex-A7, RISCV, HiFi4 DSP多核異構架構,主頻1.2GHz,核心板有兩種規格,分別是512MB DDR3L內存加8GB eMMC版本和256MB DDR3L內存加256MB SPI Nand版本。OK113i-S開發板將核心板的功能接口資源豐富、提供多種外設接口,如網卡、CPU內置音頻Codec、ADC、TF Card、LVDS、RGB、WIFI、4G等功能接口。

2.硬件開發平臺

開發平臺:Linux-5.4

編譯器:arm-linux-gnueabi-gcc 7.3.1

USB攝像頭

OK113i開發板

實現功能:通過OK113i飛凌嵌入式開發板,采用USB設備頭,通過V4L2框架實現視頻圖像采集。創建攝像頭圖像采集線程,搭建HTTP服務器,固定端口號為8080,建立HTTP長連接,實現網頁視頻監控。

wKgaomWcCPiAadZLADnMcr04vyA576.pngwKgaomWcCW-AQ7roAFOLMXM97TI381.png

3.功能實現

1.移植交叉編譯器arm-linux-gnueabi-gcc。

2.移植矢量字庫freetye。

3.初始化攝像頭,通過V4L2驅動框架實現攝像頭編程;

4.創建攝像頭采集線程,搭建HTTP服務器,多線程處理http客戶端數據請求,建立http長連接;

5.采用互斥鎖+條件變量方式實現多線程間資源保護,將攝像頭采集圖像實時上傳至網頁端;

4.矢量字庫編譯與移植

FreeType 庫是一個完全免費(開源)的、高質量的且可移植的字體引擎,它提供統一的接口來訪問多種字體格式文件,可以非常方便我們開發字體顯示相關的程序功能。它支持單色位圖、反走樣位圖的渲染。 FreeType 庫是高度模塊化的程序庫,雖然它是使用 ANSI C開發,但是采用面向對象的思想,因此, FreeType 的用戶可以靈活地對它進行裁剪。關于freetype 的詳細信息可以參考 freetype 的官方網站:https://www.freetype.org/來獲取更多相關的信息。

wKgZomWcCp2AFpH8AAwzInNqcm4185.png

[wbyq@wbyq src_pack]$ tar xvf /mnt/hgfs/ubuntu/software_pack/freetype-2.4.10.tar.bz2
[wbyq@wbyq src_pack]$ cd freetype-2.4.10/
[wbyq@wbyq freetype-2.4.10]$ ./configure --prefix=$PWD/_install --host=arm-linux
[wbyq@wbyq freetype-2.4.10]$ make && make install

5.V4L2攝像頭編程

V4L2 是 Video for linux2 的簡稱,為 linux 中關于視頻設備的內核驅動。在 Linux 中,視頻設備是設備文件,可以像訪問普通文件一樣對其進行讀寫,攝像頭在/dev/video*下,如果只有一個視頻設備,通常為/dev/video0。V4L2 是針對 uvc 免驅 usb 設備的編程框架,主要用于采集 usb 攝像頭等,編程模式如下:

wKgaomWcC2OAHt_-AAKSjArmBCM337.png

攝像頭初始化示例如下:

/*

攝像頭初始化

返回值:成功返回攝像頭描述符,失敗返回負數

*/

int Video_Init(struct CAMERA *camera)

{

    int video_fd;

    int i=0;

	/*1.打開設備節點*/

	video_fd=open(VIDEO_DEV,O_RDWR);

	if(video_fd==-1)return -1;

	/*2.設置攝像頭格式*/

	struct v4l2_format format;

	memset(&format,0,sizeof(format));

	format.type=V4L2_BUF_TYPE_VIDEO_CAPTURE;//視頻捕獲格式

	format.fmt.pix.width=800;

	format.fmt.pix.height=480;

	format.fmt.pix.pixelformat=V4L2_PIX_FMT_YUYV;//圖像數據格式yuyv

	if(ioctl(video_fd,VIDIOC_S_FMT,&format))return -2;

	printf("圖像尺寸:%d * %dn",format.fmt.pix.width,format.fmt.pix.height);

	camera->image_w=format.fmt.pix.width;

	camera->image_h=format.fmt.pix.height;

	/*3.向內核請求緩沖區*/

	struct v4l2_requestbuffers reqbuf;

	memset(&reqbuf,0,sizeof(reqbuf));

	reqbuf.count=4;/*緩沖區個數*/

	reqbuf.type=V4L2_BUF_TYPE_VIDEO_CAPTURE;//視頻捕獲格式

	reqbuf.memory=V4L2_MEMORY_MMAP;/*內存映射*/

	if(ioctl(video_fd,VIDIOC_REQBUFS,&reqbuf))return -3;

	printf("緩沖區個數:%dn",reqbuf.count);

	/*4.將緩沖區映射到進程空間*/

	struct v4l2_buffer quebuff;

	for(i=0;imamp_buff[i]=mmap(NULL,quebuff.length,PROT_READ|PROT_WRITE,MAP_SHARED,video_fd,quebuff.m.offset);

		printf("buff[%d]=%pn",i,camera->mamp_buff[i]);

		camera->mmap_size=quebuff.length;

	}

	/*5.將緩沖區添加到采集隊列*/

	for(i=0;i

6.搭建HTTP服務器

HTTP 協議是 Hyper Text Transfer Protocol(超文本傳輸協議)的縮寫,是用于從萬維網(WWW:World WideWeb )服務器傳輸超文本到本地瀏覽器的傳送協議。

HTTP 是基于客戶端/服務端(C/S)的架構模型,通過一個可靠的鏈接來交換信息,是一個無狀態的請求/響應協議。一個 HTTP"客戶端"是一個應用程序(Web 瀏覽器或其他任何客戶端),通過連接到服務器達到向服務器發送一個或多個 HTTP 的請求的目的。一個 HTTP"服務器"同樣也是一個應用程序通過接收客戶端的請求并向客戶端發送 HTTP 響應數據。HTTP 使用統一資源標識符(Uniform Resource Identifiers, URI)來傳輸數據和建立連接。

HTTP服務器創建示例:

/*1.創建網絡套接字*/

    sockfd=socket(AF_INET,SOCK_STREAM,0);

    if(sockfd==-1)

	 {

		 printf("創建socket套接字失敗n");

		 return 0;

	 }

     /*允許綁定已使用的端口號*/

	 int on = 1;

	 setsockopt(sockfd, SOL_SOCKET, SO_REUSEADDR, &on, sizeof(on));

	 /*2.綁定端口號*/

	 struct sockaddr_in addr=

	 {

		.sin_family=AF_INET,//IPV4

		.sin_port=htons(HTTP_SERVER_PORT),//端口號

		.sin_addr.s_addr=INADDR_ANY,//本地所有IP

	 };

	 if(bind(sockfd,(struct sockaddr*)&addr,sizeof(addr)))

	 {

		 printf("綁定端口號失敗n");

		 return 0;

	 }

	 /*設置監聽數量*/

	 listen(sockfd,100);

	 /*等待客戶端連接*/

	 struct sockaddr_in c_addr;

	 socklen_t addrlen=sizeof(c_addr);

	 int c_fd;

	 int *p;

	 while(1)

	 {

		 c_fd=accept(sockfd, (struct sockaddr *)&c_addr,&addrlen);

		 if(c_fd==-1)continue;

		 printf("%d 客戶端連接成功%s:%dn",c_fd,inet_ntoa(c_addr.sin_addr),ntohs(c_addr.sin_port));

		 p=malloc(sizeof(int));

		 *p=c_fd;

		 pthread_create(&pthid,NULL,pth_work,p);

		 pthread_detach(pthid);//設置分離屬性

	 }   

7.網頁視頻監控處理

創建攝像頭采集線程,將采集的圖像進行JPG格式編碼,挺添加時間水印信息。攝像頭處理線程如下:

/*攝像頭處理函數*/

void *pth_camera_work(void *arg)

{

    LCD_Init();//LCD初始化

    video_fd=Video_Init(&camera);//攝像初始化

    if(video_fd

8.運行效果

wKgaomWcDRiAQ9bcAEe1tnzB810217.png

審核編輯 黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 嵌入式
    +關注

    關注

    5082

    文章

    19122

    瀏覽量

    305107
  • 視頻監控
    +關注

    關注

    17

    文章

    1710

    瀏覽量

    64968
  • 飛凌
    +關注

    關注

    0

    文章

    134

    瀏覽量

    16112
  • V4L2
    +關注

    關注

    0

    文章

    17

    瀏覽量

    3896
收藏 人收藏

    評論

    相關推薦

    技術帖 | 飛嵌入式T113-i開發板的休眠及喚醒操作

    嵌入式OK113i-S開發板支持兩種休眠方式:freeze和mem。本篇內容小編會為大家介紹如何讓飛嵌入式
    的頭像 發表于 12-29 08:02 ?1248次閱讀
    技術帖 | 飛<b class='flag-5'>凌</b><b class='flag-5'>嵌入式</b>T<b class='flag-5'>113-i</b>開發板的休眠及喚醒操作

    【飛 OK113i-C 全志T113-i開發板】視頻編解碼測試

    前言本文測試OK113i-S開發板-視頻編解碼的功能OK113i-S開發板是支持視頻的編解碼的,下面是官方介紹的編解碼功能T113-i 是一
    發表于 12-25 09:41

    【飛OK113i-S開發板試用】基于飛嵌入式OK113i網頁視頻監控項目

    :arm-linux-gnueabi-gcc 7.3.1 USB攝像頭 OK113i開發板實現功能:通過OK113i嵌入式開發板,采用USB設備頭,通過V4L2框架實現
    發表于 01-09 11:31

    雙核Cortex-A7 CPU、64位玄鐵C906 RISC-V CPU,OK113i-S開發板開發體驗

    OK113i網頁視頻監控項目 實現功能: 通過OK113i
    發表于 01-16 10:07

    嵌入式全志T113-i開發板的休眠及喚醒操作

    嵌入式OK113i-S開發板支持兩種休眠方式:freeze和mem。這兩種方式可以通過/sys/power/state文件節點進行操作,用戶可以通過在該文件節點寫入freeze或mem來觸發相應
    發表于 01-17 09:29

    OK210申請】基于飛嵌入式OK210的多媒體播放系統

    微博,http://weibo.com/2840996695/profile?topnav=1&amp;wvr=6項目描述:項目名稱:基于飛
    發表于 07-06 17:37

    OK210申請】基于飛嵌入式智能家居系統飛嵌入式OK210開發板申請

    3.組員:三名,王亞玲,魏玉娟,張向前4.研發的方向為智能家居嵌入式方向5.本人自小就有對電子又很濃厚的興趣,在大學研究過微型空調的設計制作,單片機系統,嵌入式,機器人等項目項目描述:
    發表于 07-13 12:03

    【實戰項目一:嵌入式視頻監控系統】【初學必學】

    網頁視頻監控系統實戰項目(驅動移植部分一)2.【創科之龍】嵌入式網頁
    發表于 07-19 18:18

    OK210申請】基于飛嵌入式智能家居系統

    可以用它來開發小軟件。項目描述:基于飛嵌入式的智能家居,通過對飛的了解,感覺選擇飛
    發表于 07-25 17:19

    OK210申請】基于arm嵌入式監控智能小車的設計與實現

    視頻流的讀取該項目仍在進行中真的很希望可以獲得飛ok210的開發板進行arm平臺的移植和后面項目的實現,以及對飛
    發表于 08-03 09:40

    分享一個不錯的基于飛嵌入式A40i實現網約車車載終端方案

    分享一個不錯的基于飛嵌入式A40i實現網約車車載終端方案
    發表于 12-27 07:18

    OK113i-C 全志T113-i開發板初體驗

    All available board: 0. ok113i Choice [ok113i]: 0 All available flash: 0. default 1. nor 2. nand
    發表于 12-14 15:33

    嵌入式T113-i開發板的調屏方法,就是這樣簡單

    的配備為客戶提供了更加多樣的選擇。今天小編就與大家分享一下為飛嵌入式OK113i-S開發板適配LVDS屏幕的過程。
    的頭像 發表于 01-12 11:50 ?2235次閱讀
    飛<b class='flag-5'>凌</b><b class='flag-5'>嵌入式</b>T<b class='flag-5'>113-i</b>開發板的調屏方法,就是這樣簡單

    如何在飛嵌入式T113-i開發板的Buildroot中移植MQTT協議?

    嵌入式OK113i-S開發板上市一段時間以來收獲了很多關注,也成為了許多客戶項目選型的優質之選。在實際的項目開發中,工程師朋友們可能會需
    的頭像 發表于 01-26 08:02 ?526次閱讀
    如何在飛<b class='flag-5'>凌</b><b class='flag-5'>嵌入式</b>T<b class='flag-5'>113-i</b>開發板的Buildroot中移植MQTT協議?

    嵌入式T113-i開發板的調屏方法

    于飛嵌入式T113-i開發板的調屏問題,需要按照以下步驟進行操作
    的頭像 發表于 01-29 16:25 ?995次閱讀
    主站蜘蛛池模板: a色网站| 手机看片久久| 成人影院久久久久久影院| a毛片免费观看完整| 国产精品天天操| 91精品久久久久含羞草| 最新亚洲情黄在线网站| 九九re| 婷婷精品视频| 一级国产特黄aa大片| 天堂资源bt| 毛片毛片| 自拍偷拍福利视频| 黄色日批网站| 亚洲视频一区二区在线观看| 2021色噜噜狠狠综曰曰曰| 色狠狠色综合久久8狠狠色| 久久精品视频7| 偷拍福利视频| 视频h在线观看| 亚洲怡红院在线观看| 狠狠狠色丁香婷婷综合激情| 天天操天天舔| 18videosex欧美69| 日本黄网站高清色大全| 国产高清一区二区三区四区| 人人九九精品| 香蕉久久高清国产精品免费| 五月六月激情| 伊人免费网| xxxx性欧美极品另类| 五月六月婷婷| 午夜国产精品免费观看| 美女张开腿让男生桶出水| 欧美一级看片免费观看视频在线| bt天堂网在线资源www| www.日日爱| 亚洲人的天堂男人爽爽爽| 久久中文字幕综合婷婷| 女bbbbxxxx毛片视频0| 男男生子大肚play做到生|