20240607在Toybrick的TB-RK3588开发板的Android12下适配IMX415摄像头和ov50c40

本文主要是介绍20240607在Toybrick的TB-RK3588开发板的Android12下适配IMX415摄像头和ov50c40,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

20240607在Toybrick的TB-RK3588开发板的Android12下适配IMX415摄像头和ov50c40
2024/6/7 11:42


【4K/8K摄像头发热量巨大,请做好散热措施,最好使用散热片+鼓风机模式!】

结论:欢迎您入坑。
Toybrick的TB-RK3588开发板的技术支持不给力的!/很差劲。
也没有详细的STEP-BY-STEP的测试步骤。

IMX415摄像头只能接在CSI0上。难道CSI1没有调试好?还是有问题。
一个8K,一个4K摄像头,明明可以组程前后双摄像头。
不知道Toybrick的人怎么搞的?


https://t.rock-chips.com/wiki.php?filename=%E9%85%8D%E4%BB%B6/TB-IMX415#hash_1
产品简介
IMX415是一款 MIPI 宽动态模组,优质的宽动态效果将适应更多恶劣场景,减少复杂光线环境对识别算法产生的不良影响,采用标准MIPI接口输出高质量视频流;以满足安防摄像机在防盗、灾难警报、交通监测系统或商业综合体等多种监控应用领域的快速增长需求。

IMX415最大分辨率为 3840 x 2160,支持2/4Lane、RAW10/RAW12输出,支持HDR,支持以下分辨率:3840 x 2160,1920 x 1080。

适配开发板:TB-RK3588X、TB-RK3588SD、TB-RK3399ProD、TB-RK3399ProX系列开发板。


【唯一可以表扬的地方,联想网盘的速度还不错/杠杠的。不过需要安装单独的下载软件!】
资料下载:
相关文档及教程参见 规格书
https://meta.box.lenovo.com/v/link/view/98687a78c1fd45f38a1262c9262e3dc2
配件

固件下载
https://meta.box.lenovo.com/v/link/view/97e293918d4148c4901c2d697d5a4df5
Cmaera Image


【为了以防万一,我在百度网盘也缓存一份:】
链接:https://pan.baidu.com/s/18kuGD_r_bvKE5SEWgXiQqg?pwd=bdc1 
提取码:bdc1 
--来自百度网盘超级会员V6的分享

效果图:


请将ov50c40_imx415-Linux-image-for-TB-RK3588X.7z解压缩到D盘,
神奇的是Toybrick竟然没有提供update.img。

导入配置文件:config.cfg
按图导入相应的IMG文件,既可刷机了!


刷机之后,你会很容易发现,系统默认只能480p录像。如果要让IMX415可以4K录像,请修改xml文件。
通过adb push送进去荣品的配置文件即可!


D:\20240423wyb\荣品4K>adb remount
remount failed
Not running as root. Try "adb root" first.

D:\20240423wyb\荣品4K>adb root
restarting adbd as root

D:\20240423wyb\荣品4K>adb remount
Using overlayfs for /system
Using overlayfs for /vendor
Using overlayfs for /odm
Using overlayfs for /system_ext
Using overlayfs for /vendor_dlkm
Using overlayfs for /odm_dlkm
Using overlayfs for /product
Now reboot your device for settings to take effect
remount succeeded

D:\20240423wyb\荣品4K>
D:\20240423wyb\荣品4K>
D:\20240423wyb\荣品4K>adb push media_profiles_V1_0.xml /vendor/etc

media_profiles_V1_0.xml: 1 file pushed, 0 skipped. 0.5 MB/s (25865 bytes in 0.051s)

D:\20240423wyb\荣品4K>

重启身高,这样即可4K录像。
【默认可以4K分辨率/8M像素拍照的】

20230207_081311 RK3588 IMX415


如果是ov50c40,将CSI0接口的IMX415拆下来换成ov50c40。
【唯一注意的是ov50c40是异面排线】
现阶段只需要单独刷一下boot_ov50c40.img或者boot_ov50c40_8k_only.img。
现阶段只有4K录像,但是没有搞定8K的XML文件。效果图欠奉了!

https://t.rock-chips.com/wiki.php?filename=%E9%85%8D%E4%BB%B6/TB-OV50C40
产品简介
OV50c40是一款 MIPI 宽动态模组,优质的宽动态效果将适应更多恶劣场景,减少复杂光线环境对识别算法产生的不良影响,采用标准MIPI接口输出高质量视频流;以满足安防摄像机在防盗、灾难警报、交通监测系统或商业综合体等多种监控应用领域的快速增长需求。

OV50c40最大分辨率为 8192 x 6144,支持4Lane、RAW10/RGB输出,支持HDR,支持以下分辨率:8192x6144, 4096x3072, 3840x2160, 1920x1080, 1280x720。

TB-OV50C40适配TB-RK3588X、TB-RK3588SD、TB-RK3399ProD、TB-RK3399ProX系列开发板。


资料下载
相关文档及教程参见 规格书

固件下载

20230207_081530 RK3588 OV50C40

参考资料:
1、使用对外服务器的代码:
repo init --repo-url=ssh://git@git.rockchip.com.cn:2222/repo-release/tools/repo.git -u ssh://git@git.rockchip.com.cn:2222/Android_S/rk3588-manifests.git -m Android12.xml
2、ov50c40
①、ov50c40 8k(使用boot_ov50c40_8k_only.img)同时抓图使用以下命令:
rkaiq_demo --device /dev/video22  --width 8192 --height 6144 --rkaiq   --iqpath /vendor/etc/camera/rkisp2/ --stream-skip=30 --stream-count=1  --stream-to=/sdcard/nv12
rkaiq_demo --device /dev/video31  --width 8192 --height 6144 --rkaiq   --iqpath /vendor/etc/camera/rkisp2/ --stream-skip=30 --stream-count=1  --stream-to=/sdcard/nv12_1
②、boot_ov50c40.img,默认为4k,需要先通过media-ctl配置分辨率,否则分辨率为4k。
3、如果是非8k的情况,希望同时抓两个摄像头图像,请使用以下命令:
v4l2-ctl --verbose -d /dev/video22 --set-fmt-video=width=宽,height=高,pixelformat='NV12' --stream-mmap=4  --stream-skip=30 --stream-to=/sdcard/nv12 --stream-count=1 &
v4l2-ctl --verbose -d /dev/video31 --set-fmt-video=width=宽,height=高,pixelformat='NV12' --stream-mmap=4  --stream-skip=30 --stream-to=/sdcard/nv12_1 --stream-count=1
注意:android下通过v4l2-ctl抓图默认不经过3A处理(linux下默认已经经过3A处理),可以参照rkaiq_demo写代码。


驱动程序:
D:\ov50c40_imx415-Android-image-for-TB-RK3588X\android\code

固件:
D:\ov50c40_imx415-Android-image-for-TB-RK3588X\android\img

patch文件:
D:\ov50c40_imx415-Android-image-for-TB-RK3588X\android\patch

XML配置文件:
D:\ov50c40_imx415-Android-image-for-TB-RK3588X\android\20230207.xml

media_profiles_V1_0.xml

<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2010 The Android Open Source Project

     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
     You may obtain a copy of the License at

          http://www.apache.org/licenses/LICENSE-2.0

     Unless required by applicable law or agreed to in writing, software
     distributed under the License is distributed on an "AS IS" BASIS,
     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     See the License for the specific language governing permissions and
     limitations under the License.
-->
<!DOCTYPE MediaSettings [
<!ELEMENT MediaSettings (CamcorderProfiles,
                         EncoderOutputFileFormat+,
                         VideoEncoderCap+,
                         AudioEncoderCap+,
                         VideoDecoderCap,
                         AudioDecoderCap)>
<!ELEMENT CamcorderProfiles (EncoderProfile+, ImageEncoding+, ImageDecoding, Camera)>
<!ELEMENT EncoderProfile (Video, Audio)>
<!ATTLIST EncoderProfile quality (high|low) #REQUIRED>
<!ATTLIST EncoderProfile fileFormat (mp4|3gp) #REQUIRED>
<!ATTLIST EncoderProfile duration (30|60) #REQUIRED>
<!ATTLIST EncoderProfile cameraId (0|1) #REQUIRED>
<!ELEMENT Video EMPTY>
<!ATTLIST Video codec (h264|h263|m4v) #REQUIRED>
<!ATTLIST Video bitRate CDATA #REQUIRED>
<!ATTLIST Video width CDATA #REQUIRED>
<!ATTLIST Video height CDATA #REQUIRED>
<!ATTLIST Video frameRate CDATA #REQUIRED>
<!ELEMENT Audio EMPTY>
<!ATTLIST Audio codec (amrnb|amrwb|aac) #REQUIRED>
<!ATTLIST Audio bitRate CDATA #REQUIRED>
<!ATTLIST Audio sampleRate CDATA #REQUIRED>
<!ATTLIST Audio channels (1|2) #REQUIRED>
<!ELEMENT ImageEncoding EMPTY>
<!ATTLIST ImageEncoding quality (90|80|70|60|50|40) #REQUIRED>
<!ELEMENT ImageDecoding EMPTY>
<!ATTLIST ImageDecoding memCap CDATA #REQUIRED>
<!ELEMENT Camera EMPTY>
<!ELEMENT EncoderOutputFileFormat EMPTY>
<!ATTLIST EncoderOutputFileFormat name (mp4|3gp) #REQUIRED>
<!ELEMENT VideoEncoderCap EMPTY>
<!ATTLIST VideoEncoderCap name (h264|h263|m4v|wmv) #REQUIRED>
<!ATTLIST VideoEncoderCap enabled (true|false) #REQUIRED>
<!ATTLIST VideoEncoderCap minBitRate CDATA #REQUIRED>
<!ATTLIST VideoEncoderCap maxBitRate CDATA #REQUIRED>
<!ATTLIST VideoEncoderCap minFrameWidth CDATA #REQUIRED>
<!ATTLIST VideoEncoderCap maxFrameWidth CDATA #REQUIRED>
<!ATTLIST VideoEncoderCap minFrameHeight CDATA #REQUIRED>
<!ATTLIST VideoEncoderCap maxFrameHeight CDATA #REQUIRED>
<!ATTLIST VideoEncoderCap minFrameRate CDATA #REQUIRED>
<!ATTLIST VideoEncoderCap maxFrameRate CDATA #REQUIRED>
<!ELEMENT AudioEncoderCap EMPTY>
<!ATTLIST AudioEncoderCap name (amrnb|amrwb|aac|wma) #REQUIRED>
<!ATTLIST AudioEncoderCap enabled (true|false) #REQUIRED>
<!ATTLIST AudioEncoderCap minBitRate CDATA #REQUIRED>
<!ATTLIST AudioEncoderCap maxBitRate CDATA #REQUIRED>
<!ATTLIST AudioEncoderCap minSampleRate CDATA #REQUIRED>
<!ATTLIST AudioEncoderCap maxSampleRate CDATA #REQUIRED>
<!ATTLIST AudioEncoderCap minChannels (1|2) #REQUIRED>
<!ATTLIST AudioEncoderCap maxChannels (1|2) #REQUIRED>
<!ELEMENT VideoDecoderCap EMPTY>
<!ATTLIST VideoDecoderCap name (wmv) #REQUIRED>
<!ATTLIST VideoDecoderCap enabled (true|false) #REQUIRED>
<!ELEMENT AudioDecoderCap EMPTY>
<!ATTLIST AudioDecoderCap name (wma) #REQUIRED>
<!ATTLIST AudioDecoderCap enabled (true|false) #REQUIRED>
<!ELEMENT VideoEditorCap EMPTY>
<!ATTLIST VideoEditorCap maxInputFrameWidth CDATA #REQUIRED>
<!ATTLIST VideoEditorCap maxInputFrameHeight CDATA #REQUIRED>
<!ATTLIST VideoEditorCap maxOutputFrameWidth CDATA #REQUIRED>
<!ATTLIST VideoEditorCap maxOutputFrameHeight CDATA #REQUIRED>
<!ATTLIST VideoEditorCap maxPrefetchYUVFrames CDATA #REQUIRED>
<!ELEMENT ExportVideoProfile EMPTY>
<!ATTLIST ExportVideoProfile name (h264|h263|m4v) #REQUIRED>
<!ATTLIST ExportVideoProfile profile CDATA #REQUIRED>
<!ATTLIST ExportVideoProfile level CDATA #REQUIRED>
]>
<!--
     This file is used to declare the multimedia profiles and capabilities
     on an android-powered device.
-->
<MediaSettings>
    <!-- Each camcorder profile defines a set of predefined configuration parameters -->
    <CamcorderProfiles cameraId="0">


        <EncoderProfile quality="qcif" fileFormat="mp4" duration="30">
            <Video codec="h264"
                   bitRate="128000"
                   width="176"
                   height="144"
                   frameRate="30" />

            <Audio codec="aac"
                   bitRate="61000"
                   sampleRate="44100"
                   channels="1" />

        </EncoderProfile>

        <EncoderProfile quality="qvga" fileFormat="mp4" duration="30">
            <Video codec="h264"
                   bitRate="256000"
                   width="320"
                   height="240"
                   frameRate="30" />
            <Audio codec="amrnb"
                   bitRate="12200"
                   sampleRate="8000"
                   channels="1" />
        </EncoderProfile>

        <!--
         <EncoderProfile quality="cif" fileFormat="mp4" duration="30">
            <Video codec="h264"
                   bitRate="1200000"
                   width="352"
                   height="288"
                   frameRate="30" />
            <Audio codec="aac"
                   bitRate="61000"
                   sampleRate="44100"
                   channels="1" />
        </EncoderProfile>
        -->
        <!--  If your sensor driver don't support 720p and 480p stream, Please fill this element according as
              your sensor max resolution for preview(Not Capture resolution)  -->
        <EncoderProfile quality="480p" fileFormat="mp4" duration="30">
            <Video codec="h264"
                bitRate="3000000"
                   width="640"
                   height="480"
                   frameRate="30" />

            <Audio codec="aac"
                   bitRate="61000"
                   sampleRate="44100"
                   channels="1" />
        </EncoderProfile>

        <!--  If your sensor driver don't support 480p stream, Please turn off this element -->

        <!--
        <EncoderProfile quality="480p" fileFormat="mp4" duration="30">
            <Video codec="h264"
                   bitRate="3000000"
                   width="720"
                   height="480"
                   frameRate="30" />

            <Audio codec="aac"
                   bitRate="61000"
                   sampleRate="44100"
                   channels="1" />
        </EncoderProfile>

        -->
        <!--  If your sensor driver don't support 480p stream, Please turn off this element -->

<!--
        <EncoderProfile quality="480p" fileFormat="mp4" duration="30">
            <Video codec="h264"
                   bitRate="3000000"
                   width="800"
                   height="600"
                   frameRate="30" />

            <Audio codec="aac"
                   bitRate="61000"
                   sampleRate="44100"
                   channels="1" />
        </EncoderProfile>

-->
         <!--  If your sensor driver don't support 576p stream, Please turn off this element -->

<!--
        <EncoderProfile quality="576p" fileFormat="mp4" duration="30">
            <Video codec="h264"
                   bitRate="3000000"
                   width="720"
                   height="576"
                   frameRate="30" />

            <Audio codec="aac"
                   bitRate="61000"
                   sampleRate="44100"
                   channels="1" />
        </EncoderProfile>
-->

        <!--  If your sensor driver don't support 720p stream, Please turn off this element -->
        <EncoderProfile quality="720p" fileFormat="mp4" duration="30">
            <Video codec="h264"
                   bitRate="6000000"
                   width="1280"
                   height="720"
                   frameRate="30" />

            <Audio codec="aac"
                   bitRate="61000"
                   sampleRate="44100"
                   channels="1" />
        </EncoderProfile>
        <!--  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="6000000"
                   width="1920"
                   height="1080"
                   frameRate="30" />

            <Audio codec="aac"
                   bitRate="61000"
                   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="6000000"
                   width="3840"
                   height="2160"
                   frameRate="30" />
 
            <Audio codec="aac"
                   bitRate="61000"
                   sampleRate="44100"
                   channels="1" />
    </EncoderProfile>


        <EncoderProfile quality="timelapseqcif" fileFormat="mp4" duration="30">
            <Video codec="h264"
                   bitRate="192000"
                   width="176"
                   height="144"
                   frameRate="30" />

            <Audio codec="aac"
                   bitRate="61000"
                   sampleRate="44100"
                   channels="1" />
        </EncoderProfile>

        <EncoderProfile quality="timelapseqvga" fileFormat="mp4" duration="30">
            <Video codec="h264"
                   bitRate="128000"
                   width="320"
                   height="240"
                   frameRate="30" />
            <Audio codec="amrnb"
                   bitRate="12200"
                   sampleRate="8000"
                   channels="1" />
        </EncoderProfile>
        <!--
        <EncoderProfile quality="timelapsecif" fileFormat="mp4" duration="30">
            <Video codec="h264"
                   bitRate="1200000"
                   width="352"
                   height="288"
                   frameRate="30" />

            <Audio codec="aac"
                   bitRate="61000"
                   sampleRate="44100"
                   channels="1" />
        </EncoderProfile>

        -->
        <!--  If your sensor driver don't support 720p and 480p stream, Please fill this element according as
              your sensor max resolution for preview(Not Capture resolution)  -->
        <EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="30">
            <Video codec="h264"
                   bitRate="1200000"
                   width="640"
                   height="480"
                   frameRate="30" />

        <Audio codec="aac"
                   bitRate="61000"
                   sampleRate="44100"
                   channels="1" />
        </EncoderProfile>

        <!--  If your sensor driver don't support 480p stream, Please turn off this element  -->

        <!--
        <EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="30">
            <Video codec="h264"
                   bitRate="256000"
                   width="720"
                   height="480"
                   frameRate="30" />

            <Audio codec="aac"
                   bitRate="61000"
                   sampleRate="44100"
                   channels="1" />
        </EncoderProfile>

        -->
        <!--  If your sensor driver don't support 480p stream, Please turn off this element  -->

<!--
        <EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="30">
            <Video codec="h264"
                   bitRate="256000"
                   width="800"
                   height="600"
                   frameRate="30" />

            <Audio codec="aac"
                   bitRate="61000"
                   sampleRate="44100"
                   channels="1" />
        </EncoderProfile>
-->

         <!--  If your sensor driver don't support 720p and 480p stream, Please fill this element according as
              your sensor max resolution for preview(Not Capture resolution)  -->
<!--
         <EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="30">
            <Video codec="h264"
                   bitRate="1200000"
                   width="800"
                   height="600"
                   frameRate="30" />

            <Audio codec="aac"
                   bitRate="61000"
                   sampleRate="44100"
                   channels="1" />
        </EncoderProfile>
-->

         <!--  If your sensor driver don't support 576p stream, Please fill this element according as
              your sensor max resolution for preview(Not Capture resolution)  -->
<!--
         <EncoderProfile quality="timelapse576p" fileFormat="mp4" duration="30">
            <Video codec="h264"
                   bitRate="1200000"
                   width="720"
                   height="576"
                   frameRate="30" />

            <Audio codec="aac"
                   bitRate="61000"
                   sampleRate="44100"
                   channels="1" />
        </EncoderProfile>
-->

        <!--  If your sensor driver don't support 720p stream, Please turn off this element -->
<!--
        <EncoderProfile quality="timelapse720p" fileFormat="mp4" duration="30">
            <Video codec="h264"
                   bitRate="3000000"
                   width="1280"
                   height="720"
                   frameRate="30" />

            <Audio codec="aac"
                   bitRate="61000"
                   sampleRate="44100"
                   channels="1" />
        </EncoderProfile>
-->
        <!--  If your sensor driver don't support 108p stream, Please turn off this element -->

        <ImageEncoding quality="90" />
        <ImageEncoding quality="80" />
        <ImageEncoding quality="70" />
        <ImageDecoding memCap="20000000" />

    </CamcorderProfiles>

    <CamcorderProfiles cameraId="1">


        <EncoderProfile quality="qcif" fileFormat="mp4" duration="30">
            <Video codec="h264"
                   bitRate="128000"
                   width="176"
                   height="144"
                   frameRate="30" />

            <Audio codec="aac"
                   bitRate="61000"
                   sampleRate="44100"
                   channels="1" />

        </EncoderProfile>

         <EncoderProfile quality="qvga" fileFormat="mp4" duration="30">
            <Video codec="h264"
                   bitRate="256000"
                   width="320"
                   height="240"
                   frameRate="30" />
            <Audio codec="amrnb"
                   bitRate="12200"
                   sampleRate="8000"
                   channels="1" />
        </EncoderProfile>

         <!--
         <EncoderProfile quality="cif" fileFormat="mp4" duration="30">
            <Video codec="h264"
                   bitRate="1200000"
                   width="352"
                   height="288"
                   frameRate="30" />
            <Audio codec="aac"
                   bitRate="96000"
                   sampleRate="48000"
                   channels="1" />
        </EncoderProfile>
        -->
        <!--  If your sensor driver don't support 720p and 480p stream, Please fill this element according as
              your sensor max resolution for preview(Not Capture resolution)  -->
        <EncoderProfile quality="480p" fileFormat="mp4" duration="30">
            <Video codec="h264"
                bitRate="3000000"
                   width="640"
                   height="480"
                   frameRate="30" />

            <Audio codec="aac"
                   bitRate="61000"
                   sampleRate="44100"
                   channels="1" />
        </EncoderProfile>

        <!--  If your sensor driver don't support 480p stream, Please turn on this element   -->

<!--
        <EncoderProfile quality="480p" fileFormat="mp4" duration="30">
            <Video codec="h264"
                   bitRate="3000000"
                   width="720"
                   height="480"
                   frameRate="30" />

            <Audio codec="aac"
                   bitRate="61000"
                   sampleRate="44100"
                   channels="1" />
        </EncoderProfile>
-->

    <!--  If your sensor driver don't support 480p stream, Please turn off this element -->

<!--
        <EncoderProfile quality="480p" fileFormat="mp4" duration="30">
            <Video codec="h264"
                   bitRate="3000000"
                   width="800"
                   height="600"
                   frameRate="30" />

            <Audio codec="aac"
                   bitRate="61000"
                   sampleRate="44100"
                   channels="1" />
        </EncoderProfile>
-->

        <!--  If your sensor driver don't support 720p stream, Please turn off this element -->
        <EncoderProfile quality="720p" fileFormat="mp4" duration="30">
            <Video codec="h264"
                   bitRate="6000000"
                   width="1280"
                   height="720"
                   frameRate="30" />

            <Audio codec="aac"
                   bitRate="61000"
                   sampleRate="44100"
                   channels="1" />
        </EncoderProfile>
        <!--  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="6000000"
                   width="1920"
                   height="1080"
                   frameRate="30" />

            <Audio codec="aac"
                   bitRate="61000"
                   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="6000000"
                   width="3840"
                   height="2160"
                   frameRate="30" />
 
            <Audio codec="aac"
                   bitRate="61000"
                   sampleRate="44100"
                   channels="1" />
    </EncoderProfile>

    
          <EncoderProfile quality="timelapseqcif" fileFormat="mp4" duration="30">
            <Video codec="h264"
                   bitRate="192000"
                   width="176"
                   height="144"
                   frameRate="30" />

            <Audio codec="aac"
                   bitRate="61000"
                   sampleRate="44100"
                   channels="1" />
        </EncoderProfile>

        <EncoderProfile quality="timelapseqvga" fileFormat="mp4" duration="30">
            <Video codec="h264"
                   bitRate="128000"
                   width="320"
                   height="240"
                   frameRate="30" />
            <Audio codec="amrnb"
                   bitRate="12200"
                   sampleRate="8000"
                   channels="1" />
        </EncoderProfile>

        <!--
        <EncoderProfile quality="timelapsecif" fileFormat="mp4" duration="30">
            <Video codec="h264"
                   bitRate="1200000"
                   width="352"
                   height="288"
                   frameRate="30" />

            <Audio codec="aac"
                   bitRate="61000"
                   sampleRate="44100"
                   channels="1" />
        </EncoderProfile>
        -->
        <!--  If your sensor driver don't support 720p and 480p stream, Please fill this element according as
              your sensor max resolution for preview(Not Capture resolution)  -->
        <EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="30">
            <Video codec="h264"
                bitRate="1200000"
                   width="640"
                   height="480"
                   frameRate="30" />

            <Audio codec="aac"
                   bitRate="61000"
                   sampleRate="44100"
                   channels="1" />
        </EncoderProfile>

        <!--  If your sensor driver don't support 480p stream, Please turn on this element  -->

<!--
         <EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="30">
            <Video codec="h264"
                   bitRate="1200000"
                   width="720"
                   height="480"
                   frameRate="30" />

            <Audio codec="aac"
                   bitRate="61000"
                   sampleRate="44100"
                   channels="1" />
        </EncoderProfile>
-->

<!--  If your sensor driver don't support 720p and 480p stream, Please fill this element according as
              your sensor max resolution for preview(Not Capture resolution)  -->
<!--
         <EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="30">
            <Video codec="h264"
                   bitRate="1200000"
                   width="800"
                   height="600"
                   frameRate="30" />

            <Audio codec="aac"
                   bitRate="61000"
                   sampleRate="44100"
                   channels="1" />
        </EncoderProfile>
-->

        <!--  If your sensor driver don't support 720p stream, Please turn off this element -->

<!--
        <EncoderProfile quality="timelapse720p" fileFormat="mp4" duration="30">
            <Video codec="h264"
                   bitRate="3000000"
                   width="1280"
                   height="720"
                   frameRate="8" />

            <Audio codec="aac"
                   bitRate="61000"
                   sampleRate="44100"
                   channels="1" />
        </EncoderProfile>
-->
<!--  If your sensor driver don't support 108p stream, Please turn off this element -->

<!--
        <EncoderProfile quality="timelapse1080p" fileFormat="mp4" duration="30">
            <Video codec="h264"
                   bitRate="3000000"
                   width="1920"
                   height="1080"
                   frameRate="30" />

            <Audio codec="aac"
                   bitRate="61000"
                   sampleRate="44100"
                   channels="1" />
        </EncoderProfile>
-->
        <ImageEncoding quality="90" />
        <ImageEncoding quality="80" />
        <ImageEncoding quality="70" />
        <ImageDecoding memCap="20000000" />

    </CamcorderProfiles>


    <EncoderOutputFileFormat name="3gp" />
    <EncoderOutputFileFormat name="mp4" />

    <!--
         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="6000000"
        minFrameWidth="176" maxFrameWidth="3840"
        minFrameHeight="144" maxFrameHeight="2160"
        minFrameRate="1" maxFrameRate="30" />
    <VideoEncoderCap name="h264" enabled="true"
        minBitRate="64000" maxBitRate="3000000"
        minFrameWidth="176" maxFrameWidth="1920"
        minFrameHeight="144" maxFrameHeight="1080"
        minFrameRate="1" maxFrameRate="30" />

    <VideoEncoderCap name="h263" enabled="true"
        minBitRate="64000" maxBitRate="1000000"
        minFrameWidth="176" maxFrameWidth="800"
        minFrameHeight="144" maxFrameHeight="480"
        minFrameRate="1" maxFrameRate="24" />

    <VideoEncoderCap name="m4v" enabled="true"
        minBitRate="64000" maxBitRate="2000000"
        minFrameWidth="176" maxFrameWidth="800"
        minFrameHeight="144" maxFrameHeight="480"
        minFrameRate="1" maxFrameRate="24" />

    <AudioEncoderCap name="aac" enabled="true"
        minBitRate="8192" maxBitRate="96000"
        minSampleRate="8000" maxSampleRate="44100"
        minChannels="1" maxChannels="1" />

    <AudioEncoderCap name="amrwb" enabled="true"
        minBitRate="6600" maxBitRate="23050"
        minSampleRate="16000" maxSampleRate="16000"
        minChannels="1" maxChannels="1" />

    <AudioEncoderCap name="amrnb" enabled="true"
        minBitRate="5525" maxBitRate="12200"
        minSampleRate="8000" maxSampleRate="8000"
        minChannels="1" maxChannels="1" />

    <!--
        FIXME:
        We do not check decoder capabilities at present
        At present, we only check whether windows media is visible
        for TEST applications. For other applications, we do
        not perform any checks at all.
    -->
    <VideoDecoderCap name="wmv" enabled="false"/>
    <AudioDecoderCap name="wma" enabled="false"/>
    <!--
    <VideoEditorCap  maxInputFrameWidth="1920"
        maxInputFrameHeight="1080" maxOutputFrameWidth="1920"
        maxOutputFrameHeight="1080" maxPrefetchYUVFrames="1"/>
    -->
    <!--
        The VideoEditor Export codec profile and level values
        correspond to the values in OMX_Video.h.
        E.g. for h264, profile value 1 means OMX_VIDEO_AVCProfileBaseline
        and  level 4096 means OMX_VIDEO_AVCLevel41.
        Please note that the values are in decimal.
        These values are for video encoder.
    -->
    <!--
      Codec = h.264, Hp-High profile, level 4.1
    -->
    <!--<ExportVideoProfile name="h264" profile= "4" level="4096"/>-->
    <!--
      Codec = h.263, Baseline profile, level 0
    -->
    <!--<ExportVideoProfile name="h263" profile= "1" level="1"/>-->
    <!--
      Codec = mpeg4, Simple profile, level 3
    -->
    <!--<ExportVideoProfile name="m4v" profile= "1" level="16"/>-->
</MediaSettings>
 

这篇关于20240607在Toybrick的TB-RK3588开发板的Android12下适配IMX415摄像头和ov50c40的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1041853

相关文章

开发板NFS挂载文件目录

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

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

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

用了虚拟机后,本机摄像头打不开了(联想电脑thinkpad)

虚拟机有摄像头,我断开了连接,现在本机的摄像头打开就是一个锁 我先把虚拟机的摄像头关了 然后把本机的vm usb关闭了 Win+R),输入services.msc,找到VMware USB Arbitration Service,确保其状态为“关闭 然后打开桌面助手 开启 参考: 联想知识库

摄像头模组介绍和技术指标

1 手机摄像头概述 1.1 手机摄像头概述  手机的数码相机功能指的是手机是否可以通过内置或是外接的数码相机进行拍摄静态图片或短片拍摄,作为手机的一项新的附加功能,手机的数码相机功能得到了迅速的发展。 手机摄像头分为内置与外置,内置摄像头是指摄像头在手机内部,更方便。外置手机通过数据线或者手机下部接口与数码相机相连,来完成数码相机的一切拍摄功能。 外置数码相机的优点在于可以减轻手机的重

鸿蒙开发5.0【Picker的受限权限适配方案】

Picker由系统独立进程实现,应用可以通过拉起Picker组件,用户在Picker上选择对应的资源(如图片、文档等),应用可以获取Picker返回的结果。 类型受限权限使用的picker音频ohos.permission.READ_AUDIO,ohos.permission.WRITE_AUDIOAudioViewPicker文件ohos.permission.READ_DOCUMENT,oh

安卓开发板_联发科MTK开发评估套件串口调试

串口调试 如果正在进行lk(little kernel ) 或内核开发,USB 串口适配器( USB 转串口 TTL 适配器的简称)对于检查系统启动日志非常有用,特别是在没有图形桌面显示的情况下。 1.选购适配器 常用的许多 USB 转串口的适配器,按芯片来分,有以下几种: CH340PL2303CP2104FT232 一般来说,采用 CH340 芯片的适配器,性能比较稳定,价

Nginx跨域运行案例:云台控制http请求,通过 http server 代理转发功能,实现跨域运行。(基于大华摄像头WEB无插件开发包)

文章目录 引言I 跨域运行案例开发资源测试/生产环境,Nginx代理转发,实现跨域运行本机开发运行 II nginx的location指令Nginx配置中, 获取自定义请求header头Nginx 配置中,获取URL参数 引言 背景:全景监控 需求:感知站点由于云台相关操作为 http 请求,http 请求受浏览器跨域限制,不能直接访问,因此需要进行 http 的代理,实

tb-nightly库安装报错

使用pip安装(默认清华镜像)tb-nightly库报如下错误: 网上查阅资料,尝试了以下方式: 使用conda安装失败!使用pip install tb-nightly --index-url https://pypi.org/simple安装失败最后,换成阿里镜像源成功!python -m pip install tb-nightly -i https://mirrors.aliyun.

android屏幕适配的问题

这里主要是介绍两种方法:恰巧这两种方法都是出自同一个大神的手笔,当然我这里不做详细的介绍了,大神的博客里面有详细的介绍 1  百分比 洋神的博客:http://blog.csdn.net/lmj623565791/article/details/46767825 github :https://github.com/hongyangAndroid/android-percent-suppor

yolov5 +gui界面+单目测距 实现对图片视频摄像头的测距

可实现对图片,视频,摄像头的检测  项目概述 本项目旨在实现一个集成了YOLOv5目标检测算法、图形用户界面(GUI)以及单目测距功能的系统。该系统能够对图片、视频或实时摄像头输入进行目标检测,并估算目标的距离。通过结合YOLOv5的强大检测能力和单目测距技术,系统能够在多种应用场景中提供高效、准确的目标检测和测距功能。 技术栈 YOLOv5:用于目标检测的深度学习模型。Open