20240104确认AIO-3399J的开发板适配ov13850摄像头不支持4K分辨率录像

本文主要是介绍20240104确认AIO-3399J的开发板适配ov13850摄像头不支持4K分辨率录像,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

20240104确认AIO-3399J的开发板适配ov13850摄像头不支持4K分辨率录像
2024/1/4 13:23


开发板:Firefly的AIO-3399J【RK3399】
SDK:rk3399-android-11-r20211216.tar.xz【Android11】
Android11.0.tar.bz2.aa【ToyBrick】
Android11.0.tar.bz2.ab
Android11.0.tar.bz2.ac

https://wiki.t-firefly.com/AIO-3399J/prepare_compile_android.html
AIO-3399J产品规格书 立即购买
AIO-3399J 采用 RK3399 六核(A72x2+A53x4) 64 位处理器,主频高达1.8GHz,集成了四核 Mali-T860 GPU,性能优异。


1、简略步骤:
rootroot@rootroot-X99-Turbo:~/3TB$ cat Android11.0.tar.bz2.a* > Android11.0.tar.bz2
rootroot@rootroot-X99-Turbo:~/3TB$ tar jxvf Android11.0.tar.bz2 
rootroot@rootroot-X99-Turbo:~/3TB$ mv Android11.0 64rk3399-android-11
rootroot@rootroot-X99-Turbo:~/3TB$ cd 64rk3399-android-11
rootroot@rootroot-X99-Turbo:~/3TB/64rk3399-android-11$ cd u-boot
rootroot@rootroot-X99-Turbo:~/3TB/64rk3399-android-11/u-boot$ ./make.sh rk3399
rootroot@rootroot-X99-Turbo:~/3TB/64rk3399-android-11/u-boot$ cd ..
rootroot@rootroot-X99-Turbo:~/3TB/64rk3399-android-11$ cd kernel/
rootroot@rootroot-X99-Turbo:~/3TB/64rk3399-android-11/kernel$ make ARCH=arm64 rockchip_defconfig android-11.config -j36
rootroot@rootroot-X99-Turbo:~/3TB/64rk3399-android-11/kernel$ make ARCH=arm64 BOOT_IMG=../rockdev/Image-rk3399_Android11/boot.img rk3399-sapphire-excavator-edp-avb.img -j36
rootroot@rootroot-X99-Turbo:~/3TB/64rk3399-android-11$ source build/envsetup.sh 
rootroot@rootroot-X99-Turbo:~/3TB/64rk3399-android-11$ lunch
     36. rk3399_Android11-userdebug
Which would you like? [aosp_arm-eng] 36
rootroot@rootroot-X99-Turbo:~/3TB/64rk3399-android-11$ 
rootroot@rootroot-X99-Turbo:~/3TB/64rk3399-android-11$ make -j36
rootroot@rootroot-X99-Turbo:~/3TB/64rk3399-android-11$ ./build.sh -u


2、参考资料:【OV13850】看规格书DATASHEET是可以支持4K录像的【13.2MP at 30fps】,但是在RK3399平台的实践中有点问题。
https://dev.t-firefly.com/thread-129925-1-1.html
20240103_AIO-3399J刷官方Andorid10使用前后摄像头ov13850最高480p【不能是4K分辨率】

请问RK3399的ISP可以支持4K分辨率录像吗?
4K分辨率录像,4LANE下,MIPI的PCLK=

3840x2160x8x30=1990656000 = 1990M bps 也就是接近2G bps
4LANE下MIPI的PCLK=1990656000/(4x2)= 248832000 =【接近 250M bps】
【也就是在2LANE模式为 500M bps】

全像素模式下:support for image sizes: 13.2MP (4224x3136),
4224x3136x8x30=3179151360 = 3179M bps 也就是接近3.2G bps
4LANE下MIPI的PCLK=3179151360/(4x2)= 397393920 =【接近 400M bps】
【也就是在2LANE模式为 800M bps】


Sensor_OV13850-G04A_OmniVision_Specification(V1.1).pdf
OV13580的规格书DATASHEET告诉我们:13.2MP at 30fps

AIO-3399J_Android10_HDMI_210809.7z

点前后摄像头ov13850也只能前后1080p呀!


http://www.taodudu.cc/news/show-3050664.html?action=onClick
瑞芯微 | 摄像头ov13850移植笔记

https://www.shili8.cn/article/detail_20000400637.html
FPGA解码4K分辨率4line MIPI视频 OV13850采集 提供工程源码和技术支持
发布人:shili8 发布时间:2023-03-13 15:06 阅读次数:38

4、vivado工程介绍
工程架构如下:在这里插入图片描述
开发板:Xilinx Kintex7开发板;
开发环境:vivado2020.2;
输入:OV13850;4line;分辨率3840x2160;
输出:HDMI;分辨率1920x1080;


https://download.csdn.net/download/weixin_42651887/86228368?spm=1001.2101.3001.6650.14&utm_medium=distribute.pc_relevant.none-task-download-2%7Edefault%7EOPENSEARCH%7ERate-14-86228368-blog-130116729.235%5Ev39%5Epc_relevant_3m_sort_dl_base1&depth_1-utm_source=distribute.pc_relevant.none-task-download-2%7Edefault%7EOPENSEARCH%7ERate-14-86228368-blog-130116729.235%5Ev39%5Epc_relevant_3m_sort_dl_base1&utm_relevant_index=21
OV13850.tar.gz_Linux 驱动ov13850_OV13850 驱动_ov13850_ov13850驱动

extern const IsiRegDescription_t OV13850_g_2112x1568P30_fourlane_fpschg[];
extern const IsiRegDescription_t OV13850_g_2112x1568P25_fourlane_fpschg[];
extern const IsiRegDescription_t OV13850_g_2112x1568P20_fourlane_fpschg[];
extern const IsiRegDescription_t OV13850_g_2112x1568P15_fourlane_fpschg[];
extern const IsiRegDescription_t OV13850_g_2112x1568P10_fourlane_fpschg[];
extern const IsiRegDescription_t OV13850_g_4224x3136P15_fourlane_fpschg[];
extern const IsiRegDescription_t OV13850_g_4224x3136P7_fourlane_fpschg[];
extern const IsiRegDescription_t OV13850_g_4224x3136P4_fourlane_fpschg[];


http://www.orangepi.cn/orangepiwiki/index.php?title=OV13850_%E5%92%8C_OV13855_MIPI_%E6%91%84%E5%83%8F%E5%A4%B4%E7%9A%84%E6%B5%8B%E8%AF%95%E6%96%B9%E6%B3%95
OV13850 和 OV13855 MIPI 摄像头的测试方法

目前测试 OV13850 不支持 4K 录制视频(OV13855 支持),最高只支持 1080p, 录制视频时请在设置中将视频格式切换到 1080p,步骤如下所示:
a. 首先进入摄像头 APP 的设置界面,然后点击 Resolution & quality


3、为了确认RK3399的ISP/编码器否支持4K录像。
找了很多地方,比如给taobao淘宝上的nanoPi-T4的全部卖家发消息核实。
都回答不行!

请问 这款涉嫌头 ov13850 适配 NanoPC-T4 开发板【RK3399】
可以 4K分辨率录像吗?
【3840x2160 @ 30fps】

https://item.taobao.com/item.htm?id=598190977880&spm=a21m98.27004841
OV13850高清摄像模组MIPI口NanoPC-T4 Pi M4 NEO4 CAM1320摄像头

注1:以上特性描述主要来自于OV13850数据手册;
注2:因主控本身功能特性有限,以上部分性能指标不一定能达到,请以实际为准,更多功能特性,请自行研究使用。


直接找到RK3399的官方文档:
4. 编译 Android10.0 固件
4.1. 下载 Android SDK
由于 SDK 较大,可以去下载页面选择云盘下载 Firefly-RK3399_Android10.0_git_20211222.7z:
https://www.t-firefly.com/doc/download/page/id/31.html

Z:\rk3399_Android10.0\RKDocs\rk3399\Rockchip_RK3399_Introduction_Multimedia_Codec_Benchmark_EN.pdf


4、尝试强制在RK3399的Android11下给摄像头录像的分辨率增加4K选项!

https://blog.csdn.net/QliumengQ/article/details/129623726
2023-03-17 18:05:57-RK3588 camera2 支持4K录像-开开心心everyday


console:/ # 
console:/ # dumpsys media.camera | grep picture-size  
    picture-size: 4096x3136
    picture-size-values: 4096x3136,2112x1568,1920x1080,1280x960,1280x720,640x480,352x288,320x240,176x144
console:/ # 

console:/ # 

 


largeIndex mediumIndex smallIndex 大 中 小 列表中的三个值,需要继续一层层的跟下去,getNextSupportedVideoQualityIndex里面有个判断把4K分辨率过滤掉了,这个判断需要打开

    private static boolean isVideoQualitySupported(int videoQuality) {
        // 4k is only supported on L or higher but some devices falsely report
        // to have support for it on K, see b/18172081.
        if (!ApiHelper.isLOrHigher() && videoQuality == CamcorderProfile.QUALITY_2160P) {
            return false;
        }
        return true;
    }

&& videoQuality == CamcorderProfile.QUALITY_2160P 这个条件判断去掉
getNextSupportedVideoQualityIndex是获取的接口,代码都贴出来太多,整个调用顺序好了。


rootroot@rootroot-X99-Turbo:~/3TB/66原始Android11.0/packages/apps/Camera2$ grep CamcorderProfile.QUALITY_2160P . -R
./src/com/android/camera/settings/SettingsUtil.java:            CamcorderProfile.QUALITY_2160P,
./src/com/android/camera/settings/SettingsUtil.java:        if (!ApiHelper.isLOrHigher() && videoQuality == CamcorderProfile.QUALITY_2160P) {

grep: ./.git/info: No such file or directory
grep: ./.git/logs: No such file or directory
grep: ./.git/refs: No such file or directory
grep: ./.git/hooks: No such file or directory
grep: ./.git/packed-refs: No such file or directory
grep: ./.git/rr-cache: No such file or directory
grep: ./.git/objects: No such file or directory
grep: ./.git/svn: No such file or directory
grep: ./.git/description: No such file or directory
grep: ./.git/config: No such file or directory
grep: ./.git/shallow: No such file or directory
rootroot@rootroot-X99-Turbo:~/3TB/66原始Android11.0/packages/apps/Camera2$ 


Z:\3TB\64rk3399-android-11\packages\apps\Camera2\src\com\android\camera\settings\SettingsUtil.java
    /**
     * @return Whether the given {@link CamcorderProfile} is supported on the
     *         current device/OS version.
     */
    private static boolean isVideoQualitySupported(int videoQuality) {
        // 4k is only supported on L or higher but some devices falsely report
        // to have support for it on K, see b/18172081.
        if (!ApiHelper.isLOrHigher() && videoQuality == CamcorderProfile.QUALITY_2160P) {
            return false;
        }
        return true;
    }

修改为:
    /**
     * @return Whether the given {@link CamcorderProfile} is supported on the
     *         current device/OS version.
     */
    private static boolean isVideoQualitySupported(int videoQuality) {
        // 4k is only supported on L or higher but some devices falsely report
        // to have support for it on K, see b/18172081.
        //if (!ApiHelper.isLOrHigher() && videoQuality == CamcorderProfile.QUALITY_2160P) {
        if ( !ApiHelper.isLOrHigher() ) {

            Log.w(TAG, "2024/1/4 11:06 wenyuanbo");
            Log.d(TAG, "2025/1/4 11:07 wenyuanbo");
            return false;
        }
        return true;
    }


【参照1080p的参数配置2160P/4K分辨率的!】
N:\AIO-3399J\media_profiles_V1_0.xml
        <!--  If your sensor driver don't support 1080p stream, Please turn off this element -->
        <EncoderProfile quality="1080p" fileFormat="mp4" duration="30">
            <Video codec="h264"
                   bitRate="22000000"
                   width="1920"
                   height="1080"
                   frameRate="30" />
            <Audio codec="aac"
                   bitRate="96000"
                   sampleRate="44100"
                   channels="1" />
        </EncoderProfile>

        <!--  If your sensor driver don't support 1080p stream, Please turn off this element -->
        <EncoderProfile quality="timelapse1080p" fileFormat="mp4" duration="30">
            <Video codec="h264"
                   bitRate="12000000"
                   width="1920"
                   height="1080"
                   frameRate="30" />
            <Audio codec="aac"
                   bitRate="96000"
                   sampleRate="44100"
                   channels="1" />
        </EncoderProfile>

        
        <!--  If your sensor driver don't support 2160p stream, Please turn off this element -->
        <EncoderProfile quality="2160p" fileFormat="mp4" duration="30">
            <Video codec="h264"
                   bitRate="18000000"
                   width="3840"
                   height="2160"
                   frameRate="30" />
            <Audio codec="aac"
                   bitRate="96000"
                   sampleRate="44100"
                   channels="1" />
        </EncoderProfile>

        <!--  If your sensor driver don't support 2160p stream, Please turn off this element -->
        <EncoderProfile quality="timelapse2160p" fileFormat="mp4" duration="30">
            <Video codec="h264"
                   bitRate="18000000"
                   width="3840"
                   height="2160"
                   frameRate="30" />
            <Audio codec="aac"
                   bitRate="96000"
                   sampleRate="44100"
                   channels="1" />
        </EncoderProfile>

    <!--
         If a codec is not enabled, it is invisible to the applications
         In other words, the applications won't be able to use the codec
         or query the capabilities of the codec at all if it is disabled
    -->
    <VideoEncoderCap name="h264" enabled="true"
        minBitRate="64000" maxBitRate="18000000"
        minFrameWidth="176" maxFrameWidth="1920"
        minFrameHeight="144" maxFrameHeight="1080"

        minFrameRate="1" maxFrameRate="30" />

修改为:
    <!--
         If a codec is not enabled, it is invisible to the applications
         In other words, the applications won't be able to use the codec
         or query the capabilities of the codec at all if it is disabled
    -->
    <VideoEncoderCap name="h264" enabled="true"
        minBitRate="64000" maxBitRate="18000000"
        minFrameWidth="176" maxFrameWidth="3840"
        minFrameHeight="144" maxFrameHeight="2160"

        minFrameRate="1" maxFrameRate="30" />

Microsoft Windows [版本 10.0.19045.2311]
(c) Microsoft Corporation。保留所有权利。

C:\Users\Administrator>adb root
* daemon not running; starting now at tcp:5037
* daemon started successfully
restarting adbd as root

C:\Users\Administrator>adb remount
remount succeeded

C:\Users\Administrator>
C:\Users\Administrator>cd N:\AIO-3399J

C:\Users\Administrator>n:

N:\AIO-3399J>adb push media_profiles_V1_0.xml /vendor/etc/
media_profiles_V1_0.xml: 1 file pushed, 0 skipped. 0.4 MB/s (24266 bytes in 0.059s)

N:\AIO-3399J>

效果图:


5、出错的分析:LOGCAT出错
01-04 03:51:39.506     0     0 W rkisp1  : Measurement late(162, 161)
01-04 03:51:39.767  1738  1738 D CAM_VideoModule: onShutterButtonClick
01-04 03:51:39.767  1738  1738 I CAM_VideoModule: startVideoRecording: Thread[main,5,main]
01-04 03:51:39.767  1738  1738 V CAM_VideoUI: mFocusRing.stopFocusAnimations()
01-04 03:51:39.768  1738  1738 D CAM_CameraActivity: mUpdateStorageTask = com.android.camera.CameraActivity$22@7e08a80
01-04 03:51:39.784  1738  1798 D CAM_Storage: External storage state=mounted
01-04 03:51:39.786  1738  1798 D CAM_Storage: /storage/emulated/0/DCIM/Camera can write:true
01-04 03:51:39.792  1738  1798 E CAM_Storage: getOtherAvailableSpace DIRECTORY:/DCIM/Camera UNAVAILABLE
01-04 03:51:39.797  1738  1798 E CAM_Storage: getOtherAvailableSpace DIRECTORY:/DCIM/Camera UNAVAILABLE
01-04 03:51:39.798  1738  1738 I CAM_VideoModule: initializeRecorder: Thread[main,5,main]
01-04 03:51:39.800   355  1729 W StagefrightRecorder: stop while neither recording nor paused
01-04 03:51:39.807  1738  1738 D CAM_VideoModule: camera isReleased:false
01-04 03:51:39.821   355   927 W StagefrightRecorder: Max file duration is not positive: 0 us. Disabling duration limit.
01-04 03:51:39.821   355   927 W StagefrightRecorder: Target duration (0 us) too short to be respected
01-04 03:51:39.822  1738  1738 D CAM_LcyLocProvider: No location received yet.
01-04 03:51:39.828  1738  1738 D CAM_LcyLocProvider: No location received yet.
01-04 03:51:39.829  1738  1738 V CAM_VideoModule: New video filename: /storage/emulated/0/DCIM/Camera/VID_20240104_035139.mp4.tmp
01-04 03:51:39.877   355   927 D MPEG4Writer: PreAllocation disabled. fallocate : Operation not supported on transport endpoint, 95

01-04 03:51:39.878   355   927 E CameraSource: Video dimension (3840x2160) is unsupported
01-04 03:51:39.878   355   927 I BpBinder: onLastStrongRef automatically unlinking death recipients: <uncached descriptor>
01-04 03:51:39.878   355   927 D MPEG4Writer: reset()
01-04 03:51:39.878   355   927 D MPEG4Writer: release()
01-04 03:51:39.882  1738  1738 E MediaRecorder: start failed: -19
01-04 03:51:39.883  1738  1738 E CAM_VideoModule: Could not start media recorder. 
01-04 03:51:39.883  1738  1738 E CAM_VideoModule: java.lang.RuntimeException: start failed.
01-04 03:51:39.883  1738  1738 E CAM_VideoModule:     at android.media.MediaRecorder.start(Native Method)
01-04 03:51:39.883  1738  1738 E CAM_VideoModule:     at com.android.camera.VideoModule$14.onStorageUpdateDone(VideoModule.java:1614)
01-04 03:51:39.883  1738  1738 E CAM_VideoModule:     at com.android.camera.CameraActivity$22.onPostExecute(CameraActivity.java:2770)
01-04 03:51:39.883  1738  1738 E CAM_VideoModule:     at com.android.camera.CameraActivity$22.onPostExecute(CameraActivity.java:2754)
01-04 03:51:39.883  1738  1738 E CAM_VideoModule:     at android.os.AsyncTask.finish(AsyncTask.java:771)
01-04 03:51:39.883  1738  1738 E CAM_VideoModule:     at android.os.AsyncTask.access$900(AsyncTask.java:199)
01-04 03:51:39.883  1738  1738 E CAM_VideoModule:     at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:788)
01-04 03:51:39.883  1738  1738 E CAM_VideoModule:     at android.os.Handler.dispatchMessage(Handler.java:106)
01-04 03:51:39.883  1738  1738 E CAM_VideoModule:     at android.os.Looper.loop(Looper.java:223)
01-04 03:51:39.883  1738  1738 E CAM_VideoModule:     at android.app.ActivityThread.main(ActivityThread.java:7660)
01-04 03:51:39.883  1738  1738 E CAM_VideoModule:     at java.lang.reflect.Method.invoke(Native Method)
01-04 03:51:39.883  1738  1738 E CAM_VideoModule:     at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
01-04 03:51:39.883  1738  1738 E CAM_VideoModule:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
01-04 03:51:39.883  1738  1738 E CAM_FatalErrorHandler: Handling Camera Access Failure:
01-04 03:51:39.883  1738  1738 E CAM_FatalErrorHandler: java.lang.Exception
01-04 03:51:39.883  1738  1738 E CAM_FatalErrorHandler:     at com.android.camera.FatalErrorHandlerImpl.onGenericCameraAccessFailure(FatalErrorHandlerImpl.java:84)
01-04 03:51:39.883  1738  1738 E CAM_FatalErrorHandler:     at com.android.camera.VideoModule$14.onStorageUpdateDone(VideoModule.java:1617)
01-04 03:51:39.883  1738  1738 E CAM_FatalErrorHandler:     at com.android.camera.CameraActivity$22.onPostExecute(CameraActivity.java:2770)
01-04 03:51:39.883  1738  1738 E CAM_FatalErrorHandler:     at com.android.camera.CameraActivity$22.onPostExecute(CameraActivity.java:2754)
01-04 03:51:39.883  1738  1738 E CAM_FatalErrorHandler:     at android.os.AsyncTask.finish(AsyncTask.java:771)
01-04 03:51:39.883  1738  1738 E CAM_FatalErrorHandler:     at android.os.AsyncTask.access$900(AsyncTask.java:199)
01-04 03:51:39.883  1738  1738 E CAM_FatalErrorHandler:     at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:788)
01-04 03:51:39.883  1738  1738 E CAM_FatalErrorHandler:     at android.os.Handler.dispatchMessage(Handler.java:106)
01-04 03:51:39.883  1738  1738 E CAM_FatalErrorHandler:     at android.os.Looper.loop(Looper.java:223)
01-04 03:51:39.883  1738  1738 E CAM_FatalErrorHandler:     at android.app.ActivityThread.main(ActivityThread.java:7660)
01-04 03:51:39.883  1738  1738 E CAM_FatalErrorHandler:     at java.lang.reflect.Method.invoke(Native Method)
01-04 03:51:39.883  1738  1738 E CAM_FatalErrorHandler:     at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
01-04 03:51:39.883  1738  1738 E CAM_FatalErrorHandler:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
01-04 03:51:39.884  1738  1738 E CAM_CameraUtil: Show fatal error dialog
01-04 03:51:39.911  1738  1738 I CAM_VideoModule: Releasing media recorder.
01-04 03:51:39.928  1175  1310 I MediaProvider: Deleted 1 items on external_primary due to com.android.camera2
01-04 03:51:39.930  1738  1738 V CAM_VideoModule: Empty video file deleted: /storage/emulated/0/DCIM/Camera/VID_20240104_035139.mp4.tmp
01-04 03:51:39.930   355   927 W StagefrightRecorder: stop while neither recording nor paused
01-04 03:51:39.934   355   405 W StagefrightRecorder: stop while neither recording nor paused
01-04 03:51:39.934   355   405 W StagefrightRecorder: stop while neither recording nor paused
01-04 03:51:39.936  1738  1738 I CAM_VideoModule: Released media recorder.
01-04 03:51:39.959  1738  1765 D mali_winsys: EGLint new_window_surface(egl_winsys_display *, void *, EGLSurface, EGLConfig, egl_winsys_surface **, egl_color_buffer_format *, EGLBoolean) returns 0x3000
01-04 03:51:39.960   230   230 D gralloc4: [File] : hardware/rockchip/libgralloc/midgard/src/hidl_common/Allocator.cpp; [Line] : 147; [Func] : allocate;
01-04 03:51:39.960   230   230 D gralloc4: got new private_handle_t instance @0xb4000071f9e12890 for buffer 'com.android.camera2/com.android.camera.CameraLauncher#1'. share_fd : 8, share_attr_fd : 9, flags : 0x4, width : 1217, height : 463, req_format : 0x1, producer_usage : 0xb00, consumer_usage : 0xb00, internal_format : 0x1, stride : 0, byte_stride : 4928, internalWidth : 1217, internalHeight : 463, alloc_format : 0x1, size : 2281664, layer_count : 1, backing_store_size : 2281664, allocating_pid : 230, ref_count : 1, yuv_info : 0
01-04 03:51:39.960   230   230 D gralloc4: plane_info[0]: offset : 0, byte_stride : 4928, alloc_width : 1217, alloc_height : 463
01-04 03:51:39.960   230   230 D gralloc4: plane_info[1]: offset : 0, byte_stride : 0, alloc_width : 0, alloc_height : 0
01-04 03:51:39.961   230   230 D gralloc4: [File] : hardware/rockchip/libgralloc/midgard/src/hidl_common/Allocator.cpp; [Line] : 147; [Func] : allocate;
01-04 03:51:39.961   230   230 D gralloc4: got new private_handle_t instance @0xb4000071f9e10250 for buffer 'com.android.camera2/com.android.camera.CameraLauncher#1'. share_fd : 8, share_attr_fd : 9, flags : 0x4, width : 1217, height : 463, req_format : 0x1, producer_usage : 0xb00, consumer_usage : 0xb00, internal_format : 0x1, stride : 0, byte_stride : 4928, internalWidth : 1217, internalHeight : 463, alloc_format : 0x1, size : 2281664, layer_count : 1, backing_store_size : 2281664, allocating_pid : 230, ref_count : 1, yuv_info : 0
01-04 03:51:39.961   230   230 D gralloc4: plane_info[0]: offset : 0, byte_stride : 4928, alloc_width : 1217, alloc_height : 463
01-04 03:51:39.961   230   230 D gralloc4: plane_info[1]: offset : 0, byte_stride : 0, alloc_width : 0, alloc_height : 0
01-04 03:51:39.962   230   230 D gralloc4: [File] : hardware/rockchip/libgralloc/midgard/src/hidl_common/Allocator.cpp; [Line] : 147; [Func] : allocate;
01-04 03:51:39.962   230   230 D gralloc4: got new private_handle_t instance @0xb4000071f9e12890 for buffer 'com.android.camera2/com.android.camera.CameraLauncher#1'. share_fd : 8, share_attr_fd : 9, flags : 0x4, width : 1217, height : 463, req_format : 0x1, producer_usage : 0xb00, consumer_usage : 0xb00, internal_format : 0x1, stride : 0, byte_stride : 4928, internalWidth : 1217, internalHeight : 463, alloc_format : 0x1, size : 2281664, layer_count : 1, backing_store_size : 2281664, allocating_pid : 230, ref_count : 1, yuv_info : 0
01-04 03:51:39.962   230   230 D gralloc4: plane_info[0]: offset : 0, byte_stride : 4928, alloc_width : 1217, alloc_height : 463
01-04 03:51:39.962   230   230 D gralloc4: plane_info[1]: offset : 0, byte_stride : 0, alloc_width : 0, alloc_height : 0
01-04 03:51:39.980  1738  1765 D android.camera: set stream to NULL
[   46.672930] rkisp1: Measurement late(179, 178)
01-04 03:51:40.074     0     0 W rkisp1  : Measurement late(179, 178)

baidu/bing/google搜索: CameraSource: Video dimension (3840x2160) is unsupported

https://blog.csdn.net/dongxianfei/article/details/122622733
CTS测试中和Media相关的项-testGet/testGetWithId

(4)示例
(A)
03-22 10:15:40.088 10164 23970 23995 V CamcorderProfileTest: profile: duration=30, quality=1, fileFormat=2, videoCodec=2, videoBitRate=43000000, videoFrameRate=30, videoFrameWidth=3840, videoFrameHeight=2160, audioCodec=3, audioBitRate=128000, audioSampleRate=48000, audioChannels=2
03-22 10:15:40.088 10164 23970 23995 E CamcorderProfileTest: Size (3840x2160) is not supported
03-22 10:15:40.089 10164 23970 23995 E TestRunner: failed: testGet(android.media.cts.CamcorderProfileTest)
03-22 10:15:40.089 10164 23970 23995 E TestRunner: ----- begin exception -----
03-22 10:15:40.091 10164 23970 23995 E TestRunner: junit.framework.AssertionFailedError
03-22 10:15:40.091 10164 23970 23995 E TestRunner:     at junit.framework.Assert.fail(Assert.java:48)
03-22 10:15:40.091 10164 23970 23995 E TestRunner:     at junit.framework.Assert.assertTrue(Assert.java:20)
03-22 10:15:40.091 10164 23970 23995 E TestRunner:     at junit.framework.Assert.assertTrue(Assert.java:27)
03-22 10:15:40.091 10164 23970 23995 E TestRunner:     at android.media.cts.CamcorderProfileTest.checkProfile(CamcorderProfileTest.java:129)
03-22 10:15:40.091 10164 23970 23995 E TestRunner:     at android.media.cts.CamcorderProfileTest.checkGet(CamcorderProfileTest.java:402)
03-22 10:15:40.091 10164 23970 23995 E TestRunner:     at android.media.cts.CamcorderProfileTest.testGet(CamcorderProfileTest.java:494)

从Log可以看到,CamcorderProfileTest: Size (3840x2160) is not supported。

此时查看media_profiles.xml当中有配置这个size,那最大可能就是此Size超过了Sensor Drv输出能力,经确认Sensor最大输出3264x2448,从而需要从media_profiles.xml当中移除此Size。


http://www.taodudu.cc/news/show-3050665.html?action=onClick
RK3399适配OV8858摄像头

Video

Back camera video

UHD 4K

Camera error
Can't connect to the camera.
REPORT DISMISS

视频
后置摄像头视频
UHD 4K

相机发生错误
无法连接到相机。
报告 关闭


参考资料:
http://www.friendlyelec.com.cn/agent.asp
http://www.friendlyelec.com.cn/
https://download.friendlyelec.com/NanoPC-T4
https://wiki.friendlyelec.com/wiki/index.php/NanoPC-T4/zh#.E4.B8.8B.E8.BD.BDAndroid10.E6.BA.90.E4.BB.A3.E7.A0.81


https://item.taobao.com/item.htm?spm=a1z09.2.0.0.37562e8dcotDm6&id=570312633249&_u=7ju3ku004a
友善NanoPC-T4瑞芯微RK3399开发板ROS双摄4K播放开源AI智能安卓10

WiKi维基教程(固件介绍,使用说明,操作步骤等)
http://wiki.friendlyelec.com/wiki/index.php/NanoPC-T4
系统固件下载
https://dl.friendlyelec.com/nanopct4
原理图(pdf格式)
http://wiki.friendlyelec.com/wiki/images/e/e0/NanoPC-T4-1902-Schematic.pdf
尺寸图(dxf格式)
http://wiki.friendlyelec.com/wiki/images/b/bc/NanoPC-T4_1802_Drawing%28dxf%29.zip


http://www.friendlyelec.com.cn/nanopi-m4.asp
NanoPi M4 | NanoPi M4V2

https://wiki.friendlyelec.com/wiki/index.php/NanoPi_M4/zh
15.3 编译Android10源代码
15.3.1 下载Android10源代码
有以下两种途径获取 Android10 的源代码,都需要联网:

使用网盘里的git repo压缩包
网盘下载地址: 点击进入

https://download.friendlyelec.com/NanoPiM4
https://pan.baidu.com/share/init?surl=oBLn9H31hILJKEPQXgrUog
提取码:yn6r

这篇关于20240104确认AIO-3399J的开发板适配ov13850摄像头不支持4K分辨率录像的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/570715

相关文章

分辨率三兄弟LPI、DPI 和 PPI有什么区别? 搞清分辨率的那些事儿

《分辨率三兄弟LPI、DPI和PPI有什么区别?搞清分辨率的那些事儿》分辨率这个东西,真的是让人又爱又恨,为了搞清楚它,我可是翻阅了不少资料,最后发现“小7的背包”的解释最让我茅塞顿开,于是,我... 在谈到分辨率时,我们经常会遇到三个相似的缩写:PPI、DPI 和 LPI。虽然它们看起来差不多,但实际应用

SpringKafka消息发布之KafkaTemplate与事务支持功能

《SpringKafka消息发布之KafkaTemplate与事务支持功能》通过本文介绍的基本用法、序列化选项、事务支持、错误处理和性能优化技术,开发者可以构建高效可靠的Kafka消息发布系统,事务支... 目录引言一、KafkaTemplate基础二、消息序列化三、事务支持机制四、错误处理与重试五、性能优

Vue 调用摄像头扫描条码功能实现代码

《Vue调用摄像头扫描条码功能实现代码》本文介绍了如何使用Vue.js和jsQR库来实现调用摄像头并扫描条码的功能,通过安装依赖、获取摄像头视频流、解析条码等步骤,实现了从开始扫描到停止扫描的完整流... 目录实现步骤:代码实现1. 安装依赖2. vue 页面代码功能说明注意事项以下是一个基于 Vue.js

QT移植到RK3568开发板的方法步骤

《QT移植到RK3568开发板的方法步骤》本文主要介绍了QT移植到RK3568开发板的方法步骤,文中通过图文示例介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录前言一、获取SDK1. 安装依赖2. 获取SDK资源包3. SDK工程目录介绍4. 获取补丁包二

一文教你解决Python不支持中文路径的问题

《一文教你解决Python不支持中文路径的问题》Python是一种广泛使用的高级编程语言,然而在处理包含中文字符的文件路径时,Python有时会表现出一些不友好的行为,下面小编就来为大家介绍一下具体的... 目录问题背景解决方案1. 设置正确的文件编码2. 使用pathlib模块3. 转换路径为Unicod

定价129元!支持双频 Wi-Fi 5的华为AX1路由器发布

《定价129元!支持双频Wi-Fi5的华为AX1路由器发布》华为上周推出了其最新的入门级Wi-Fi5路由器——华为路由AX1,建议零售价129元,这款路由器配置如何?详细请看下文介... 华为 Wi-Fi 5 路由 AX1 已正式开售,新品支持双频 1200 兆、配有四个千兆网口、提供可视化智能诊断功能,建

如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别详解

《如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别详解》:本文主要介绍如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别的相关资料,描述了如何使用海康威视设备网络SD... 目录前言开发流程问题和解决方案dll库加载不到的问题老旧版本sdk不兼容的问题关键实现流程总结前言作为

鸿蒙开发搭建flutter适配的开发环境

《鸿蒙开发搭建flutter适配的开发环境》文章详细介绍了在Windows系统上如何创建和运行鸿蒙Flutter项目,包括使用flutterdoctor检测环境、创建项目、编译HAP包以及在真机上运... 目录环境搭建创建运行项目打包项目总结环境搭建1.安装 DevEco Studio NEXT IDE

开发板NFS挂载文件目录

文章目录 序NFS1. 安装 NFS 服务器和客户端在服务器上(NFS 服务器端)在客户端上(NFS 客户端) 2. 配置 NFS 服务器创建共享目录编辑 `/etc/exports` 文件启动 NFS 服务 3. 在客户端挂载 NFS 共享创建挂载点挂载 NFS 共享验证挂载 4. 设置开机自动挂载5. 解决权限问题 序 本节主要实现虚拟机(服务器)与开发板(客户端)通过N

Golang支持平滑升级的HTTP服务

前段时间用Golang在做一个HTTP的接口,因编译型语言的特性,修改了代码需要重新编译可执行文件,关闭正在运行的老程序,并启动新程序。对于访问量较大的面向用户的产品,关闭、重启的过程中势必会出现无法访问的情况,从而影响用户体验。 使用Golang的系统包开发HTTP服务,是无法支持平滑升级(优雅重启)的,本文将探讨如何解决该问题。 一、平滑升级(优雅重启)的一般思路 一般情况下,要实现平滑