最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

ArmSom--攝像頭開發(fā)指南(二)

2023-11-06 10:09 作者:磊子啊_  | 我要投稿

一. 簡介

  • RK3588從入門到精通

  • 開發(fā)板:ArmSoM-W3

  • Kernel:5.10.160

  • OS:Debian11

    上篇文檔介紹了rockchip平臺怎么配置MIPI-CSI的通路,本?主要介紹在Rockchip平臺下Camera相關(guān)測試命令



二. 攝像頭連接

ArmSoM-W3開發(fā)板與imx415連接圖如下:

w3-camera-hardware


排線的金屬引腳朝向板子



三. 使用攝像頭

連接攝像頭模塊并上電后,可查看開機日志。

如果沒有報錯,那表明模塊在正常運行,在Linux系統(tǒng)中,你可以使用多種方法來訪問和利用該攝像頭設(shè)備。



3.1 使用命令行工具

media-ctl 和 v4l2-ctl 是在Linux環(huán)境下用于配置和管理視頻和多媒體設(shè)備的命令行工具。它們通常與V4L2(Video for Linux 2)子系統(tǒng)一起使用,用于管理攝像頭、視頻采集卡、顯示設(shè)備和其他多媒體硬件的設(shè)置和參數(shù)。

media-ctl工具的操作是通過/dev/medio0等media 設(shè)備,它管理的是Media的拓撲結(jié)構(gòu)中各個節(jié)點的 format、大小、 鏈接。 v4l2-ctl工具則是針對/dev/video0,/dev/video1等 video設(shè)備,它在video設(shè)備上進行set_fmt、 reqbuf、qbuf、dqbuf、stream_on、stream_off 等一系列操作。



3.1.1 顯示拓撲結(jié)構(gòu)

使用以下命令可以顯示拓撲結(jié)構(gòu):

主要關(guān)注的是有沒有找到Sensor的Entity。如果沒有找到Sensor的Entity,說明Sensor注冊有問題。

開發(fā)板上接上攝像頭后可以看到如下的輸出:


3.2.2 查看攝像頭信息

使用命令列出所有攝像頭設(shè)備:

其中/dev/video11就是這個攝像頭的設(shè)備。

查看設(shè)備的預(yù)覽支持格式:

查看設(shè)備的所有信息:



3.2.3 顯示圖像

使用v4l2-ctl抓一幀圖片:

參數(shù)說明:

-d: 攝像頭對應(yīng)設(shè)備文件 --set-fmt-video:指定了寬高及pxielformat(用FourCC表示)。NV12即用FourCC表示的pixelformat --stream-mmap:指定buffer的類型為mmap,即由kernel分配的物理連續(xù)的或經(jīng)過iommu映射的buffer --stream-to:指定幀數(shù)據(jù)保存的文件路徑 --stream-skip:指定丟棄(不保存到文件)前3幀 --stream-count:指定抓取的幀數(shù),不包括--stream-skip丟棄的數(shù)量


抓取的圖片使用adb工具拷貝到Windows下用7YUV工具打開,也可以用ffplay命令打開

ffplay是FFmpeg提供的一個極為簡單的音視頻媒體播放器(由ffmpeg庫和SDL庫開發(fā)),可以用于音視頻播放、可視化分析 ,提供音視頻顯示和播放相關(guān)的圖像信息、音頻的波形等信息,也可以用作FFmpeg API的測試工具使用。

使用 ffplay 非常簡單,只需在終端中運行以下命令來播放媒體文件:ffplay /data/4k_nv12.yuv -f rawvideo -pixel_format nv12 -video_size 3840x2160



3.2.3 顯示視頻

使用v4l2可以錄制視頻:

使用ffplay播放:

ffplay -f rawvideo -video_size 3840x2160 -pixel_format nv12 out.yuv



3.3 使用多媒體框架應(yīng)用程序

GStreamer:GStreamer是一種多媒體框架,你可以使用它來構(gòu)建自定義的多媒體應(yīng)用程序,捕獲攝像頭視頻,進行處理和展示。

你可以使用以下GStreamer管道捕獲視頻:

gst-launch-1.0 v4l2src device=/dev/video11 ! video/x-raw,format=NV12,width=3840,height=2160,framerate=30/1 ! videoconvert ! autovideosink

  • v4l2src:從 /dev/video11 捕獲視頻數(shù)據(jù)。

  • video/x-raw:指定輸出數(shù)據(jù)格式為原始視頻,format 參數(shù)設(shè)置為 NV12,width 設(shè)置為 3840,height 設(shè)置為 2160,framerate 設(shè)置為 30fps。

  • videoconvert:執(zhí)行格式轉(zhuǎn)換,確保輸出數(shù)據(jù)適用于后續(xù)的元素。

  • autovideosink:自動選擇適當?shù)囊曨l輸出插件,將視頻顯示在屏幕上。

顯示如下:

camera-screenshot

注意:顯示器的分辨率是1920x1080,攝像頭的分辨率是3840x2160,導(dǎo)致如左上角畫面顯示不全,雙擊邊框可以得到分辨率是1920x1080的畫面。


下面有一個簡單的Python示例,用于創(chuàng)建一個GStreamer管道并啟動捕獲視頻可供參考:



3.4.自定義應(yīng)用程序開發(fā)

特定的定制功能,一般是使用編程語言(如C++或Python)開發(fā)自己的攝像頭應(yīng)用程序

總的來說,應(yīng)用程序通過API接口采集視頻數(shù)據(jù)大致分為五個步驟:

首先,打開視頻設(shè)備文件,進行視頻采集的參數(shù)初始化,設(shè)置視頻圖像的采集窗口、采集的點陣大小和格式;

其次,申請若干視頻采集的幀緩沖區(qū),并將這些幀緩沖區(qū)從內(nèi)核空間映射到用戶空間,便于應(yīng)用程序讀取/處理視頻數(shù)據(jù);

第三,將申請到的幀緩沖區(qū)在視頻采集輸入隊列排隊,并啟動視頻采集;

第四,驅(qū)動開始視頻數(shù)據(jù)的采集,應(yīng)用程序從視頻采集輸出隊列取出幀緩沖區(qū),處理完后,將幀緩沖區(qū)重新放入視頻采集輸入隊列,循環(huán)往復(fù)采集連續(xù)的視頻數(shù)據(jù);

第五,停止視頻采集。



四. 結(jié)語

根據(jù)需求,選擇最適合的方法來訪問和使用攝像頭設(shè)備,每個具體型號的攝像頭可能有其獨特的設(shè)置和要求,各個系統(tǒng)下的使用攝像頭的方法也有很多,如果你有疑問或者需要幫助,可以在ArmSom論壇提出問題,與其他開發(fā)者分享經(jīng)驗和獲取支持。





ArmSom--攝像頭開發(fā)指南(二)的評論 (共 條)

分享到微博請遵守國家法律
澄城县| 邹平县| 白城市| 博乐市| 松江区| 维西| 新竹县| 方山县| 习水县| 三门峡市| 元谋县| 潢川县| 常州市| 清苑县| 读书| 饶阳县| 清水河县| 榆中县| 巴南区| 湘乡市| 中阳县| 舞阳县| 从化市| 铁岭县| 阳春市| 江都市| 丰顺县| 彩票| 定西市| 喀喇沁旗| 潼南县| 法库县| 闻喜县| 高清| 景洪市| 吉隆县| 吴忠市| 东丰县| 新巴尔虎左旗| 沛县| 奈曼旗|