已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于嵌入式的家庭远程监控系统项目总结使用v4l2视频数据采集一、打开设备文件,和普通文件那样打开即可二、捕捉视频的前期准备1、获取参数和设置要求v4l2_capability结构体通过VIDIO_QUERYCAP操作命令获取设备驱动的参数,保存于v4l2_capability结构体中,包括driver(驱动名),card(设备名),bus_info(总线信息)等v4l2_cropcap结构体先设置v4l2_cropcap的type域,再通过VIDIO_CROPCAP操作命令获取设备捕捉能力的参数,保存于v4l2_cropcap结构体中,包括bounds(最大捕捉方框的左上角坐标和宽高),defrect(默认捕捉方框的左上角坐标和宽高)等v4l2_format结构体先填好v4l2_format的各个域,如type(传输流类型),fmt.pix.width(宽),fmt.pix.heigth(高),fmt.pix.field(采样区域,如隔行采样),fmt.pix.pixelformat(采样类型,如YUV4:2:2),然后通过VIDIO_S_FMT操作命令设置视频捕捉格式2、初始化内存映射v4l2_requestbuffers结构体先填好v4l2_requestbuffers的一些域,如count(帧缓冲个数)等,通过操作命令VIDIO_REQBUFS根据v4l2_requestbuffers的要求向内核申请帧缓冲向内存申请相对应的映射空间,然后再使用mmap()系统调用实现内核中的帧缓冲和内存中映射空间相互映射v4l2_buffer结构体由于在内核中申请帧缓存和在内存中申请映射空间不同,后者申请后返回首地址,以后可以通过该首地址向映射空间操作,而前者没有,所以得要v4l2_buffer结构体做中介。先填好v4l2_buffer结构体的一些域,如index(帧号),type(传输流类型),然后通过操作命令VIDIO_QUERYBUF获取相对应于帧号的缓冲帧的信息,并保存于v4l2_buffer结构体中三、捕捉视频1、启动摄像头捕捉视频v4l2_buf_type枚举类型将其设置为V4L2_BUF_TYPE_VIDIO_CAPTURE类型,然后使用VIDIOC_STREAMON操作命令根据v4l2_buf_type的值开始捕捉视频2、不断的读取数据用select()系统调用轮询文件描述符集合中的设备是否准备好,如果准备好,即只要从映射空间中读取数据即可注意:在这两个过程中,需要不断地将已经读取完数据的缓冲帧出队列,并插进到队列尾,以存储摄像头捕捉到的新数据3、停止摄像头捕捉视频和启动摄像头捕捉视频类似,只是改用VIDIO_STREAMOFF操作命令罢了四、关闭设备文件,和普通文件那样关闭即可背景:阅读新闻基于嵌入式的家庭远程监控系统项目总结SDL学习入门日期:2012-07-14来源:Linux社区 作者:xuyuanfan77字体:大中小1、搭建开发平台 (1)sudo apt-get install libsdl1.2-dev 最基本的开发包 (2)sudo apt-get install libsdl-image1.2-dev 关于图像的开发包 (3)sudo apt-get install libsdl-mixer1.2-dev 关于音频的开发包 (4)sudo apt-get install libsdl-ttf2.0-dev 关于文字的开发包 安装好以上四个开发包,开发平台算是搭建好了2、最有代表性的简单程序,包括图像,文字,音乐,注释如下:1. #include2. #include3. #include4. #include5. #include6. #include7. 8. staticSDL_Surface*screen;/SDL窗口9. 10. intmain(intargc,char*argv)11. 12. 13. intquit=0;14. SDL_Surface*text_sur;/文字容器15. SDL_Surface*background;/图像容器16. SDL_Eventevent;17. SDL_Colorcolor;18. SDL_Rectsrect,drect;19. Mix_Music*bgsound;20. TTF_Font*font;21. 22. /初始化SDL23. if(SDL_Init(SDL_INIT_VIDEO|SDL_INIT_AUDIO)w;47. srect.h=background-h;48. drect=srect;/设置截取范围49. SDL_BlitSurface(background,&srect,screen,&drect);/将图像容器放入SDL窗口50. 51. /*显示文字*/52. /初始化TTF53. if(TTF_Init()w;68. srect.h=text_sur-h;69. 70. drect.x=(600-text_sur-w)/2;71. drect.y=(400-text_sur-h)/2;72. drect.w=text_sur-w;73. drect.h=text_sur-h;/设置截取范围74. SDL_BlitSurface(text_sur,&srect,screen,&drect);/将文字容器放入SDL窗口75. 76. SDL_UpdateRect(screen,0,0,600,400);/更新SDL窗口,让新添加的容器显示77. 78. /*播放声音*/79. Mix_OpenAudio(44100,AUDIO_S16,2,4096);/打开音频80. bgsound=Mix_LoadMUS(bgsound.mp3);/导入声音文件81. Mix_PlayMusic(bgsound,-1);/播放音频82. while(quit=0)83. 84. while(SDL_PollEvent(&event)85. 86. switch(event.type)87. 88. caseSDL_QUIT:89. Mix_CloseAudio();/关闭音频90. quit=1;91. break;92. default:93. break;94. 95. 96. SDL_Delay(100);97. 98. 99. return0;100. 问题:gcc main.c -o main编译时可能会出现如下错误:1. main.c:(.text+0x19):undefinedreferencetoSDL_Init2. main.c:(.text+0x22):undefinedreferencetoSDL_GetError3. main.c:(.text+0x50):undefinedreferencetoSDL_Quit4. main.c:(.text+0x79):undefinedreferencetoSDL_SetVideoMode5. main.c:(.text+0x8c):undefinedreferencetoSDL_GetError6. main.c:(.text+0xc7):undefinedreferencetoSDL_WM_SetCaption7. main.c:(.text+0xd3):undefinedreferencetoIMG_Load8. main.c:(.text+0x132):undefinedreferencetoSDL_UpperBlit9. main.c:(.text+0x137):undefinedreferencetoTTF_Init10. main.c:(.text+0x140):undefinedreferencetoSDL_GetError11. main.c:(.text+0x174):undefinedreferencetoTTF_OpenFont12. main.c:(.text+0x1a3):undefinedreferencetoTTF_RenderText_Solid13. main.c:(.text+0x24c):undefinedreferencetoSDL_UpperBlit14. main.c:(.text+0x279):undefinedreferencetoSDL_UpdateRect15. main.c:(.text+0x29d):undefinedreferencetoMix_OpenAudio16. main.c:(.text+0x2a9):undefinedreferencetoMix_LoadMUS17. main.c:(.text+0x2c1):undefinedreferencetoMix_PlayMusic18. main.c:(.text+0x2d5):undefinedreferencetoMix_CloseAudio19. main.c:(.text+0x2ec):undefinedreferencetoSDL_PollEvent20. main.c:(.text+0x2fc):undefine
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年淄博辅警招聘考试真题及答案详解(网校专用)
- 2025年迪庆州辅警招聘考试真题附答案详解(满分必刷)
- 2025年绍兴辅警协警招聘考试真题含答案详解(培优a卷)
- 2025年铁岭辅警招聘考试真题有完整答案详解
- 2025年石柱县辅警招聘考试真题及一套参考答案详解
- 2025年衡水辅警协警招聘考试备考题库及答案详解(考点梳理)
- 2025年衢州辅警协警招聘考试备考题库含答案详解(巩固)
- 2025年温州辅警招聘考试真题含答案详解(b卷)
- 2025年阜新辅警招聘考试真题附答案详解(预热题)
- 2025年盘锦辅警招聘考试题库及参考答案详解
- 少先队活动课《民族团结一家亲-同心共筑中国梦》课件
- Unit4 Body Language Using Language 说课稿-2024-2025学年高中英语人教版(2019)选择性必修第一册
- 医疗机构信息系统安全防护预案
- 矿山生态保护修复工程质量验收规范
- 行政办事员五级(初级工)考试复习题及答案
- 青岛版数学五年级上册解方程练习200道及答案
- 兼职工作协议书模板2024年
- 焊接机器人操作技术第3章 焊接机器人在线操作
- 输变电工程施工质量验收统一表式附件1:线路工程填写示例
- 水利安全生产风险防控“六项机制”右江模式经验分享
- 输电线路安全施工培训
评论
0/150
提交评论