Android 录屏时通常使用 MediaCodec 做编码器,MediaCodec 会创建一个 Surface 提供给 VirtualDisplay 填内容。通常,Android系统系统刷新速率是60fps,硬编码成的h264文件帧率通常是30fps。如果想调整这个帧率怎么办呢?

文章 https://stackoverflow.com/questions/31527134/controlling-frame-rate-of-virtualdisplay 进行了讨论,结论就是不能在MediaCodec获取到的buffer里减数据,因为拿到的已经是硬编码的h264数据了;得从源头着手,源头就是 virtualdisplay。但是 virtualdisplay没有控制帧率的地方,那么我们就不能用 MediaCodec 的 Surface了,得自己创建一个surface,从这个surface得到帧的原始数据,然后可以剔除一些帧,达到降帧的目的。

文章 https://bigflake.com/mediacodec/EncodeAndMuxTest.java.txt 就是自己创建一个 OpenGL Surface的办法,把这样一个Surface传给virtualdisplay应该就能控制帧率了。

录屏固定帧率 Android,Android 录屏时控制帧率相关推荐

  1. Android PC投屏简单尝试(录屏直播)2—硬解章(MediaCodec+RMTP)

    代码地址 :https://github.com/deepsadness/MediaProjectionDemo 想法来源 上一边文章的最后说使用录制的Api进行录屏直播.本来这边文章是预计在5月份完 ...

  2. android 录屏自动运行,Android实现录屏直播+远程控制(二)

    前言 前面Android实现录屏直播+远程控制(一)的文章说到Android5.0的录屏直播实现方式,今天来说说实现录屏直播的另外一种方案 1 启动一个后台服务实现录屏 1.服务的创建这边就不在赘述了 ...

  3. Android MediaProjection截屏录屏-适配AndroidQ以上版本

    工作中遇到截屏需求,首先想到的肯定是截图所在区域的控件,通过Canvas类将View绘制成一个Bitmap,之后是要显示还是保存都可以了.但是事实上还是有一些问题存在,已知有两个问题:①不能截取到状态 ...

  4. Android 音视频开发(六) -- Android Mediaprojection 截屏和录屏

    Android 音视频开发(一) – 使用AudioRecord 录制PCM(录音):AudioTrack播放音频 Android 音视频开发(二) – Camera1 实现预览.拍照功能 Andro ...

  5. Android studio录屏按钮不能用怎么办

    众所周知,Android studio具备录制手机屏幕的功能: 点击红框中的按钮即可弹出录屏对话框,设置之后便可录制手机屏幕,可我的studio显示却是这样的效果: 红框中按钮是灰色的,不可用. 设备 ...

  6. Android gif 录屏

    /*********************************************************************************** Android gif 录屏* ...

  7. Android实现录屏直播(二)需求才是硬道理之产品功能调研

    请尊重分享成果,转载请注明出处,本文来自Coder包子哥,原文链接:http://blog.csdn.net/zxccxzzxz/article/details/54254244 Android实现录 ...

  8. 【Android】录屏功能实现——MediaProjection

    目录 Android录屏功能实现-MediaProjection 概述 工具类 作用 过程 权限申请 连接服务 开始录制 停止录制 总结 不积跬步,无以至千里:不积小流,无以成江海.要沉下心来,诗和远 ...

  9. android 自定义录像机,android 手机录屏,最简单的 3 种方法

    原标题:android 手机录屏,最简单的 3 种方法 公众号文章不支持插入外链,下面提到的所有工具,都可点击 阅读原文前往我的个人网站 kejiweixun.com 下载. 安卓手机录制屏幕有很多方 ...

最新文章

  1. 程序员之间的门户之见有多深?
  2. es查询java代码如何排序_elasticsearch 查询聚合结果排序
  3. 100页精华PPT,帮你彻底看懂5G!
  4. 1.13 复制(拷贝)数组的4种方法:arraycopy()方法、clone() 方法、copyOf()和copyOfRan
  5. 扩展Pentaho Report Designer报表工具
  6. 用GNS3做PIX防火墙ICMP实验
  7. 通过Dapr实现一个简单的基于.net的微服务电商系统(十九)——分布式事务之Saga模式...
  8. maven 聚合工程 用spring boot 搭建 spring cloud 微服务 模块式开发项目
  9. 计算机辅助翻译专业院校,2017年北大计算机辅助翻译考研经验分享
  10. 2019阿里云618大促主会场全攻略
  11. 最邻近插值、双线性插值、三次卷积插值最通俗入门理论解析,论文材料
  12. Docker 常用命令,还有谁不会?
  13. mysql腾讯面试题_2020腾讯阿里精选面试题100+(包含答案)
  14. linux后台运行和关闭、查看后台任务(转)
  15. IntelliJ IDEA Maven配置 MAC系统
  16. Charlotte:不会被检测到的Shellcode启动器
  17. F4V/M3U8/比特率/LocalDNS/HttpDNS/traceroute
  18. Minecraft Mod 开发:0-前言
  19. BZOJ3161 : 孤舟蓑笠翁
  20. 历经四个月,谷歌联盟的PIN码问题终于解决了

热门文章

  1. zip压缩为什么zip没开启png压缩类型网页看的时候发现他吧png压缩了
  2. Jmeter请求授权接口的两种方法
  3. 什么是支付网关 支付网关全面解答
  4. python标准化_python中标准化
  5. 关于CrashRpt的研究
  6. windows下crashrpt使用方法小记
  7. 农业银行K宝不能下载证书
  8. HEX2DEC存储过程实现
  9. 福岛核事故和切尔诺贝利核事故的比较
  10. 应急响应-----Windows系统排查(学习笔记)