jpeg庫移植,mjpg-streamer庫移植
JPEG 是全綵色和灰度影象標準化的壓縮方法。
libjpeg是一個完全用C語言編寫的庫。libjpeg 是一個完全用C語言編寫的庫,包含了被廣泛使用的JPEG解碼、JPEG編碼和其他的JPEG功能的實現。這個庫由獨立JPEG工作組維護。
libjpeg包含以下工具程式:
cjpeg and djpeg,用於JPEG和一些其他流行圖形檔案格式之間的轉換。
rdjpgcom and wrjpgcom,用於在JFIF檔案中插入和提取文字資訊。
jpegtran – 一個用於在不同的JPEG格式之間進行無損轉換的工具。
官網:http://www.ijg.org/
MJPG-streamer 為免費開源的視屏流傳輸軟體。
MJPG-streamer 從Linux-UVC相容的攝像頭、檔案系統、或其他輸入外掛獲取JPEG影象,轉換成流式的M-JPEG,通過HTTP傳輸到瀏覽器,VLC和其他軟體。
下載地址:http://sourceforge.net/projects/mjpg-streamer/
MJPG-streamer 需要JPEG庫的支援。
JPEG庫移植
1.下載原始碼包、解壓
tar zxvf jpegsrc.v6b.tar.gz
2.配置
./configure --prefix /opt/arm-jpeg --host=arm-linux --enable-shared
3.編譯
make
4.安裝
make install
mjpg-streamer庫移植
1.下載原始碼包、解壓
tar xvf mjpg-streamer-r63.tar.gz
2.修改Makefile並編譯
先新增庫和標頭檔案路徑: export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/arm-jpeg/lib export C_INCLUDE_PATH=$C_INCLUDE_PATH:/opt/arm-jpeg/includefind ./ -name "Makefile" -exec sed -i "s/CC = gcc/CC = arm-linux-gcc/g" {} \;
make
編譯完後,在當前目錄會得到如下檔案:
多個.so庫檔案
mjpg_streamer
start.sh
3.複製檔案到開發板
sudo cp *.so /nfsroot/opt/mjpg-streamer/
sudo cp mjpg-streamer /nfsroot/opt/mjpg-streamer/
sudo cp start.sh /nfsroot/opt/mjpg-streamer/
sudo cp -r www/ /nfsroot/opt/mjpg-streamer/
sudo cp -r /opt/jpeg-arm/lib/* /nfsroot/opt/mjpg-streamer/
4.測試
修改start.sh,註釋掉28行,開啟最後一行註釋:
28 #./mjpg_streamer -o "output_http.so -w ./www"
./mjpg_streamer -i "./input_testpicture.so -r 320x240 -d 500" -o "./output_http.so -w www"
在開發板執行:
./start.sh
此時,開發板為伺服器並開始執行
在PC瀏覽器位址列輸入開發板IP:8080
可看到選項卡中的動態影象
如果有攝像頭
驅動配置支援
插好攝像頭之後出現video3裝置節點
修改啟動指令碼start.sh
./mjpg_streamer -i "./input_uvc.so -r 320x240 -d /d ev/video3 -f 30" -o "./output_http.so -w www -p 80"
即可顯示視訊
問題:
1.致命錯誤: linux/videodev.h:沒有那個檔案或目錄
解決:從舊的kernel中找到該標頭檔案並複製到系統目錄下
sudo cp videodev.h /usr/include/linux/