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>
 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

STM32—按键控制LED(定时器)

目录 1 、 电路构成及原理图 2 、编写实现代码 main.c exit.c 3、代码讲解 4、烧录到开发板调试、验证代码 5、检验效果 此笔记基于朗峰 STM32F103 系列全集成开发板的记录。 1 、 电路构成及原理图 EXTI&#xff08;External interrupt/event controller&#xff…

机器视觉——物块分拣

项目进行到第四天&#xff0c;我们学到了很多&#xff0c;可以进行实操。 首先我们利用相机软件进行采图 然后导入代码里面 完整代码 dev_get_window (WindowHandle) list_image_files (采图, default, [], ImageFiles) for Index : 0 to |ImageFiles| - 1 by 1read_image (Im…

上BFT,是你的首选

上BFT&#xff0c;是你的首选 如果你想要找最智能的机器人&#xff0c;想要找品牌最全或者想要咨询专业的解决方案&#xff0c;一定不要错过BFT机器人采购站。BFT致力于为广大用户提供品质卓越、技术先进的机器人产品。 BFT里面机器人多种多样&#xff0c;不管您是想要工业机器…

取证工作: SysTools MailXaminer, 用强大功能辅助电子邮件调查工作的每一步

天津鸿萌科贸发展有限公司是 SysTools 系列软件的授权代理商。 SysTools MailXaminer 电子邮件取证软件将调查工作分为五个阶段&#xff1a;邮件加载、预览、搜索、分析及导出。软件对调查工作的每一阶段都提供了现代高级功能&#xff0c;以帮助数字取证调查员根据其具体要求对…

知乎知+广告推广开户充值的返点政策是怎样?

如何让您的品牌精准触达目标受众&#xff0c;实现高效传播与转化&#xff0c;成为了每一位市场人面临的挑战。为此&#xff0c;云衔科技作为业界领先的数字营销解决方案提供商&#xff0c;正式宣布全面支持知乎知广告开户及一站式代运营服务&#xff0c;旨在帮助各行业客户在知…

珠海鸿瑞毛利率持续下滑:核心产品销量大降,偿债能力偏弱

《港湾商业观察》黄懿 日前&#xff0c;珠海市鸿瑞信息技术股份有限公司&#xff08;下称“珠海鸿瑞”&#xff09;收到了北京证券交易所发出的第三轮审核问询函。 此前&#xff0c;2020年11月&#xff0c;珠海鸿瑞曾向深交所报送上市申请。IPO申请文件获受理后&#xff0c;珠…

用互斥锁解决缓存击穿

我先说一下正常的业务流程&#xff1a;需要查询店铺数据&#xff0c;我们会先从redis中查询&#xff0c;判断是否能命中&#xff0c;若命中说明redis中有需要的数据就直接返回&#xff1b;没有命中就需要去mysql数据库查询&#xff0c;在数据库中查到了就返回数据并把该数据存入…

pypi 发布自己的包

注册pypi个人用户 网址&#xff1a;https://pypi.org 目录结构dingtalk_utils 必须-pkgs- __init__.py .gitignore LICENSE 必须 README.md 必须 requirements.txt setup.py 必须安装依赖 pip install setuptools wheel安装上传工具 pip install twinesetup.py i…

Maxkb玩转大语言模型

Maxkb玩转大语言模型 随着国外大语言模型llama3的发布&#xff0c;搭建本地个人免费“人工智能”变得越来越简单&#xff0c;今天博主分享使用Max搭建本地的个人聊天式对话及个人本地知识域的搭建。 1.安装Maxkb开源应用 github docker快速安装 docker run -d --namemaxkb -p 8…

进入某个页面时将VUE中的某个Button按钮设置为选中状态

进入某个页面时将VUE中的某个Button按钮设置为选中状态 我想达到的效果如标题所说&#xff0c;目的是为了表示页面展示的内容是由于该按钮被选择的结果。 解决思路是使用VUE中的mounted()钩子函数&#xff0c;在该函数中调用按钮得到焦点方法、按钮被点击方法。具体代码如下&am…

Redis限流方案

限流简介 限流算法在分布式领域是一个经常被提起的话题&#xff0c;当系统的处理能力有限时&#xff0c;如何阻止计划外的请求继续对系统施压&#xff0c;是一个需要重视的问题。 除了控制流量&#xff0c;限流还有一个应用目的是用于控制用户行为&#xff0c;避免垃圾请求&a…

【echarts】如何制作,横坐标每个日期点如何对应一条竖线的图,以及 markline设置后不生效问题

图的样式如下&#xff1a; 在线演示 每一个日期&#xff0c;对应一条竖线展示。 echarts配置内容&#xff1a; 在线演示 option {xAxis: {type: category,data: [20240601, 20240602, 20240603, 20240604, 20240605, 20240606, 20240607] // X轴数据},yAxis: {type: valu…

Bond 网卡绑定技术学习

前言&#xff1a; 为了实现网卡的高可用性&#xff0c;需要学习一下 Bond技术 1. 概念 Bond&#xff08;也被称为链路聚合、端口绑定或接口绑定&#xff09;是一种网络技术&#xff0c;用于将多个物理网络接口&#xff08;如以太网接口&#xff09;组合成一个逻辑接口。这样做…

今日份动态规划学习

主要只搞了一个这道题&#xff0c;有点摸鱼了今天晚上&#xff0c;也是来小看一下这道题吧01背包完全背包 P1941 [NOIP2014 提高组] 飞扬的小鸟 题意&#xff1a; 这题是说&#xff0c;给我们一个游戏界面&#xff0c;界面的长度为n&#xff08;水平距离&#xff09;&#x…

E: Unable to locate package ros-kinetic-usb-cam

mkdir -p USB/src && cd USB/src catkin_init_workspace git clone https://github.com/bosch-ros-pkg/usb_cam.git cd .. catkin_make source devel/setup.bash echo "source ~/USB/devel/setup.bash" >> ~/.bashrc source ~/.bashrc 编译过程报错&…

Wireshark抓包日常运维实用过滤

0x0 Wireshark 介绍 Wireshark 是一款功能强大的网络分析工具&#xff0c;适用于网络专业人员。它提供了出色的过滤器&#xff0c;您可以轻松放大到您认为可能存在问题的位置。过滤器的主要好处是消除定位流量&#xff0c;并缩小要查找的数据类型。 0x1 根据源 IP 地址过滤主…

Golang | Leetcode Golang题解之第134题加油站

题目&#xff1a; 题解&#xff1a; func canCompleteCircuit(gas []int, cost []int) int {for i, n : 0, len(gas); i < n; {sumOfGas, sumOfCost, cnt : 0, 0, 0for cnt < n {j : (i cnt) % nsumOfGas gas[j]sumOfCost cost[j]if sumOfCost > sumOfGas {break}…

四川古力未来科技抖音小店开创电商新纪元,前景广阔值得期待!

在数字化浪潮汹涌的当下&#xff0c;电商行业正以前所未有的速度蓬勃发展。四川古力未来科技抖音小店&#xff0c;作为这一领域的佼佼者&#xff0c;凭借其独特的经营理念和创新的营销策略&#xff0c;正在开创电商行业的新纪元。本文将深入探讨四川古力未来科技抖音小店的前景…

25 - 销售分析III(高频 SQL 50 题基础版)

25 - 销售分析III -- where 是分组之前筛选数据 -- having 是分组之后筛选数据selectp.product_id,p.product_name fromSales s left join Product p on s.product_idp.product_id group byproduct_id havingmin(sale_date) >"2019-01-01" and max(sale_date)&…

京东商品采集以及应用场景||电商API接口

京东商品采集的步骤和应用场景可以归纳如下&#xff1a; 一、采集步骤 注册账号&#xff1a;首先&#xff0c;需要在京东开放平台注册一个开发者账号。创建应用&#xff1a;登录开放平台后&#xff0c;创建一个应用以获取API密钥和应用凭据。获取权限&#xff1a;根据所需的服…