1. 程式人生 > >jpeg庫移植,mjpg-streamer庫移植

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/include

find ./ -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/