本章節(jié)使用的資料已經(jīng)放到了開發(fā)板網(wǎng)盤資料中,路徑為:11_Linux 系統(tǒng)開發(fā)進階\97_章節(jié)使用資料。 本章節(jié)介紹移植 MJPG 庫和 mjpg-streamer 服務(wù)器到迅為 i.MX6ULL 終結(jié)者開發(fā)板上,并將采集到的圖像通過網(wǎng)絡(luò)在 PC 機上顯示出來,交叉編譯工具為 arm-linux-gnueabihf,攝像頭為 USB 免驅(qū)攝像頭。 97.1 移植 MJPG 庫 因為使用 mjpg-streamer 要用到 MJPG 庫,所以我們要先把 MJPG 庫移植到開發(fā)板上。 MJPG 是 MJPEG 的縮寫,MJPEG 是一種視頻編碼格式,但是 MJPEG 還可以表示文件格式擴展名,常用于閉合電路的電視攝像機的模擬視頻信號“翻譯”成視頻流,能發(fā)送高質(zhì)量圖片,生成完全動畫視頻,即由系列 jpg 圖片組成視頻。 MJPG 庫下載地址:http://www.ijg.org/files/,本文檔選擇的 jpegsrc.v8b.tar.gz 這個版本,也可以使用文檔同一目錄下的 jpegsrc.v8b.tar.gz 壓縮包,然后在 Ubuntu 創(chuàng)建文件夾 mjpg, mkdir mjpg 將下載好的 jpegsrc.v8b.tar.gz 壓縮包放到 mjpg 文件夾下,然后解壓: tar -vxf jpegsrc.v8b.tar.gz ![]() 然后在此目錄下創(chuàng)建文件夾用來存放編譯生成文件, mkdir _jpeg_install, ![]() 進入 jpeg-8b 文件夾,執(zhí)行以下命令配置編譯選項: ./configure --prefix=/home/ubuntu/work/mjpg/_jpeg_install --host=arm-linux-gnueabihf 參數(shù)說明: --prefix=/home/ubuntu/work/mjpg/_jpeg_install:為上步創(chuàng)建的文件夾路徑,根據(jù)實際填寫。 --host=arm-linux-gnueabihf:為交叉編譯工具的名字。 完成后如圖 97.1.3: ![]() 執(zhí)行 make 編譯,完成后如圖 97.1.4: ![]() 執(zhí)行 make install,完成后如圖 97.1.5: ![]() 進入_jpeg_install 文件夾查看,有圖 97.1.6 所示文件即為成功: ![]() 將_jpeg_install 的/lib/下的庫文件拷貝到開發(fā)板的/lib/目錄下: ![]() ![]() 97.2 移植 mjpg-streamer 服務(wù)器 mjpg-streamer 是一個命令行應(yīng)用程序,可通過網(wǎng)絡(luò)將 JPEG 文件從網(wǎng)絡(luò)攝像頭流傳輸?shù)礁鞣N類型的查看器,例如瀏覽器,mplayer 等其他能夠接收 MJPG 流的軟件。 ![]() 下載網(wǎng)站:https://sourceforge.net/p/mjpg-streamer/code/HEAD/tree/ 輸入:svn checkout https://svn.code.sf.net/p/mjpg-streamer/code/ mjpg-streamer-code 下載,目錄下多出以下文件: ![]() 進入 mjpg-streamer/mjpg-streamer-code/mjpg-streamer/文件夾:執(zhí)行 make clean 輸入以下命令修改交叉編譯工具: find -name "Makefile" -exec sed -i "s/CC = gcc/CC = arm-linux-gnueabihf-gcc/g" {} \; 查看是否修改成功,grep "arm-linux-gnueabihf-gcc" * -nR: ![]() 繼續(xù)修改編譯選項,搜索“CFLAGS”: ![]() 根據(jù)搜索出來的信息,進入 plugins 文件夾,修改 plugins/input_uvc/Makefile,第 15 行添加 CFLAGS += -I /home/ubuntu/work/mjpg/_jpeg_install/include/ 第 25 行改為: LFLAGS += -L /home/ubuntu/work/mjpg/_jpeg_install/lib/ -ljpeg 完成后如圖 97.2.5: ![]() 回到 mjpg-streamer 目錄下,執(zhí)行 make 編譯,成功后如圖 97.2.6: ![]() 在目錄下會生成.so 庫文件和 mjpg_streamer, ![]() 將.so 文件拷貝到開發(fā)板的/lib/目錄下,mjpg_streamer 文件夾拷貝到開發(fā)板的/bin/目錄下,www 拷貝到/opt/目錄下: cp *.so start.sh mjpg_streamer ~/nfs_dir/ cp www /opt/ -rf cp mjpg_streamer /bin/ ![]() 97.3 測試 測試過程中要保證網(wǎng)絡(luò)暢通,根據(jù) start.sh 文件,輸入以下命令測試: mjpg_streamer -i "input_uvc.so -d /dev/video2 -r 320x240 -f 30 -yuv" -o "output_http.so -w /opt/www"報錯可以忽略, ![]() 下方會顯示端口號: ![]() 然后在 Ubuntu 的火狐瀏覽器輸入服務(wù)器 ip 和端口號,ip 為開發(fā)板 ip,端口號默認為 8080, http://192.168.1.120:8080/ ![]() 能看到圖像說明移植成功。 ![]() |