電子工程網(wǎng)

標題: 全志A40i試用體驗-遠程視頻監控 [打印本頁(yè)]

作者: 繁花之語(yǔ)    時(shí)間: 2023-2-15 14:56
標題: 全志A40i試用體驗-遠程視頻監控

今天來(lái)介紹一個(gè)解決方案MJPG-Streamer。MJPG-Streamer的原理是將USB攝像頭采集的圖像以JPEG格式發(fā)送出去,然后持續更新圖片形成一個(gè)視頻流。


它的優(yōu)勢有兩個(gè):

一個(gè)是和瀏覽器的兼容性最好,可以輕松地在瀏覽器中顯示,而無(wú)需擔心瀏覽器是否支持Flash或流媒體協(xié)議;二是采用JPEG沒(méi)有前后幀的關(guān)聯(lián),所以如果出現丟包只影響當前畫(huà)面,而不會(huì )像H.264那樣可能連續一段時(shí)間的馬賽克圖像。


當然也有缺點(diǎn):

它的缺點(diǎn)是JPEG流的壓縮效率比較低,比H.264浪費帶寬。


二. Libjpeg庫的編譯

MJPG-Streamer要用到libjpeg,所以首先需要編譯libjpeg。首先訪(fǎng)問(wèn)http://www.ijg.org/下載源代碼,我使用的是最新的9e版本。將源代碼解壓到j(luò )peg-9e目錄后,在該命令下執行configure命令進(jìn)行配置:

1

./configure --host=ARM-linux-gnueabihf --prefix=/mnt/boaled/jpeg-9e/_install/


其中的host是指明所使用的編譯器,prefix是指定編譯后文件安裝的目錄。

然后執行下面的命令:

1

make

2

make install





命令執行完畢,就會(huì )在prefix所指定的目錄下生成4個(gè)目錄,其中include目錄包括所需要的頭文件,而lib目錄下包括庫文件。這些在后面會(huì )用到。


編譯后需要把libjpeg.so.9.5.0拷貝到開(kāi)發(fā)板的 /usr/lib 目錄下,并建立一個(gè)指向該文件的軟連接libjpeg.so.9。


另外,開(kāi)發(fā)板原來(lái)帶有libjpeg.so.8.0.2這個(gè)版本。如果不希望安裝更新版本,也可以在http://www.ijg.org/files/下載和板子對應的歷史版本。


三. MJPG-Streamer的編譯

MJPG-Streamer有兩個(gè)主要版本(建議在PC打開(kāi)鏈接):

1.http://sourceforge.net/projects/mjpg-streamer/這個(gè)是原始版本,不過(guò)原作者已經(jīng)放棄更新了。

2.https://github.com/jacksonliam/mjpg-streamer/

這個(gè)是后續更新的版本。


要在飛凌嵌入式OKA40i-C開(kāi)發(fā)板上使用,只能使用sourceforge那個(gè)版本。因為github的版本雖然更新,但是它對內核的版本有要求,至少3.18以上。


OKA40i-C開(kāi)發(fā)板提供的內核版本是3.10,無(wú)法正確處理新版本的某些V4L2消息。另外,github版本采用CMake進(jìn)行編譯,后面所介紹的編譯方法也不適用。


進(jìn)入下方地址:

https://sourceforge.net/p/mjpg-streamer/code/HEAD/tree/

點(diǎn)右上的“Download Snapshot”下載最新版的mjpg-streamer-code-182。這里可以看到兩個(gè)mjpg-streamer目錄。一般使用mjpg-streamer-experimental這個(gè)版本,它支持的功能更多一些。





在編譯之前,需要先修改plugins/input_uvc目錄下的makefile文件,在其中加入如下兩行:






這兩行的作用就是編譯時(shí)能夠找到我們前面生成的libjpeg庫。如果想修改MJPG-Streamer的插件設置,也可以修改mjpg-streamer-experimental目錄下的makefile:






在本次測試中用不到其他插件,所以就采用默認配置。

然后在命令行執行下面的命令就可以編譯了。

1

make CC=arm-linux-gnueabihf-gcc





編譯成功后把mjpg_streamer和幾個(gè)so文件都拷貝到開(kāi)發(fā)板上并正確設置好權限就可以運行了。


四. 測試結果

在input_testpicture插件中帶有一幅默認圖片,即使你手上沒(méi)有攝像頭,也可以使用該插件測試MJPG-Streamer的功能。

在開(kāi)發(fā)板的終端輸入如下命令:

1

./mjpg_streamer -i "input_testpicture.so"





如果使用USB攝像頭,需要使用input_uvc.so插件,在開(kāi)發(fā)板的終端輸入命令,結果如下圖所示:

1

./mjpg_streamer -i "input_uvc.so -r 800x600" -o "output_http.so"











歡迎光臨 電子工程網(wǎng) (http://selenalain.com/) Powered by Discuz! X3.4
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页