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

相关文章

开发板NFS挂载文件目录

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

Golang支持平滑升级的HTTP服务

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

sqlite不支持中文排序,采用java排序

方式一 不支持含有重复字段进行排序 /*** sqlite不支持中文排序,改用java排序* 根据指定的对象属性字段,排序对象集合,顺序* @param list* @param field* @return*/public static List sortListByField(List<?> list,String field){List temp = new ArrayList(

一款支持同一个屏幕界面同时播放多个视频的视频播放软件

GridPlayer 是一款基于 VLC 的免费开源跨平台多视频同步播放工具,支持在一块屏幕上同时播放多个视频。其主要功能包括: 多视频播放:用户可以在一个窗口中同时播放任意数量的视频,数量仅受硬件性能限制。支持多种格式和流媒体:GridPlayer 支持所有由 VLC 支持的视频格式以及流媒体 URL(如 m3u8 链接)。自定义网格布局:用户可以配置播放器的网格布局,以适应不同的观看需求。硬

Science Robotics 首尔国立大学研究团队推出BBEX外骨骼,实现多维力量支持!

重复性举起物体可能会对脊柱和背部肌肉造成损伤,由此引发的腰椎损伤是工业环境等工作场所中一个普遍且令人关注的问题。为了减轻这类伤害,有研究人员已经研发出在举起任务中为工人提供辅助的背部支撑装置。然而,现有的这类装置通常无法在非对称性的举重过程中提供多维度的力量支持。此外,针对整个人体脊柱的设备安全性验证也一直是一个缺失的环节。 据探索前沿科技边界,传递前沿科技成果的X-robot投稿,来自首尔国立

【虚拟化】AIO主机安装PVE8,配置网络,安装win11(virtio,qcow2,scsi,oobe,adk)

【虚拟化】AIO主机安装PVE8,配置网络,安装win11(virtio,qcow2,scsi,oobe,adk) 文章目录 1、ESXI vs PVE,AIO主机系统二选一2、PVE网络配置(DNS,换源,网卡,https,概览)3、win11虚拟化配置(virtio,raw,qcow2)附,域名解析,rocky9.4,黑群晖 1、ESXI vs PVE,AIO主机系统二选

还不懂BIO,NIO,AIO吗

BIO(Blocking I/O)、NIO(Non-blocking I/O)和 AIO(Asynchronous I/O)是 Java 中三种不同的 I/O 模型,主要用于处理输入 / 输出操作。 一、BIO(Blocking I/O) 定义与工作原理: BIO 即阻塞式 I/O(同步阻塞,传统IO)。在这种模型下,当一个线程发起一个 I/O 操作(如读取文件或网络数据)时,此线

4-4.Andorid Camera 之简化编码模板(获取摄像头 ID、选择最优预览尺寸)

一、Camera 简化思路 在 Camera 的开发中,其实我们通常只关注打开相机、图像预览和关闭相机,其他的步骤我们不应该花费太多的精力 为此,应该提供一个工具类,它有处理相机的一些基本工具方法,包括获取摄像头 ID、选择最优预览尺寸以及打印相机参数信息 二、Camera 工具类 CameraIdResult.java public class CameraIdResult {

word转PDF后mathtype公式乱码以及图片分辨率降低等一系列问题|完美解决

word转PDF后mathtype公式乱码以及图片分辨率降低等一系列问题|完美解决 问题描述 最近在投一篇期刊论文,直接提交word文档,当时没有查看提交预览,一审审稿意见全是:公式乱码、公式乱码、乱码啊!!!是我大意了,第二次提交,我就决定将word文档转成PDF后再提交,避免再次出现公式乱码的问题。接着问题又来了,我利用‘文件/导出’或‘文件/另存为’的方式将word转成PDF后,发现公式

超级 密码加密 解密 源码,支持表情,符号,数字,字母,加密

超级 密码加密 解密 源码,支持表情,符号,数字,字母,加密 可以将表情,动物,水果,表情,手势,猫语,兽语,狗语,爱语,符号,数字,字母,加密和解密 可以将文字、字母、数字、代码、标点符号等内容转换成新的文字形式,通过简单的文字以不同的排列顺序来表达不同的内容 源码截图: https://www.httple.net/152649.html