当前位置: 首页 > news >正文

查看安卓设备的音视频解码器信息

方法一:

在APP中调用接口

import android.media.MediaCodecInfo;
import android.media.MediaCodecList;public void showDecoder() {MediaCodecList codecList = new MediaCodecList(MediaCodecList.ALL_CODECS);MediaCodecInfo[] codecInfos = codecList.getCodecInfos();for (MediaCodecInfo codecInfo : codecInfos) {if(!codecInfo.isEncoder()) {String[] types = codecInfo.getSupportedTypes();String name = codecInfo.getName();String logString = "codec name = " + name + ", supported types: " ;for(String type : types) {logString = logString + type + ", ";}Log.i("MediaCodec", logString);}}}

这里的MediaCodecInfo有一些非常实用的接口,除了上面用到的isEncoder()和getSupportedTypes(),还有isSoftwareOnly(),isVendor(),isHardwareAccelerated()等。

我在设备中打印出的日志如下,其中,OMX开头的就是硬解

10-10 14:01:57.596  8821  8821 I MediaCodec  : codec name = c2.qti.alac.sw.decoder, supported types: audio/alac,
10-10 14:01:57.596  8821  8821 I MediaCodec  : codec name = c2.qti.ape.sw.decoder, supported types: audio/x-ape,
10-10 14:01:57.596  8821  8821 I MediaCodec  : codec name = c2.qti.dsd.sw.decoder, supported types: audio/dsd,
10-10 14:01:57.596  8821  8821 I MediaCodec  : codec name = c2.qti.amrwbplus.hw.decoder, supported types: audio/amr-wb-plus,
10-10 14:01:57.596  8821  8821 I MediaCodec  : codec name = c2.qti.amrwb+.hw.decoder, supported types: audio/amr-wb+,
10-10 14:01:57.596  8821  8821 I MediaCodec  : codec name = c2.qti.wma.hw.decoder, supported types: audio/x-ms-wma,
10-10 14:01:57.597  8821  8821 I MediaCodec  : codec name = c2.qti.alac.hw.decoder, supported types: audio/alac,
10-10 14:01:57.597  8821  8821 I MediaCodec  : codec name = c2.qti.ape.hw.decoder, supported types: audio/x-ape,
10-10 14:01:57.597  8821  8821 I MediaCodec  : codec name = c2.android.aac.decoder, supported types: audio/mp4a-latm,
10-10 14:01:57.597  8821  8821 I MediaCodec  : codec name = OMX.google.aac.decoder, supported types: audio/mp4a-latm,
10-10 14:01:57.597  8821  8821 I MediaCodec  : codec name = c2.android.amrnb.decoder, supported types: audio/3gpp,
10-10 14:01:57.597  8821  8821 I MediaCodec  : codec name = OMX.google.amrnb.decoder, supported types: audio/3gpp,
10-10 14:01:57.597  8821  8821 I MediaCodec  : codec name = c2.android.amrwb.decoder, supported types: audio/amr-wb,
10-10 14:01:57.597  8821  8821 I MediaCodec  : codec name = OMX.google.amrwb.decoder, supported types: audio/amr-wb,
10-10 14:01:57.598  8821  8821 I MediaCodec  : codec name = c2.android.flac.decoder, supported types: audio/flac,
10-10 14:01:57.598  8821  8821 I MediaCodec  : codec name = OMX.google.flac.decoder, supported types: audio/flac,
10-10 14:01:57.598  8821  8821 I MediaCodec  : codec name = c2.android.g711.alaw.decoder, supported types: audio/g711-alaw,
10-10 14:01:57.598  8821  8821 I MediaCodec  : codec name = OMX.google.g711.alaw.decoder, supported types: audio/g711-alaw,
10-10 14:01:57.598  8821  8821 I MediaCodec  : codec name = c2.android.g711.mlaw.decoder, supported types: audio/g711-mlaw,
10-10 14:01:57.598  8821  8821 I MediaCodec  : codec name = OMX.google.g711.mlaw.decoder, supported types: audio/g711-mlaw,
10-10 14:01:57.598  8821  8821 I MediaCodec  : codec name = c2.android.mp3.decoder, supported types: audio/mpeg,
10-10 14:01:57.598  8821  8821 I MediaCodec  : codec name = OMX.google.mp3.decoder, supported types: audio/mpeg,
10-10 14:01:57.598  8821  8821 I MediaCodec  : codec name = c2.android.opus.decoder, supported types: audio/opus,
10-10 14:01:57.598  8821  8821 I MediaCodec  : codec name = OMX.google.opus.decoder, supported types: audio/opus,
10-10 14:01:57.598  8821  8821 I MediaCodec  : codec name = c2.android.raw.decoder, supported types: audio/raw,
10-10 14:01:57.598  8821  8821 I MediaCodec  : codec name = OMX.google.raw.decoder, supported types: audio/raw,
10-10 14:01:57.598  8821  8821 I MediaCodec  : codec name = c2.android.vorbis.decoder, supported types: audio/vorbis,
10-10 14:01:57.598  8821  8821 I MediaCodec  : codec name = OMX.google.vorbis.decoder, supported types: audio/vorbis,
10-10 14:01:57.598  8821  8821 I MediaCodec  : codec name = c2.qti.avc.decoder, supported types: video/avc,
10-10 14:01:57.598  8821  8821 I MediaCodec  : codec name = OMX.qcom.video.decoder.avc, supported types: video/avc,
10-10 14:01:57.599  8821  8821 I MediaCodec  : codec name = c2.qti.avc.decoder.low_latency, supported types: video/avc,
10-10 14:01:57.599  8821  8821 I MediaCodec  : codec name = OMX.qcom.video.decoder.avc.low_latency, supported types: video/avc,
10-10 14:01:57.599  8821  8821 I MediaCodec  : codec name = c2.qti.avc.decoder.secure, supported types: video/avc,
10-10 14:01:57.599  8821  8821 I MediaCodec  : codec name = OMX.qcom.video.decoder.avc.secure, supported types: video/avc,
10-10 14:01:57.599  8821  8821 I MediaCodec  : codec name = c2.qti.hevc.decoder, supported types: video/hevc,
10-10 14:01:57.599  8821  8821 I MediaCodec  : codec name = OMX.qcom.video.decoder.hevc, supported types: video/hevc,
10-10 14:01:57.599  8821  8821 I MediaCodec  : codec name = c2.qti.hevc.decoder.low_latency, supported types: video/hevc,
10-10 14:01:57.599  8821  8821 I MediaCodec  : codec name = OMX.qcom.video.decoder.hevc.low_latency, supported types: video/hevc,
10-10 14:01:57.600  8821  8821 I MediaCodec  : codec name = c2.qti.hevc.decoder.secure, supported types: video/hevc,
10-10 14:01:57.600  8821  8821 I MediaCodec  : codec name = OMX.qcom.video.decoder.hevc.secure, supported types: video/hevc,
10-10 14:01:57.600  8821  8821 I MediaCodec  : codec name = c2.qti.vp9.decoder, supported types: video/x-vnd.on2.vp9,
10-10 14:01:57.600  8821  8821 I MediaCodec  : codec name = OMX.qcom.video.decoder.vp9, supported types: video/x-vnd.on2.vp9,
10-10 14:01:57.600  8821  8821 I MediaCodec  : codec name = c2.qti.vp9.decoder.low_latency, supported types: video/x-vnd.on2.vp9,
10-10 14:01:57.600  8821  8821 I MediaCodec  : codec name = OMX.qcom.video.decoder.vp9.low_latency, supported types: video/x-vnd.on2.vp9,
10-10 14:01:57.600  8821  8821 I MediaCodec  : codec name = c2.qti.vp9.decoder.secure, supported types: video/x-vnd.on2.vp9,
10-10 14:01:57.600  8821  8821 I MediaCodec  : codec name = OMX.qcom.video.decoder.vp9.secure, supported types: video/x-vnd.on2.vp9,
10-10 14:01:57.600  8821  8821 I MediaCodec  : codec name = c2.qti.av1.decoder, supported types: video/av01,
10-10 14:01:57.600  8821  8821 I MediaCodec  : codec name = c2.qti.av1.decoder.low_latency, supported types: video/av01,
10-10 14:01:57.600  8821  8821 I MediaCodec  : codec name = c2.qti.av1.decoder.secure, supported types: video/av01,
10-10 14:01:57.601  8821  8821 I MediaCodec  : codec name = c2.qti.flac.sw.decoder, supported types: audio/flac,
10-10 14:01:57.601  8821  8821 I MediaCodec  : codec name = c2.qti.aac.hw.decoder, supported types: audio/mp4a-latm,
10-10 14:01:57.601  8821  8821 I MediaCodec  : codec name = c2.android.av1-dav1d.decoder, supported types: video/av01,
10-10 14:01:57.601  8821  8821 I MediaCodec  : codec name = c2.android.avc.decoder, supported types: video/avc,
10-10 14:01:57.601  8821  8821 I MediaCodec  : codec name = OMX.google.h264.decoder, supported types: video/avc,
10-10 14:01:57.601  8821  8821 I MediaCodec  : codec name = c2.android.h263.decoder, supported types: video/3gpp,
10-10 14:01:57.601  8821  8821 I MediaCodec  : codec name = OMX.google.h263.decoder, supported types: video/3gpp,
10-10 14:01:57.601  8821  8821 I MediaCodec  : codec name = c2.android.hevc.decoder, supported types: video/hevc,
10-10 14:01:57.601  8821  8821 I MediaCodec  : codec name = OMX.google.hevc.decoder, supported types: video/hevc,
10-10 14:01:57.601  8821  8821 I MediaCodec  : codec name = c2.android.mpeg4.decoder, supported types: video/mp4v-es,
10-10 14:01:57.601  8821  8821 I MediaCodec  : codec name = OMX.google.mpeg4.decoder, supported types: video/mp4v-es,
10-10 14:01:57.601  8821  8821 I MediaCodec  : codec name = c2.android.vp8.decoder, supported types: video/x-vnd.on2.vp8,
10-10 14:01:57.601  8821  8821 I MediaCodec  : codec name = OMX.google.vp8.decoder, supported types: video/x-vnd.on2.vp8,
10-10 14:01:57.601  8821  8821 I MediaCodec  : codec name = c2.android.vp9.decoder, supported types: video/x-vnd.on2.vp9,
10-10 14:01:57.601  8821  8821 I MediaCodec  : codec name = OMX.google.vp9.decoder, supported types: video/x-vnd.on2.vp9,
10-10 14:01:57.601  8821  8821 I MediaCodec  : codec name = c2.android.av1.decoder, supported types: video/av01,

方法二:

有源码的话,直接查看/frameworks/av/media/libstagefright/omx/SoftOMXPlugin.cpp

其中

static const kComponent kComponents[] = {{ "OMX.google.aac.decoder", "aacdec", "audio_decoder.aac" },{ "OMX.google.aac.encoder", "aacenc", "audio_encoder.aac" },{ "OMX.google.amrnb.decoder", "amrdec", "audio_decoder.amrnb" },{ "OMX.google.amrnb.encoder", "amrnbenc", "audio_encoder.amrnb" },{ "OMX.google.amrwb.decoder", "amrdec", "audio_decoder.amrwb" },{ "OMX.google.amrwb.encoder", "amrwbenc", "audio_encoder.amrwb" },{ "OMX.google.h264.decoder", "avcdec", "video_decoder.avc" },{ "OMX.google.h264.encoder", "avcenc", "video_encoder.avc" },{ "OMX.google.hevc.decoder", "hevcdec", "video_decoder.hevc" },{ "OMX.google.g711.alaw.decoder", "g711dec", "audio_decoder.g711alaw" },{ "OMX.google.g711.mlaw.decoder", "g711dec", "audio_decoder.g711mlaw" },{ "OMX.google.mpeg2.decoder", "mpeg2dec", "video_decoder.mpeg2" },{ "OMX.google.h263.decoder", "mpeg4dec", "video_decoder.h263" },{ "OMX.google.h263.encoder", "mpeg4enc", "video_encoder.h263" },{ "OMX.google.mpeg4.decoder", "mpeg4dec", "video_decoder.mpeg4" },{ "OMX.google.mpeg4.encoder", "mpeg4enc", "video_encoder.mpeg4" },{ "OMX.google.mp3.decoder", "mp3dec", "audio_decoder.mp3" },{ "OMX.google.vorbis.decoder", "vorbisdec", "audio_decoder.vorbis" },{ "OMX.google.opus.decoder", "opusdec", "audio_decoder.opus" },{ "OMX.google.vp8.decoder", "vpxdec", "video_decoder.vp8" },{ "OMX.google.vp9.decoder", "vpxdec", "video_decoder.vp9" },{ "OMX.google.vp8.encoder", "vpxenc", "video_encoder.vp8" },{ "OMX.google.vp9.encoder", "vpxenc", "video_encoder.vp9" },{ "OMX.google.raw.decoder", "rawdec", "audio_decoder.raw" },{ "OMX.google.flac.decoder", "flacdec", "audio_decoder.flac" },{ "OMX.google.flac.encoder", "flacenc", "audio_encoder.flac" },{ "OMX.google.gsm.decoder", "gsmdec", "audio_decoder.gsm" },
};

http://www.dtcms.com/a/465274.html

相关文章:

  • 第三章 · 数据库管理与视频路径获取
  • 网站log文件示例网站备案到公司
  • 玩转ChatGPT:Kimi OK Computer 数据分析
  • iOS 26 App 性能测试|性能评测|iOS 26 性能对比:实战策略
  • 网站文章多久收录郑州seo服务技术
  • 随州网站建设学习不限流量网站空间
  • 突破机房围墙:openEuler设备的公网管理实战指南
  • 2025年渗透测试面试题总结-105(题目+回答)
  • 4.6 移动IP (答案见原书 P210)
  • Word之分栏出现问题分析与解决方案
  • Linux内核架构浅谈2- Linux内核与硬件交互的底层逻辑:硬件抽象层的作用
  • 三亚城乡建设局网站标识设计是什么
  • 网站建设流程渠道城市建设管理网站
  • 百胜软件“胜券在握AI开发平台”:以AI生态重构零售智能新范式
  • rtthread studio快速创建工程
  • MySQL事务隔离级别详解从读未提交到串行化的全面对比
  • 通用机械(1)
  • 使用yt-dlp来下载视频
  • 【深入浅出PyTorch】--上采样+下采样
  • 一个基于自适应图卷积神经微分方程(AGCNDE)的时空序列预测Matlab实现。这个模型结合了图卷积网络和神经微分方程,能够有效捕捉时空数据的动态演化规律
  • 笑话网站模板重庆品牌设计公司
  • (6)100天python从入门到拿捏《推导式》
  • 【数据结构】考研数据结构核心考点:AVL树插入操作深度解析——从理论到实践的旋转平衡实现
  • 遂宁网站建设哪家好网站诊断案例
  • Python访问数据库——使用SQLite
  • 一行配置解决claude code 2.0版本更新后 vscode 插件需要登录的问题
  • 问题:conda创建的虚拟环境打印中文在vscode中乱码
  • vscode 连接 wsl
  • 华为OD机试C卷 - 灰度图存储 - 矩阵 - (Java C++ JavaScript Python)
  • 资源采集网站如何做wap网站使用微信登陆