Media3 ExoPlayer有声音无画面分析

1.问题发现

播放有声音无画面

2.问题分析

2.1 错误解析
  • 组件: amlogic.avc.decoder.awesome - 这是Amlogic平台上的H.264硬件解码器
  • 参数: OMX.google.android.index.storeMetaDataInBuffers(0x7f000002) - 试图设置元数据存储参数
  • 端口: Output:1 - 输出端口1
  • 错误码: BadPortIndex(0x8000101b) - 无效的端口索引

继续从其它方面分析

2.2 对比ijk

从日志中可以看到,错误信息ERROR: BadPortIndex(0x8000101b)

使用的解码器是OMX.amlogic.avc.decoder.awesome ,再来看下ijkplayer设置硬解时播放的情况

ini 复制代码
selected codec: OMX.amlogic.avc.decoder.awesome rank=800

也是使用的该解码器,出现了同样的有声音无画面的问题。设置ijkplayer使用软解

Java 复制代码
//对于ijkPlayer的设置,有如下两种视频格式,0为软解,1为硬解
ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "mediacodec", 0);

发现可以播放正常了!可能和这个解码器有关。

2.3 对比sys

系统播放器可以正常播放,但是看到了一些奇怪的日志

sh 复制代码
amffmpeg  mediaserver  I  [av_find_stream_info:5268] st 0, para: 1, codec_info_nb_frames: 1,
amffmpeg  mediaserver  I  [av_find_stream_info:5268] st 1, para: 1, codec_info_nb_frames: 3,
amplayer  mediaserver  I  [audio_type_convert]audio codec_id=0x15002 format=2

日志中出现的amffmpeg ,av_find_stream_info等信息明显来自FFmpeg,表明该Android系统播放器扩展FFmpeg的能力 。

3.问题处理

硬件解码器初始化成功,解码的时候有问题也没有通知上层,无法触发解码器回滚机制,扩展ffmpeg能力,并根据盒子型号配置优先使用ffmpeg软解

Java 复制代码
DefaultRenderersFactory renderersFactory = new DefaultRenderersFactory(this);
//根据条件设置扩展解码能力优先
if(isNotSupportHardwareDecoding()){
	renderersFactory.setExtensionRendererMode(DefaultRenderersFactory.EXTENSION_RENDERER_MODE_PREFER);
}
player = new ExoPlayer.Builder(this,renderersFactory)
         .build();
相关推荐
mortimer13 天前
Python + FFmpeg 视频自动化处理指南:从硬件加速到精确剪辑
python·ffmpeg·音视频开发
否子戈14 天前
做中国人自己的视频编辑UI框架,WebCut正式开源
前端框架·音视频开发·视频编码
音视频牛哥15 天前
从低延迟到高可用:RTMP与 HTTP/HTTPS-FLV在App播放体系中的角色重构
人工智能·音视频·音视频开发·http-flv播放器·https-flv播放器·ws-flv播放器·wss-flv播放器
音视频牛哥20 天前
轻量级RTSP服务的工程化设计与应用:从移动端到边缘设备的实时媒体架构
人工智能·计算机视觉·音视频·音视频开发·rtsp播放器·安卓rtsp服务器·安卓实现ipc功能
快乐10121 天前
Media3 ExoPlayer无法播放不带.m3u8后缀hls媒资
音视频开发
_AaronWong22 天前
基于 Vue 3 的屏幕音频捕获实现:从原理到实践
前端·vue.js·音视频开发
快手技术24 天前
超越 VTM-RA!快手双向智能视频编码器 BRHVC 亮相 NeurIPS2025
音视频开发
快乐1011 个月前
Media3 ExoPlayer扩展切换声道能力
音视频开发
yangguang1 个月前
音视频开发全景图:播放器是怎样炼成的
音视频开发
政采云技术1 个月前
音视频通用组件设计探索和应用
前端·音视频开发