背景
在開發(fā)板上有一個csi轉(zhuǎn)dvp接口的攝像頭,但是,目前還不會驅(qū)動,先使用usb攝像頭來采集圖像數(shù)據(jù)。
本小節(jié)使用ffmpeg和fswebcam實現(xiàn)拍照。
(一)FFmpeg
1、簡介:
- FFmpeg是一套可以用來記錄、轉(zhuǎn)換數(shù)字音頻、視頻,并能將其轉(zhuǎn)化為流的開源計算機程序。采用LGPL或GPL許可證。它提供了錄制、轉(zhuǎn)換以及流化音視頻的完整解決方案。它包含了非常先進的音頻/視頻編解碼庫libavcodec,為了保證高可移植性和編解碼質(zhì)量,libavcodec里很多code都是從頭開發(fā)的。
- 前面的"FF"代表"Fast Forward"。
- FFmpeg有非常強大的功能包括視頻采集功能、視頻格式轉(zhuǎn)換、視頻抓圖、給視頻加水印等。
- 在Linux平臺上,ffmpeg對V4L2的視頻設備提供了很好的支持,如:
./ffmpeg -t 10 -f video4linux2 -s 176*144 -r 8 -i /dev/video0 -vcodec h263 -f rtp rtp://192.168.1.105:5060 > /tmp/ffmpeg.sdp
以上命令表示:采集10秒鐘視頻,對video4linux2視頻設備進行采集,采集QCIF(176*144)的視頻,每秒8幀,視頻設備為/dev/video0,視頻編碼為H263,輸出格式為RTP,后面定義了IP地址及端口,將該碼流所對應的SDP文件重定向到/tmp/ffmpeg.sdp中,將此SDP文件上傳到流媒體服務器就可以實現(xiàn)直播了。
2、交叉編譯FFmpeg
2-1 獲取源碼:可以通過官網(wǎng)http://ffmpeg.org/進行源碼的下載,也可以直接通過git獲取:
git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg
2-2 交叉編譯
./configure --cross-prefix=arm-linux-gnueabi- --enable-cross-compile --target-os=linux --cc=arm-linux-gnueabi-gcc --arch=arm --prefix=../output --enable-shared --disable-static --enable-ffmpeg --disable-armv5te --disable-yasm
make
make install
2-3 移動文件:
將…/output/bin下的命令拷貝到根文件系統(tǒng)的/usr/bin
將…/output/lib下的庫拷貝到根文件系統(tǒng)的/usr/lib
3、測試
ffmpeg -i /dev/video0 -vframes 1 -s 1920x1080 -q:v 2 -f image2 ./test1.jpg
但是發(fā)現(xiàn)拍照出來的很小,像素雖然達到了所設置的大小,但是其拍照質(zhì)量不高,像是強制將640x480拉大至所設置的像素。
(二)fswebcam
1、背景
其實對于fswebcam,更多的使用是在樹莓派上。
但是它也能對usb攝像頭快速實現(xiàn)拍照功能。
其實在buildroot里面已經(jīng)集成了fswebcam的包,對于使用100ask_T113的buildroot的同學可以按照以下操作實現(xiàn)usb拍照。
2、交叉編譯fswebcam
-
2-1 在buildroot目錄下 make menuconfig
-
2-2 在英文狀態(tài)下輸入左斜杠進入搜索
-
2-3 然后輸入 fswebcam ,回車
-
2-4 此時發(fā)現(xiàn)只有一項,且“Symbol: BR2_PACKAGE_FSWEBCAM [=n] ”
.意思是fswebcam沒有啟用,可以直接按 1 -
2-5 然后按空格鍵選中
-
2-6 然后按ESC鍵,直到
然后回車
然后
make V=1
編譯完之后燒到內(nèi)存卡文章來源:http://www.zghlxwxcb.cn/news/detail-401891.html
3、測試
fswebcam -d /dev/video0 -S 10 --no-banner -r 1920x1080./test.jpg
即可實現(xiàn)拍照
但是如果像素比較高如500w,會棧溢出,然后重啟設備,這時候可以考慮增加交換分區(qū)swap,可參考
https://blog.csdn.net/qq_30960647/article/details/123260670文章來源地址http://www.zghlxwxcb.cn/news/detail-401891.html
到了這里,關于【全志T113-S3_100ask】14-1 linux采集usb攝像頭實現(xiàn)拍照(FFmpeg、fswebcam)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!