《基于嵌入式的家庭遠(yuǎn)程監(jiān)控系統(tǒng)》項(xiàng)目總結(jié)_第1頁(yè)
《基于嵌入式的家庭遠(yuǎn)程監(jiān)控系統(tǒng)》項(xiàng)目總結(jié)_第2頁(yè)
《基于嵌入式的家庭遠(yuǎn)程監(jiān)控系統(tǒng)》項(xiàng)目總結(jié)_第3頁(yè)
《基于嵌入式的家庭遠(yuǎn)程監(jiān)控系統(tǒng)》項(xiàng)目總結(jié)_第4頁(yè)
《基于嵌入式的家庭遠(yuǎn)程監(jiān)控系統(tǒng)》項(xiàng)目總結(jié)_第5頁(yè)
已閱讀5頁(yè),還剩2頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、基于嵌入式的家庭遠(yuǎn)程監(jiān)控系統(tǒng)項(xiàng)目總結(jié)使用v4l2視頻數(shù)據(jù)采集一、打開設(shè)備文件,和普通文件那樣打開即可二、捕捉視頻的前期準(zhǔn)備1、獲取參數(shù)和設(shè)置要求v4l2_capability結(jié)構(gòu)體通過VIDIO_QUERYCAP操作命令獲取設(shè)備驅(qū)動(dòng)的參數(shù),保存于v4l2_capability結(jié)構(gòu)體中,包括driver(驅(qū)動(dòng)名),card(設(shè)備名),bus_info(總線信息)等v4l2_cropcap結(jié)構(gòu)體先設(shè)置v4l2_cropcap的type域,再通過VIDIO_CROPCAP操作命令獲取設(shè)備捕捉能力的參數(shù),保存于v4l2_cropcap結(jié)構(gòu)體中,包括bounds(最大捕捉方框的左上角坐標(biāo)和寬高),def

2、rect(默認(rèn)捕捉方框的左上角坐標(biāo)和寬高)等v4l2_format結(jié)構(gòu)體先填好v4l2_format的各個(gè)域,如type(傳輸流類型),fmt.pix.width(寬),fmt.pix.heigth(高),fmt.pix.field(采樣區(qū)域,如隔行采樣),fmt.pix.pixelformat(采樣類型,如YUV4:2:2),然后通過VIDIO_S_FMT操作命令設(shè)置視頻捕捉格式2、初始化內(nèi)存映射v4l2_requestbuffers結(jié)構(gòu)體先填好v4l2_requestbuffers的一些域,如count(幀緩沖個(gè)數(shù))等,通過操作命令VIDIO_REQBUFS根據(jù)v4l2_requestbu

3、ffers的要求向內(nèi)核申請(qǐng)幀緩沖向內(nèi)存申請(qǐng)相對(duì)應(yīng)的映射空間,然后再使用mmap()系統(tǒng)調(diào)用實(shí)現(xiàn)內(nèi)核中的幀緩沖和內(nèi)存中映射空間相互映射v4l2_buffer結(jié)構(gòu)體由于在內(nèi)核中申請(qǐng)幀緩存和在內(nèi)存中申請(qǐng)映射空間不同,后者申請(qǐng)后返回首地址,以后可以通過該首地址向映射空間操作,而前者沒有,所以得要v4l2_buffer結(jié)構(gòu)體做中介。先填好v4l2_buffer結(jié)構(gòu)體的一些域,如index(幀號(hào)),type(傳輸流類型),然后通過操作命令VIDIO_QUERYBUF獲取相對(duì)應(yīng)于幀號(hào)的緩沖幀的信息,并保存于v4l2_buffer結(jié)構(gòu)體中三、捕捉視頻1、啟動(dòng)攝像頭捕捉視頻v4l2_buf_type枚舉類型將其

4、設(shè)置為V4L2_BUF_TYPE_VIDIO_CAPTURE類型,然后使用VIDIOC_STREAMON操作命令根據(jù)v4l2_buf_type的值開始捕捉視頻2、不斷的讀取數(shù)據(jù)用select()系統(tǒng)調(diào)用輪詢文件描述符集合中的設(shè)備是否準(zhǔn)備好,如果準(zhǔn)備好,即只要從映射空間中讀取數(shù)據(jù)即可注意:在這兩個(gè)過程中,需要不斷地將已經(jīng)讀取完數(shù)據(jù)的緩沖幀出隊(duì)列,并插進(jìn)到隊(duì)列尾,以存儲(chǔ)攝像頭捕捉到的新數(shù)據(jù)3、停止攝像頭捕捉視頻和啟動(dòng)攝像頭捕捉視頻類似,只是改用VIDIO_STREAMOFF操作命令罷了四、關(guān)閉設(shè)備文件,和普通文件那樣關(guān)閉即可背景:閱讀新聞基于嵌入式的家庭遠(yuǎn)程監(jiān)控系統(tǒng)項(xiàng)目總結(jié)SDL學(xué)習(xí)入門日期:20

5、12-07-14來(lái)源:Linux社區(qū) 作者:xuyuanfan77字體:大中小1、搭建開發(fā)平臺(tái) (1)sudo apt-get install libsdl1.2-dev 最基本的開發(fā)包 (2)sudo apt-get install libsdl-image1.2-dev 關(guān)于圖像的開發(fā)包 (3)sudo apt-get install libsdl-mixer1.2-dev 關(guān)于音頻的開發(fā)包 (4)sudo apt-get install libsdl-ttf2.0-dev 關(guān)于文字的開發(fā)包 安裝好以上四個(gè)開發(fā)包,開發(fā)平臺(tái)算是搭建好了2、最有代表性的簡(jiǎn)單程序,包括圖像,文字,音樂,注釋如下

6、: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*bgs

7、ound;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;/設(shè)置截取范圍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

8、)/2;71. drect.y=(400-text_sur-h)/2;72. drect.w=text_sur-w;73. drect.h=text_sur-h;/設(shè)置截取范圍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(

9、bgsound.mp3);/導(dǎo)入聲音文件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();/關(guān)閉音頻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編譯時(shí)可

10、能會(huì)出現(xiàn)如下錯(cuò)誤: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+0xc

11、7):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):undefinedreference

12、toTTF_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):u

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論