国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

RK平臺(tái)USB攝像頭FAQ

這篇具有很好參考價(jià)值的文章主要介紹了RK平臺(tái)USB攝像頭FAQ。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

(記錄android9以后調(diào)試所遇到的常見問題,有錯(cuò)請(qǐng)批評(píng)指正)

??????? UVC全稱為USB video(device) class,是微軟與另外幾家設(shè)備廠商聯(lián)合推出的為usb視頻捕獲設(shè)備定義的協(xié)議標(biāo)準(zhǔn);所以說UVC僅僅是usb規(guī)范協(xié)議中設(shè)備類規(guī)范的其中一種,是用作usb接口的視頻設(shè)備的一個(gè)統(tǒng)一的數(shù)據(jù)交換規(guī)范。

????????插入U(xiǎn)SB攝像頭會(huì)生成對(duì)應(yīng)的video節(jié)點(diǎn),使用如下指令,可以列舉出插入的usb設(shè)備:

rk3399:/ # grep -H '' /sys/class/video4linux/video*/name
grep -H '' /sys/class/video4linux/video*/name
/sys/class/video4linux/video0/name:rkisp1_mainpath
/sys/class/video4linux/video1/name:rkisp1_selfpath
/sys/class/video4linux/video10/name:YHX5M   //第一個(gè)usb攝像頭
/sys/class/video4linux/video11/name:YHX5M
/sys/class/video4linux/video12/name:USB 2.0 PC Camera    //第二個(gè)usb攝像頭
/sys/class/video4linux/video13/name:USB 2.0 PC Camera
.................

????????USB攝像頭支持的格式有這幾種:mjpg格式、yuv格式和h264;usb攝像頭能夠支持多種不同的分辨率,而且640x480是非常常見的分辨率;可以使用如下指令查詢USB攝像頭支持的格式,分辨率及幀率。USB camera的相機(jī)幀率一般是會(huì)根據(jù)光照自動(dòng)調(diào)節(jié)幀率的;你用手電筒照下,幀率應(yīng)該就會(huì)高了;如果你們需要固定幀率,需要USB camera的廠商控制;

v4l2-ctl -d /dev/videoX --list-formats-ext ? (videox 就是對(duì)應(yīng)的usb設(shè)備節(jié)點(diǎn))

????????新的SDK都有支持usb攝像頭的插拔,一般應(yīng)用在正常退出時(shí)會(huì)release攝像頭,如果沒有釋放,再去用相機(jī)app打開攝像頭時(shí),會(huì)導(dǎo)致攝像頭的video節(jié)點(diǎn)后移,出現(xiàn)打開異?,F(xiàn)象。

????????一般這種插拔問題,會(huì)出現(xiàn)在舊版本的,可能是預(yù)覽中間斷開,沒有執(zhí)行正常退出,沒有wakeup這個(gè)wait_event,所以一直休著;等待超時(shí)發(fā)現(xiàn)有冗余未釋放camera資源,及時(shí)通知釋放就好了。

常見攝像頭打不開問題

????????首先配置方面先確保如下幾點(diǎn),具體可以參考文檔 USB_UVC_Integrated_Cameras;

(1)以下設(shè)置是否都為true?
      /device/rockchip/rk3xxx/BoardConfig.mk
      BOARD_CAMERA_SUPPORT := true
      BOARD_CAMERA_SUPPORT_EXT := true

(2)cat /vendor/etc/vintf/manifest.xml | grep external //確定是否有external信息
     如果沒有,則進(jìn)行添加 /device/rockchip/rk3399/manifest.xml
     <interface>
          <name>ICameraProvider</name>
          <instance>legacy/0</instance>
          <instance>external/0</instance>  //有該配置項(xiàng)嗎? 
     </interface>
 (3) 其它型號(hào)的usb攝像頭是否也打不開? 也有可能是攝像頭的問題,所以試試usb camera 插電腦(PC)上,看是否能正常預(yù)覽出圖;可以下載一個(gè)usbcamera的apk去看看:adb install usbcamera的apk

????????其次,dumpsys media.camera看下是否注冊(cè)上攝像頭;若注冊(cè)上了,攝像頭還打不開,則需要具體logcat進(jìn)行分析;

將下面三個(gè)文件的LOG_NDEBUG宏定義注釋去掉
hardware/interfaces/camera/device/3.4/default/ExternalCameraDevice.cpp
hardware/interfaces/camera/device/3.4/default/ExternalCameraDeviceSession.cpp
hardware/interfaces/camera/device/3.4/default/ExternalCameraUtils.cpp
-//#define LOG_NDEBUG 0
+#define LOG_NDEBUG 0

????????然后在hardware/interfaces/camera/device/3.4/default$ mm -j12 ;編譯生成:camera.device@3.4-external-impl.so 在 vendor/lib目錄下,所以修改庫(kù)后,直接編譯替換這個(gè)庫(kù)即可!然后執(zhí)行指令抓logcat

logcat -c && pkill camera* && pkill provider* && logcat
打開相機(jī)抓份logcat

????????一般打不開時(shí),很大概率是external_camera_config.xml 文件中沒有添加usb camera的相關(guān)分辨率以及幀率;在xml中也可以修改旋轉(zhuǎn)角度以及jpeg buffer。USB分辨率,例如預(yù)覽想要3840x2160,拍照也想要3840x2160,那么需要在xml文件中將MaxJpegBufferSize改大一點(diǎn),默認(rèn)是3MB(1MB=1024KB,1KB=1024B, 1B=8bit),可以修改成4MB,5MB.

<Orientation  degree="90"/>
<MaxJpegBufferSize  bytes="3145728"/>  <!-- 3MB (~= 1080p YUV420) --> 
ps:3MB = 3*1024 KB = 3*1024*1024 B = 3145728 B

????????查看內(nèi)核log:表示usb設(shè)備已經(jīng)識(shí)別到了;可以找到相關(guān)的video節(jié)點(diǎn),用v4l2工具取流,看是否正常;

[ 194.108702] usb 1-1.3: new high-speed USB device number 5 using ehci-platform
[ 194.304772] usb 1-1.3: New USB device found, idVendor=046d, idProduct=082b, bcdDevice=28.25
[ 194.304899] usb 1-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 194.304924] usb 1-1.3: Product: Webcam C170
[ 194.304946] usb 1-1.3: Manufacturer:
v4l2-ctl --verbose -d /dev/videox --set-fmt-video=width=640,height=480,pixelformat='MJPG' --stream-mmap=4 --set-selection=target=crop,flags=0,top=0,left=0,width=640,height=480

前后攝設(shè)置

????????默認(rèn)是后攝,前攝如下修改

hardware/interfaces/camera/device/3.4/default/ExternalCameraDevice.cpp

    const uint8_t facing = ANDROID_LENS_FACING_FRONT; //BACK
    UPDATE(ANDROID_LENS_FACING, &facing, 1);

前后攝切換

1.android9,android10如下修改

/hardware/interfaces/camera/device/3.4/default/ExternalCameraDevice.cpp
@@ -309,7 +309,15 @@ status_t ExternalCameraDevice::initDefaultCharsKeys(
     UPDATE(ANDROID_LENS_INFO_AVAILABLE_OPTICAL_STABILIZATION,
            &opticalStabilizationMode, 1);
 
-    const uint8_t facing = ANDROID_LENS_FACING_BACK;
+    const char* dev = mCameraId.c_str();
+    int index = (int) (*(dev + (strlen(dev) - 1)) - '0');
+    ALOGE("dev:%s index:%d", dev, index);
+    const uint8_t facing = (index / 2) % 2 ? ANDROID_LENS_FACING_FRONT : ANDROID_LENS_FACING_BACK;
     UPDATE(ANDROID_LENS_FACING, &facing, 1);

2.android11及12如下修改

/hardware/interfaces/camera/device/3.4/default/ExternalCameraDevice.cpp
@@ -309,7 +309,15 @@ status_t ExternalCameraDevice::initDefaultCharsKeys(
     UPDATE(ANDROID_LENS_INFO_AVAILABLE_OPTICAL_STABILIZATION,
            &opticalStabilizationMode, 1);
 
-    const uint8_t facing = ANDROID_LENS_FACING_BACK;
+    const char* dev = mCameraId.c_str();
+    int index = atoi(dev);
+    ALOGE("dev:%s index:%d", dev, index);
+    const uint8_t facing = (index / 2) % 2 ? ANDROID_LENS_FACING_FRONT : ANDROID_LENS_FACING_BACK;
     UPDATE(ANDROID_LENS_FACING, &facing, 1);

錄像問題

????????錄像分辨率及幀率在/device/rocchip/下的media_profiles_defaults.xml 里配置,編譯時(shí)會(huì)拷到 /vendor/etc/media_profiles_V1_0.xml

????????xml中通過id來識(shí)別攝像頭即,根據(jù)實(shí)際情況可以添加或刪除分辨率

## 錄像問題

?		錄像分辨率及幀率在/device/rocchip/下的media_profiles_defaults.xml 
里配置,編譯時(shí)會(huì)拷到      /vendor/etc/media_profiles_V1_0.xml 

?		xml中通過id來識(shí)別攝像頭即,根據(jù)實(shí)際情況可以添加或刪除分辨率
<CamcorderProfiles cameraId="0">
<CamcorderProfiles cameraId="1">
		..........
		<EncoderProfile quality="480p" fileFormat="mp4" duration="30">
            <Video codec="h264"
                bitRate="3000000"     //錄像模糊時(shí),可以增大bitRate
                   width="640"
                   height="480"
                   frameRate="25" />
         ..........
        </EncoderProfile>

????????例如usb攝像頭是480p的,但是你錄像時(shí)默認(rèn)打開的分辨率為1080p,因此切換到錄像時(shí),會(huì)出現(xiàn)Can't connect to the camera報(bào)錯(cuò),此時(shí)可以在xml中將對(duì)應(yīng)sensor模塊的1080p分辨率去除。

RK平臺(tái)USB攝像頭FAQ

?????????USB攝像頭拍照是正常的,但是錄像的時(shí)候會(huì)提示報(bào)錯(cuò);這種有可能是幀率不對(duì),不支持導(dǎo)致的,具體可以看logcat。例如:device/rockchip里的media_profiles_default.xml 里framerate 改成25就解決了(dumpsys media.camera 里 可以看到支持幀率有25 但是沒30幀)

鏡像問題

Hardware/interfaces/camera/device/3.4/default/ExternalCameraDeviceSession.cpp ? Hardware/interfaces/camera/device/3.4/default/ExternalCameraDevice.cpp

可以試下ExternalCameraDevice.cpp里 facing 改為BACK 后,看下預(yù)覽是否會(huì)鏡像了;

預(yù)覽、拍照、錄像這三種情況都會(huì)有鏡像相關(guān)的問題(有相關(guān)patch)

1)預(yù)覽鏡像問題,在代碼中修改成前置或后置就可以解決;

2)拍照鏡像問題,libyuv::I420Scale 和 libyuv::I420MIrror 這段代碼才是控制拍照鏡像和翻轉(zhuǎn)的

3)錄像鏡像問題:這是控制錄像視頻的mirror,即把 rga_nv12_scale_crop 里的 false 改成 (halBuf.usage & BufferUsage::VIDEO_ENCODER)

拉伸問題

????????USB攝像頭預(yù)覽變形,換其他型號(hào)的USB攝像頭也一樣;看log picturesize:1920x1080,previewBuffer:1920x1080 預(yù)覽分辨率為1080P,整體屏幕也是1080P,為什么會(huì)拉伸收縮變形?

需要注意的是攝像頭成像長(zhǎng)邊要跟顯示屏長(zhǎng)邊平行擺放;

默認(rèn)豎屏設(shè)備 前攝 orientation 要為270,后攝為90;

默認(rèn)橫屏設(shè)備 前后攝 orientation都為0;

因此在xml中修改下orientation即可。

video節(jié)點(diǎn)權(quán)限問題

抓取logat后,關(guān)鍵字查詢 E/CAM 發(fā)現(xiàn)沒有權(quán)限

06-21 18:19:17.164 E/CamPvdr@2.4-external(  256): deviceAdded open v4l2 device /dev/video12 failed:Permission denied
06-21 18:19:17.165 E/CamPvdr@2.4-external(  256): deviceAdded open v4l2 device /dev/video13 failed:Permission denied

ls -l /dev/video* 查看下權(quán)限

crw-rw---- 1 media camera 81, 10 2022-06-22 09:47 /dev/video10
crw-rw---- 1 media camera 81, 11 2022-06-22 09:47 /dev/video11
crw------- 1 root root 81, 16 2022-06-22 09:47 /dev/video12
crw------- 1 root root 81, 17 2022-06-22 09:47 /dev/video13

如下修改后即可

/device/rockchip/common/ueventd.rockchip.rc
#for external camera
/dev/video10         0660   media      camera
/dev/video11         0660   media      camera
+ /dev/video12         0660   media      camera
+ /dev/video13         0660   media      camera

dqbuf卡住問題

????????主要是針對(duì)usb攝像頭插拔導(dǎo)致的一系列問題,例如插拔usb攝像頭時(shí),導(dǎo)致camera服務(wù)卡死,畫面卡著不動(dòng);正常情況下插拔攝像頭后預(yù)覽畫面可以恢復(fù)的。這種可能是預(yù)覽中間斷開,沒有執(zhí)行正常退出,沒有wakeup這個(gè)wait_event,所以一直休著;等待超時(shí)發(fā)現(xiàn)有冗余未釋放camera資源,應(yīng)及時(shí)通知釋放。(3588更新代碼,會(huì)有這個(gè)補(bǔ)丁的)

RK平臺(tái)USB攝像頭FAQ

????????此外還有可能要加上0001-DQBUF-add-select.patch,一般拔掉usb攝像頭后,apk會(huì)彈窗報(bào)錯(cuò)自動(dòng)退出;如果沒有彈框報(bào)錯(cuò),說明dqbuf還是被卡住了,線程得不到釋放,導(dǎo)致apk出現(xiàn)anr;要檢查下補(bǔ)丁是否有打進(jìn)去,是否生效了。 ?

????????后面有空介紹這些:

RK平臺(tái)USB攝像頭FAQ文章來源地址http://www.zghlxwxcb.cn/news/detail-419444.html

到了這里,關(guān)于RK平臺(tái)USB攝像頭FAQ的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • RK3568平臺(tái)開發(fā)系列講解(視頻篇)攝像頭采集視頻的相關(guān)配置

    RK3568平臺(tái)開發(fā)系列講解(視頻篇)攝像頭采集視頻的相關(guān)配置

    ??返回專欄總目錄 沉淀、分享、成長(zhǎng),讓自己和他人都能有所收獲!?? ?? Android 平臺(tái)的攝像頭的采集核心部分都是在 Native 層構(gòu)建的,所以這就會(huì)涉及 JNI 層的一些轉(zhuǎn)換操作。 要想使用 Android 平臺(tái)提供的攝像頭,必須在配置文件里添加權(quán)限要求。

    2023年04月08日
    瀏覽(92)
  • Android相機(jī)調(diào)用-CameraX【外接攝像頭】【USB攝像頭】

    Android相機(jī)調(diào)用-CameraX【外接攝像頭】【USB攝像頭】

    Android相機(jī)調(diào)用有原生的Camera和Camera2,我覺得調(diào)用代碼都太復(fù)雜了,CameraX調(diào)用代碼簡(jiǎn)潔很多。 說明文檔:https://developer.android.com/jetpack/androidx/releases/camera?hl=zh-cn 現(xiàn)有查到的調(diào)用資料都不夠新,對(duì)于外接攝像頭(USB攝像頭)這類非前置也非后置攝像頭的設(shè)備調(diào)用,都說是沒有實(shí)

    2024年02月09日
    瀏覽(30)
  • ubuntu打開usb攝像頭

    ubuntu打開usb攝像頭

    記錄一下解決在 Linux 下打開 usb 攝像頭界面黑屏的問題。 1、保持在 ubuntu 界面,插上 usb 攝像頭,將 usb 攝像頭連接到虛擬機(jī)上。 2、使用 dmesg 命令可以看到設(shè)備接入時(shí)的打印信息 可以看到我們剛接入的攝像頭它的 VID:PID 是 1e4e:0110,這里的 ID 號(hào)可以在 UVC 官方的文檔中進(jìn)一步

    2024年02月16日
    瀏覽(24)
  • 樹莓派調(diào)用usb攝像頭(三)

    樹莓派調(diào)用usb攝像頭(三)

    因?yàn)槲业臄z像頭是usb 的所以使用一下命令查看攝像頭 輸入以下命令,開啟攝像頭 sudo apt-get install cmake libjpeg8-dev 提示:Package \\\'libjpeg8-dev\\\' has no installation candidate sudo apt-get install libjpeg62-turbo=1:1.5.2-2+deb10u1 (2) 打開motion daemon守護(hù)進(jìn)程,使得motion可以一直在后臺(tái)運(yùn)行。 ?sudo nano /e

    2024年01月17日
    瀏覽(26)
  • RK3568筆記九: DRM顯示攝像頭

    RK3568筆記九: DRM顯示攝像頭

    若該文為原創(chuàng)文章,轉(zhuǎn)載請(qǐng)注明原文出處。 學(xué)習(xí)DRM的目的是想做類似NVR顯示多路實(shí)時(shí)流,通過勇哥(Marc)的指導(dǎo),大概流程是通過Zlmedia拉流,RK3568的MPP解碼,DRM顯示,可以使用HDMI或DIS屏幕,所以為了后面的實(shí)現(xiàn),先測(cè)試攝像頭采集DRM顯示。 測(cè)試過程在筆記八里,如有不懂的,

    2024年01月16日
    瀏覽(69)
  • usb攝像頭驅(qū)動(dòng)-core層usb設(shè)備的注冊(cè)

    usb攝像頭驅(qū)動(dòng)-core層usb設(shè)備的注冊(cè)

    在ubuntu中接入羅技c920攝像頭打印的信息如下: 在內(nèi)核中,/driver/usb/core/driver.c 文件扮演了 USB 核心驅(qū)動(dòng)程序管理的重要角色。該文件包含了 USB 核心驅(qū)動(dòng)程序的實(shí)現(xiàn),負(fù)責(zé)管理和調(diào)度 USB 設(shè)備的注冊(cè)、匹配、連接和斷開等操作。 具體而言,driver.c 文件的功能和作用包括: USB

    2024年02月06日
    瀏覽(22)
  • 迅為RK3588開發(fā)板-基于瑞芯微RK3588攝像頭方案

    迅為RK3588開發(fā)板-基于瑞芯微RK3588攝像頭方案

    硬件: RK3588開發(fā)板+攝像頭 ? MIPI攝像頭: ? 1.1 硬件連接 RK3588?底板上有四個(gè)攝像頭接口,如下圖所示,此四個(gè)接口均可連接攝像頭?ov5695?和?攝像頭?ov13850。 ? 攝像頭模塊連接硬件時(shí)要將模塊對(duì)準(zhǔn)插槽缺口處,J1?接口連接攝像頭模塊如下圖所示: ? J2?接口連接攝像頭模塊

    2024年02月09日
    瀏覽(116)
  • 2.gstreamer USB攝像頭RTSP推流

    2.gstreamer USB攝像頭RTSP推流

    目錄 1、操作系統(tǒng)版本 2、使用gstreamer播放mp4文件 3、采集USB攝像頭視頻源,并RTSP推流 4、使用RTSP播放器播放 5、注意事項(xiàng) 使用的虛擬機(jī)加ubuntu 20.04 這里需要使用MobaXterm ssh登錄,可以正常播放,但是在虛擬機(jī)內(nèi)無法播放,暫時(shí)不知道原因 先安裝編譯gstreamer rtsp需要用到的工具

    2023年04月19日
    瀏覽(30)
  • yolov5-6.0項(xiàng)目部署+自用Pytorch模型轉(zhuǎn)換rknn模型并在RK3568 linux(Debian)平臺(tái)上使用qt部署使用NPU推理加速攝像頭目標(biāo)識(shí)別詳細(xì)新手教程

    yolov5-6.0項(xiàng)目部署+自用Pytorch模型轉(zhuǎn)換rknn模型并在RK3568 linux(Debian)平臺(tái)上使用qt部署使用NPU推理加速攝像頭目標(biāo)識(shí)別詳細(xì)新手教程

    1 我們打開yolov的官網(wǎng),Tags選擇6.0版本 2. 下載該壓縮包并解壓到工程目錄下 3. 我們這里使用pycharm,專門針對(duì)python的IDE,用起來非常方便,下載方式就是官網(wǎng)直接下載,用的是社區(qū)版 4. 我們需要安裝環(huán)境,這里我推薦安裝Anaconda在電腦上,這是一個(gè)非常方便的包管理工具,可

    2024年02月05日
    瀏覽(33)
  • ModelBox實(shí)戰(zhàn)開發(fā):RK3568實(shí)現(xiàn)攝像頭虛擬背景

    摘要: 本文將使用ModelBox端云協(xié)同AI開發(fā)套件(RK3568)實(shí)現(xiàn)攝像頭虛擬背景AI應(yīng)用的開發(fā)。 本文分享自華為云社區(qū)《ModelBox開發(fā)案例 - RK3568實(shí)現(xiàn)攝像頭虛擬背景【玩轉(zhuǎn)華為云】》,作者:AI練習(xí)生 。 本文將使用ModelBox端云協(xié)同AI開發(fā)套件(RK3568)實(shí)現(xiàn)攝像頭虛擬背景AI應(yīng)用的開

    2024年02月09日
    瀏覽(34)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包