Android13.0 使用MediaCodec Surface+Camera2时限制编码帧率

在使用MediaCodec Surface+Camera2的方式进行硬编码时,由于没有对编码裸数据进行处理,通常编码的帧率会基于Camera的帧率,有时候会出现帧率超预期的情况。

可以通过以下方法进行编码帧率控制:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
         mMediaFormat.setFloat(MediaFormat.KEY_MAX_FPS_TO_ENCODER,         
         mCodecInfo.getFrameRate());
 }

Android平台使用MediaCodec压缩摄像头图像时设置码率无效或码率偏差很大的问题解决 Android从4.1系统开始,引进了MediaCodec API,支持对图像进行硬编码,但很多读者刚开始使用这套API遇到很多问题,特别是不知道如何正确设置编码器的参数。设置MediaCodec编码器涉及如下几个重要的参数:码率模式(固定码率、可变码率),码率,帧率、I帧间隔,H264的Profile和Level,下面是一段初始化参数的代码: public AvcEncode(int wi... 阅读详情

相关推荐

第 24 章:显示系统

是代表一整个逻辑显示器的;在它之下,Android 把窗口组织为容器树。每一个把具备相同特性、处于同一 Z 轴区间的窗口归为一组。文档说明三种类型,保障 Z 轴顺序正确性:BELOW_TASKS:仅可存放 BELOW_TASKS 类型 DisplayArea 以及位于任务下层的 WindowTokenABOVE_TASKS:仅可存放 ABOVE_TASKS 类型 DisplayArea 以及位于任务上层的 WindowToken。

dengfuma的专栏 347

Android固定帧率录屏

最近搞了一个固定的帧率录屏的软件,硬生生把我一个对这一块的小白搞成了对这一块有深刻理解的人。 上代码: 1.录屏类: public class MyShoter implements Runnable { private static final String TAG = MyShoter.class.getSimpleName(); private static final String VIDEO_MIME_TYPE = "video/avc"; private st

Motejia的博客 3379

android硬编解码MediaCodec

一 mediacodec简介 MediaCodec 类可以用来访问底层媒体编解码器,即编码器/解码器的组件。 它是 Android 底层多媒体支持架构的一部分(通常与 MediaExtractor,MediaSync,MediaMuxer,MediaCrypto,MediaDrm,Image,Surface 和 AudioTrack 一起使用)。 编解码器可以处理三类数据:压缩数据、原始音频数据、原始视频数据。 a Compressed Buffers 压缩缓冲区 输...

wangbuji的博客 5669

Android CameraService详解

本文系统解析了Android Camera架构,从五层架构(应用层到厂商实现层)到核心数据流,重点分析了拍照请求的生命周期和异步处理机制。关键模块如RequestThread、BufferQueue等的工作原理及典型问题(如相机打开失败、预览卡顿、拍照模糊)的排查方法被详细探讨,并提供了具体的日志分析和调试命令。文章构建了一个立体化的Camera系统知识体系,涵盖从理论到实践的完整链路。

DU_YULIN的博客 354

(六)音视频 MediaCodec使用遇到的问题

profile规定了视频编码采用了什么样的编码工具和编码算法,Level规定了某一档次的编码参数,tier规定了某一档次(profile)的某一水平(level)的最大比特率。都是可选配置,需要做兼容性检查,也就是出现android.media.MediaCodec$CodecException: Error 0xffffffc3 是MediaCodec的配置和运行的机器兼容性出了问题。返回用于填充的有效数据的输入buffer的索引,如果当前没有可用的buffer,则返回-1.

weixin_43911199的博客 2985

Android手机变身行车记录仪:Camera2+MediaRecorder完整方案

在移动开发中,利用Android手机实现行车记录仪功能,既是技术挑战也是高性价比的解决方案。其核心在于通过系统相机API与媒体编码器的配合,完成持续稳定的视频采集与存储。Camera2提供了精细的相机控制能力,而MediaRecorder则简化了音视频编码流程,二者结合可实现循环录像、碰撞锁定等关键逻辑。同时,前台服务与断电监听保障了后台长时间运行的稳定性。该方案已应用于车载场景,支持GPS轨迹记录与证据文件保护,为Android开发者提供了一个可落地的工程实践参考。

weixin_34343000的博客 419

Android-控制Camera2相关参数

控制Camera2相关参数:iso、曝光时间、闪光灯、前后摄像头切换、存储拍照图片以及YUV数据

AI Agent核心架构解析:从Tool、Skill到MCP协议的智能体构建实战

在人工智能领域,大语言模型(LLM)赋予了AI自主规划与决策的能力,推动了智能体(Agent)技术的演进。其核心原理在于构建一个具备感知、规划、行动与反思能力的自主系统。这一架构的技术价值在于将AI从被动应答升级为主动执行复杂任务的工作伙伴,显著提升了自动化水平与问题解决效率。应用场景广泛覆盖了市场分析、自动化办公、智能客服与垂直领域集成等。本文聚焦于实现这一能力的关键组件:基础工具(Tool)、组合技能(Skill)与标准化协议(MCP)。其中,Skill通过封装多个Tool形成可复用的高级能力,而MCP

chuannaoxuan4674的博客 316

手把手调试Altera FPGA远程升级:从ASMI扇区擦除到Remote Update IP配置的避坑实录

本文详细解析了Altera FPGA远程升级的全流程,重点介绍了Cyclone IV系列FPGA的ASMI扇区擦除和Remote Update IP配置的实战技巧。通过双镜像架构设计、ASMI IP核优化配置及Remote Update IP的隐藏参数设置,帮助开发者避免常见陷阱,提升远程升级的可靠性和效率。

weixin_30872499的博客 446

SpringBoot+Maven打包实战:把项目变成SDK供其他团队调用

本文详细介绍了如何将SpringBoot项目改造并打包成可被其他项目依赖的SDK。通过调整Maven配置,剥离SpringBoot父依赖与启动类,并定制打包插件,最终生成标准的JAR依赖库,实现从“可执行应用”到“组件化SDK”的优雅转变,便于团队间功能复用。

assembly8low的博客 825

突破Cloudflare 5秒盾:TLS指纹伪装+Playwright行为模拟,爬虫存活率从35%提至78%

TLS指纹精准识别:Cloudflare会解析客户端的TLS Client Hello包(如SSL版本、密码套件、扩展字段),Python的requests/urllib库的TLS指纹是“黑名单级”,请求一出即被拦截;行为特征检测:静态的浏览器伪装(如User-Agent)已失效,Cloudflare会监控页面加载后的行为(是否有鼠标移动、滚动、点击,行为是否机械);JS环境深度验证:通过WebGL、Canvas、字体渲染、Navigator属性生成浏览器指纹,无头浏览器的默认配置会被瞬间识别;

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 2359

OSCP-Algernon(SmarterMail)

从前面的结果中,确实有.NET远程处理在端口17001上运行。因此,此漏洞应适用于目标计算机。下载了漏洞并编辑了以下部分以匹配我的IP并使用本地端口21。端口9998引导到一个SmarterMail的登录页面。设置监听,获得一个反弹shell。端口80重定向到默认IIS页。已经是system权限了。google搜索漏洞。

墨痕诉清风的博客 488

使用 MATLAB/Simulink + Simscape Electrical + Simulink Design Optimization,构建一个基于SiC/GaN的Z源逆变器在储能系统中的软启

《手把手教你学Simulink:Z源逆变器在储能系统中的应用》摘要 本文详细介绍了使用MATLAB/Simulink构建Z源逆变器储能系统仿真模型的全过程。Z源逆变器凭借其独特的阻抗网络结构,解决了传统逆变器在直通保护和升压能力方面的痛点。文章通过6个关键步骤:主电路搭建、调制策略设计、软启动实现、仿真分析、效率对比和工程问题解决方案,完整展示了Z源逆变器从理论到仿真的实现路径。重点讲解了直通零矢量SPWM调制策略和渐进式升压比控制方法,验证了系统93.3%的效率和优异的抗扰性能。该模型为光伏储能、电动汽车

MHD0815的博客 122

DeepSeek邮件管理全攻略

DeepSeek邮件助手是一款高效的邮件处理工具,提供智能分类、撰写、回复和任务自动化功能。通过API调用或多智能体系统,它能自动分类邮件意图、生成专业回复并优化邮件内容。核心功能包括智能过滤、会议安排和任务提醒,支持与主流邮箱服务集成。提供精准提示词模板,帮助用户快速生成得体邮件,提升工作效率。适合个人和企业使用,通过简单配置即可实现邮件处理自动化。

Genio_Wang的博客 180

汽车IVI中控开发入门及进阶(三十八):手机投屏HiCar开发

为了兼容这部分手机,车机端在向手机端发送USB控制命令字的同时,需要启动mDNS Server,广播车机端IP地址和HiCar SDK侦听的Server Socket端口(IP地址和端口在HiCar SDK初始化USB driver时,告知车机),在检测到手机断开USB连接时关闭mDNS Server。厂商在集成HiCar SDK开发HMI应用时,不可避免会使用到智能座舱的敏感权限,例如位置权限、摄像头权限、麦克风权限等,SDK初始化时,厂商HMI应用需要设置必要的车机参数供SDK使用。

码农17年的博客 1074

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

上一篇: Android13.0 修改应用的屏幕密度
下一篇: Android13.0 4K输出部分APP显示异常的问题解决
乡野码圣
博客等级 码龄17年 62粉丝 42原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

乡野码圣

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值