介绍

我们在使用Android的硬解进行解码时,如果是Android11以上则可以使用其特性低延迟,谷歌官方文档

以下是Android 11支持的低时延特性:

  1. ANGLE支持:Android 11引入了ANGLE(Almost Native Graphics Layer Engine)支持,它是一个开源的跨平台图形引擎,可以将OpenGL ES和Vulkan API转换为DirectX API。使用ANGLE可以提高图形渲染的性能和稳定性。

  2. 延迟减少API:Android 11中新增了延迟减少API,可以帮助应用在系统层面优化处理延迟,从而提升应用的实时性。其中包括了一个新的API,可以帮助应用在音频处理上实现更低的延迟。

  3. 零拷贝视频编解码:Android 11支持零拷贝视频编解码,可以将数据直接从内存中传输到硬件解码器中,从而降低处理延迟和功耗。

  4. 低延迟视频播放:Android 11中新增了低延迟视频播放特性,可以在硬件加速器中使用低延迟模式进行视频解码,从而降低视频播放的延迟和卡顿。

总的来说,Android 11支持的低时延特性主要涵盖了图形渲染、音频处理、视频编解码等方面,可以帮助应用在提升实时性和性能表现方面更上一层楼。

使用

Java层的使用

format.setInteger(MediaFormat.KEY_LOW_LATENCY, 1);

native层的使用

AMediaFormat_setInt32(ndkFormat, "low-latency", 1);

MediaCodec开启低延时和不开启底层的处理方式是不同的。具体来说,它们在以下方面有所不同:

解码方式:开启低延时模式时,MediaCodec会尽可能地利用底层硬件进行解码,从而提高解码速度和实时性。而不开启底层时,MediaCodec会使用软件方式进行解码,速度较慢,延迟较高。

缓冲区处理:开启低延时模式时,MediaCodec会尽可能减少缓冲区的大小,从而降低数据传输的延迟。而不开启底层时,MediaCodec会使用默认的缓冲区大小,数据传输的延迟较高。

参数设置:开启低延时模式时,MediaCodec会根据实际情况调整一些解码参数,如缓冲区大小、解码线程数等,以实现更低的延迟。而不开启底层时,MediaCodec会使用默认的参数设置,延迟较高。

线程管理:开启低延时模式时,MediaCodec会使用异步线程进行解码操作,从而避免了主线程的阻塞和延迟。而不开启底层时,MediaCodec会使用同步线程进行解码操作,主线程容易被阻塞,导致应用程序的卡顿和延迟。

综上所述,MediaCodec开启低延时和不开启底层的处理方式是不同的,前者可以尽可能地利用底层硬件加速和优化处理,从而实现更低的延迟和更高的实时性,而后者则使用软件方式进行解码,速度较慢,延迟较高。开发者可以根据具体需求和场景,选择合适的处理方式,以实现更加高效和实时的视频解码。

MediaCodec 低延时解码的更多相关文章

  1. EasyNVR无插件直播服务器软件览器低延时播放监控摄像头视频(EasyNVR播放FLV视频流)

    背景描述 EasyNVR的使用者应该都是清楚的了解到,EasyNVR一个强大的功能就是可以进行全平台的无插件直播.主要原因在于rtsp协议的视频流(默认是需要插件才可以播放的)经由EasyNVR处理可 ...

  2. RTSP Windows专用播放器EasyPlayer : 稳定、兼容、高效、超低延时

    EasyPlayer RTSP Windows专用播放器 EasyPlayer RTSP Windows 播放器是由EasyDarwin团队开发和维护的一个完善的RTSP流媒体播放器项目,视频编码支持 ...

  3. 浏览器低延时播放监控摄像头RTSP海康大华硬盘录像机NVR视频(EasyNVR播放FLV视频流)

    背景描述 EasyNVR的使用者应该都是清楚的知道,EasyNVR一个强大的功能就是可以进行全平台的无插件直播.主要原因在于rtsp协议的视频流(默认是需要插件才可以播放的)经由EasyNVR处理后可 ...

  4. 阿里云李刚:下一代低延时的直播CDN

    在上周落幕帷幕的多媒体领域技术盛会——LiveVideoStackCon音视频技术大会上,阿里云的高级技术专家李刚进行了<下一代低延时的直播CDN>技术分享.主讲人李刚,多年关注在CDN这 ...

  5. 详解低延时高音质:丢包、抖动与 last mile 优化那些事儿

    本篇是「详解低延时高音质系列」的第三篇技术分享.我们这次要将视角放大,从整个音频引擎链路的角度,来讲讲在时变的网络下,针对不同的应用场景,如何权衡音质和互动的实时性. 当我们在讨论实时互动场景下的低延 ...

  6. android MediaCodec 音频编解码的实现——转码

    原文地址:http://blog.csdn.net/tinsanmr/article/details/51049179 从今天开始 每周不定期更新博客,把这一周在工作与学习中遇到的问题做个总结.俗话说 ...

  7. 低延时的P2P HLS直播技术实践

    本文根据4月21日OSC源创会·武汉站的现场分享为蓝本,重新整理.以下是演讲内容: 近几年,随着直播.短视频等视频领域对带宽要求的提升以及CDN行业竞争的加剧,很多CDN公司开始往P2P-CDN方向发 ...

  8. [转帖]技术扫盲:新一代基于UDP的低延时网络传输层协议——QUIC详解

    技术扫盲:新一代基于UDP的低延时网络传输层协议——QUIC详解    http://www.52im.net/thread-1309-1-1.html   本文来自腾讯资深研发工程师罗成的技术分享, ...

  9. 测试x264编码器的低延时编码和非延时编码

    最近在学x264的编码,经过大量的测试,编码1080P的视频,编码10000帧数据. 在设置为低延时编码的时候: 编码线程0,一帧耗时:7.000000 ms.编码线程0,一帧耗时:8.000000 ...

  10. EasyNVR无插件摄像机直播之:摄像机网页低延时无插件直播实现

    背景需求 对于摄像机直播,客户反馈的最多就是实现web直播.摆脱插件,可以自定义集成等问题, 对于熟悉EasyNVR已经完美的解决了这些问题.然而对于web播放也存在一些问题,通常我们web播放RTM ...

随机推荐

  1. P9816 少项式复合幂 题解

    题目链接:少项式复合幂 注意到题目的模并不是很大,我们考虑两个核心的性质. \(f(f(x)) \bmod p=f(f(x) \bmod p) \bmod p\),证明直接代入 \(f(x)\) 进去 ...

  2. 尴尬:在Excel中为指定数据插入饼图失败

    本来是非常非常简单的一个需求,即便不会,随便百度下也都有说明. 可自己却在一次紧急工作中因此耽误了时间,需求是需要插入一个饼图但因操作错误一直无法正确显示饼图数据,非常尴尬,干脆记录下这一刻. 尴尬1 ...

  3. 《ASP.NET Core 微服务实战》-- 读书笔记(第5章)

    第 5 章 创建数据服务 选择一种数据存储 由于我坚持要尽可能的跨平台,所以我决定选用 Postgres,而不用 SQL Server 以照顾 Linux 或 Mac 电脑的读者 构建 Postgre ...

  4. Apache Hudi 设计与架构解读

    1. 简介 Apache Hudi(简称:Hudi)允许您在现有的hadoop兼容存储之上存储大量数据,同时提供两种原语,使得除了经典的批处理之外,还可以在数据湖上进行流处理. 这两种原语分别是: 1 ...

  5. MySQL 将执行结果保存到文件

    1.  使用mysql的tee命令记录对mysql的操作过程 (1)第一种情况是在连接数据库的时候使用tee >mysql  -u root  -p  --tee=C:/log.txt      ...

  6. NC24263 USACO 2018 Feb G]Directory Traversal

    题目链接 题目 题目描述 奶牛Bessie令人惊讶地精通计算机.她在牛棚的电脑里用一组文件夹储存了她所有珍贵的文件,比如: bessie/ folder1/ file1 folder2/ file2 ...

  7. hdparm 常用命令介绍

    hdparm命令介绍 通常情况下可以使用fdisk.df等命令查看硬盘的分区情况以及当前已使用空间大小.剩余空间大小等信息.但是如果要查看硬盘的硬件信息如 硬盘型号.序列号.已运行时间等信息该用什么工 ...

  8. Uniapp+Nodejs实现外卖App项目1-项目介绍

    项目介绍 本项目采用uniapp和nodejs(数据接口).mongodb等技术实现了一个类似美团外卖的简易APP.项目主要目的是为了快速上手,如何快速使用uniapp开发一个app项目,同时掌握一些 ...

  9. ubuntu16.04 ssh启用root连接

    安装好ubuntu16.04 server版默认是不允许客户端ssh工具连接root的. 启用方法如下: 1.设置root密码 dylan@ubuntu:~$ sudo passwd root [su ...

  10. win32 - WriteConsoleA 的使用

    #include <Windows.h> #include <stdio.h> #pragma warning(disable:4996) void PasswordCheck ...