Android音视频——OpenMAX (OMX)框架

这篇具有很好参考价值的文章主要介绍了Android音视频——OpenMAX (OMX)框架。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本文分为两个部分进行讲解
Codec 部分中的 AwesomePlayer 到 OMX 服务
前面介绍了NuPlayer最终解码都会到达OMX框架,也就是 OpenMAX框架,本文开始分析编解码部分中的AwesomePlayer到OMX服务过程,也就是开启OpenMAX准备相关内容。Android系统中用OpenMAX来做编解码,Android向上抽象了一 层OMXCodec,提供给上层播放器AwesomePlayer使用。同时有一个IOMX接口,在ACodec 中可以通过IOMX调用OpenMAX组件。播放器中音视频解码器mVideoSource、 mAudioSource 都是 OMXCodec 的实例。
OMXCodec::Create是解码器初始化的入口。OMXCodec通过IOMX依赖Binder机制获得 OMX服务,OMX服务才是OpenMAX在Android中的实现。

OpenMAX与StageFright框架层级的关系
StageFright框架通过OpenMAX与硬件层进行通信,图1是OpenMAX和StageFright的 层级关系图。
在图1中可以看到,StrageFright层共有两路到达OpenMAX框架° 一路是通过NuPlayer 到达ACodec类,然后直接调用OMX IL Core中的接口。另一路是通过StagefrightPlayer到 AwesomePlayer,再到达0MXCodec类,然后调用OMX组件接口进行数据传输。
在以前的AwesomePlayer中,音频和视频数据会到OMXCodec中寻找对应的解码器进行 解码,如图2所示:IOMX和OMX组件通过Binder通信,中间还涉及OMXClient。
OMX 中的OMXNodelnstance负责创建并维护不同的实例,这些实例是根据上面的需求创建的,以 Node作为唯…标识。这样播放器中的每一个OMXCodec在OMX服务器端都有了自己对应的 OMXNodelnstance实例。
OMXMaster维护底层软硬件解码库,根据OMXNodelnstance中想要 的解码器来创建解码实体组件。

Android音视频——OpenMAX (OMX)框架
OpenMAX和StageFright的层级关系图

Android音视频——OpenMAX (OMX)框架
AwesomePlayer 与 OMX 的关系文章来源地址https://www.toymoban.com/news/detail-408412.html

到了这里,关于Android音视频——OpenMAX (OMX)框架的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Android音视频-MediaCodec

    原文:https://mp.weixin.qq.com/s?__biz=MzU3NTA3MDU1OQ==mid=2247484865idx=1sn=174b8ca702466e83e72c7115d91b06eachksm=fd298df1ca5e04e7b2df9dc9f21e5cfe3e910204c905d8605f648ce6f6404432a83ae52a23a3scene=178cur_album_id=1638784435628064770#rd MediaCodec 支持处理三种数据类型,分别是压缩数据(compressed data)、原始音频数据(raw audio d

    2023年04月08日
    浏览(79)
  • Android音视频编码(2)

    Android本身提供了音视频编解码工具,很多时候是不需要第三方工具的,比如 ffmpeg , OpenCV 等,在android中引入第三库比较复杂,在Android音视频编码中介绍了如何引入第三方库libpng来进行进行图片处理,同时引入这些第三方库,是程序结构变得复杂。 本文介绍的音视频编解码利

    2024年01月17日
    浏览(49)
  • WebRTC | 音视频直播客户端框架

            端到端通信互动技术可分解为以下几个技术难点:客户端技术、服务器技术、全球设备网络适配技术和通信互动质量监控与展示技术。         音视频直播可分成两条技术路线:一条是以音视频会议为代表的实时互动直播;另一条是以娱乐直播为代表的流媒体

    2024年02月14日
    浏览(46)
  • web 前端实现音视频通话 - liveKit 框架

    go1.18以上 liveKit-server.exe liveKit官方文档链接 科学上网(github) 在liveKit 中有两个概念,分别是:room 房间 和 user 用户 房间很好理解,类似一个腾讯会议中的 一个会议 用户指的是 加入房间的所有人。 每个用户的权限是相同的 想要实现主持人功能,可以通过web服务器来对liveKi

    2024年04月14日
    浏览(47)
  • Sora:新一代实时音视频通信框架

             Sora 是一个开源的实时音视频通信框架,旨在提供高效、稳定、可扩展的音视频通信解决方案。 它基于 WebRTC技术 ,支持跨平台、跨浏览器的实时音视频通信,并且具备低延迟、高并发、易集成等特点。         --点击进入Sora(一定要科学哦,不会的私信)  目录

    2024年02月22日
    浏览(56)
  • Android之 集成音视频通话

    一,背景 1.1 最近接收一个即时通讯二开项目,即时通讯部分用的XMPP协议,音视频则是集成的国外的开源免费库jitsi-meet-sdk-2.4.0-4.aar,是基于WebRTC的开源框架。但客户想要微信那种页面的排版,后来经研究jitsi是不能修改UI的,UI部分是用混合框架ReactNative写的,这样难度就大了

    2024年02月12日
    浏览(60)
  • Android 音视频开发 - VideoView

    本篇文章主要介绍下Android 中的VideoView. VideoView是一个用于播放视频的视图组件,可以方便地在应用程序中播放本地或网络上的视频文件。 VideoView可以直接在布局文件中使用,也可以在代码中动态创建。 它封装了MediaPlayer和SurfaceView,提供了简单的接口来控制视频的播放和显示

    2024年04月08日
    浏览(93)
  • Android音视频之协议介绍

    本文对音视频的协议起源做详细介绍,学习之后可以加深对音视频知识的了解。 这里的音视频不仅针对Android平台,其他平台也通用。 一般是指以某种格式封装了音视频数据的文件 常见的音频格式:mp3、wma、avi、rm、rmvb、flv、mpg、mov、mkv等。 常见的视频格式:rmvb、rm、wmv、

    2023年04月19日
    浏览(54)
  • Android音视频: 引入FFmpeg

    本文你可以了解到 本文将介绍如何将上一篇文章编译出来的  FFmpeg so  库,引入到  Android  工程中,并验证  so  是否可以正常使用。 一、开启 Android 原生 C/C++ 支持 在过去,通常使用  makefile  的方式在项目中引入  C/C++  代码支持,随着  Android Studio  的普及, makefile  的

    2024年02月02日
    浏览(69)
  • OpenHarmony 标准系统 HDF 框架音视频驱动开发

    OpenHarmony 操作系统为了做到给千行百业提供全场景业务能力,达到设备快速互联、硬件互助、资源共享;统一 OS、一次开发多端弹性部署的目标。在此背景下 OpenHarmony 提出在传统的单设备系统能力基础上,基于同一套系统能力、适配多种终端形态的分布式理念,并且内核层、

    2023年04月22日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包