[反馈] 手机版加载很慢 日志深度分析(本次日志:一直缓冲、很久才出画面;换HLS正常) … #5

Closed
opened 2026-10-16 20:34:56 +08:00 by yusheng · 3 comments
Owner

原始反馈记录

第 1 条 · 2026/10/16 20:34:56

手机版加载很慢
日志深度分析(本次日志:一直缓冲、很久才出画面;换HLS正常)

HLS正常,mkv(E‑AC3 5.1)异常 → 不是网络、不是Surface基础问题,根源落在 EAC3 5.1 + ffmpeg软解 + AudioTrack初始化时序

关键时间线(重点异常时序)

1. 11:52:00.967:视频硬解码器 c2.qti.avc.decoder 初始化完成 ✅
​
2. 11:52:00.969:音频ffmpeg软解码器 ffmpegLavc‑eac3 初始化完成 ✅
​
3. 11:52:00.988:字幕渲染器就绪 ✅
​
4. 11:52:20.516:间隔接近20秒!才执行 audioTrackInit ,AudioTrack真正创建完成,音频渲染器 rendererIndex=3 audio → true 

⚠️ 这里是重大延迟点:ffmpeg解码器早就init,但AudioTrack创建阻塞了20秒

5. 11:52:26.904:再过6秒, renderedFirstFrame 才出现,视频第一帧渲染出来,视频渲染器才就绪
​
6. 11:52:30.103:播放器状态终于切为 READY ,正式开始播放
​
7. 11:52:30.594:视频渲染器短暂变成 rendererReady=false ,立刻切回true,出现一次短暂回退BUFFERING,属于音视频时序不同步抖动

播放器逻辑:全部renderer都就绪才会进入READY状态;音频这边AudioTrack迟迟创建不完,整个播放器卡在BUFFERING,虽然视频解码器早就初始化好了,但播放器不会输出画面 。

为什么HLS正常,这个MKV不正常?

1. HLS的音频一般是AAC立体声,安卓原生MediaCodec硬解码,AudioTrack初始化极快,没有20s阻塞。
​
2. 当前MKV:audio/eac3 6声道5.1杜比音频,高通设备没有硬件E‑AC3解码器,强制落到ffmpeg‑lavc软解。
​
3. ffmpeg解码输出PCM‑16 5.1,在你的设备上AudioTrack.open(5.1声道配置)非常慢,阻塞20s。

播放器不是卡解码,是AudioSink/AudioTrack打开5.1多声道音频输出发生阻塞,把整个播放器拉死在BUFFERING,视频解码器已经准备好,但播放器等待音频renderer就绪,不会输出画面。

日志没有ERROR崩溃,全部D日志,属于性能/时序阻塞bug,不是崩溃异常。

第 2 条 · 2026/10/16 20:34:59

(图片或待补充反馈)

截图

来源:Entryway QQ 用户反馈。截图使用 QQ 原始外链,可能过期。

## 原始反馈记录 ### 第 1 条 · 2026/10/16 20:34:56 > 手机版加载很慢 > 日志深度分析(本次日志:一直缓冲、很久才出画面;换HLS正常) > > HLS正常,mkv(E‑AC3 5.1)异常 → 不是网络、不是Surface基础问题,根源落在 EAC3 5.1 + ffmpeg软解 + AudioTrack初始化时序 > > 关键时间线(重点异常时序) > > 1. 11:52:00.967:视频硬解码器 c2.qti.avc.decoder 初始化完成 ✅ > ​ > 2. 11:52:00.969:音频ffmpeg软解码器 ffmpegLavc‑eac3 初始化完成 ✅ > ​ > 3. 11:52:00.988:字幕渲染器就绪 ✅ > ​ > 4. 11:52:20.516:间隔接近20秒!才执行 audioTrackInit ,AudioTrack真正创建完成,音频渲染器 rendererIndex=3 audio → true  > > ⚠️ 这里是重大延迟点:ffmpeg解码器早就init,但AudioTrack创建阻塞了20秒 > > 5. 11:52:26.904:再过6秒, renderedFirstFrame 才出现,视频第一帧渲染出来,视频渲染器才就绪 > ​ > 6. 11:52:30.103:播放器状态终于切为 READY ,正式开始播放 > ​ > 7. 11:52:30.594:视频渲染器短暂变成 rendererReady=false ,立刻切回true,出现一次短暂回退BUFFERING,属于音视频时序不同步抖动 > > 播放器逻辑:全部renderer都就绪才会进入READY状态;音频这边AudioTrack迟迟创建不完,整个播放器卡在BUFFERING,虽然视频解码器早就初始化好了,但播放器不会输出画面 。 > > 为什么HLS正常,这个MKV不正常? > > 1. HLS的音频一般是AAC立体声,安卓原生MediaCodec硬解码,AudioTrack初始化极快,没有20s阻塞。 > ​ > 2. 当前MKV:audio/eac3 6声道5.1杜比音频,高通设备没有硬件E‑AC3解码器,强制落到ffmpeg‑lavc软解。 > ​ > 3. ffmpeg解码输出PCM‑16 5.1,在你的设备上AudioTrack.open(5.1声道配置)非常慢,阻塞20s。 > > 播放器不是卡解码,是AudioSink/AudioTrack打开5.1多声道音频输出发生阻塞,把整个播放器拉死在BUFFERING,视频解码器已经准备好,但播放器等待音频renderer就绪,不会输出画面。 > > 日志没有ERROR崩溃,全部D日志,属于性能/时序阻塞bug,不是崩溃异常。 ### 第 2 条 · 2026/10/16 20:34:59 > (图片或待补充反馈) ![截图](<https://multimedia.nt.qq.com.cn/download?appid=1407&fileid=EhTxyIsQ0aD1MXSAWs-b001BPIWeeBjyoA0g_wooyqOvo8a-lwMyBHByb2RQgL2jAVoQx5dhMWGDexCkVKPbDicUhXoC1RuCAQJuag&rkey=CAQSMCfFsTP0yuCWRl9pDfZRFUgUC33fP0nlezqy_Ut1h2LZtWOml77V86aTSNRX84M4rw>) 来源:Entryway QQ 用户反馈。截图使用 QQ 原始外链,可能过期。 <!-- entryway-case-04565fe9-f40c-428d-9130-9e9b1ffafcdf -->
Author
Owner

第 2 条 · 2026/10/16 20:34:59

(图片或待补充反馈)

截图

### 第 2 条 · 2026/10/16 20:34:59 > (图片或待补充反馈) ![截图](<https://multimedia.nt.qq.com.cn/download?appid=1407&fileid=EhTxyIsQ0aD1MXSAWs-b001BPIWeeBjyoA0g_wooyqOvo8a-lwMyBHByb2RQgL2jAVoQx5dhMWGDexCkVKPbDicUhXoC1RuCAQJuag&rkey=CAQSMCfFsTP0yuCWRl9pDfZRFUgUC33fP0nlezqy_Ut1h2LZtWOml77V86aTSNRX84M4rw>) <!-- entryway-event-ad2e5520654164e85375c6eac3eee59ab0b641f47c24c6707591e6b8848aea8c -->
yusheng added the 待确认 label 2026-10-17 00:48:24 +08:00
Author
Owner

状态:待确认(等待合并发版后的原场景复测)

相关代码已于 2026-10-17 整理为本地提交 7435ae594c5721dffbd09250c785a7f09e503909,分支 codex/issues-20261016。目前尚未推送、合并发版,现有 1.0.10-bgf4 不包含这批补丁;请等待后续整合测试包再验证。

本项按“部分处理、根因待确认”保留:

  • 修复手机Exo对强制立体声设置处理不完整的问题,补齐STEREO/直通/offload的优先级。
  • 另外修复手机Exo未明确选择直通时仍可能编码直出的输出路径隐患;TV同步补齐强制立体声优先级。这与后续EAC3无声反馈可能有关,但目前不能认定与本单同根。
  • 增加可导出的音频输出诊断:configure耗时、首个输入buffer到达时间、输入MIME/声道/PCM格式、输出策略和handleBuffer调用耗时。

重要边界:解码器初始化到AudioTrack事件的约20秒间隔,不能单独证明AudioTrack初始化函数内部阻塞了20秒;还需要原始日志区分数据/解码等待、输出初始化和其他路径。当前没有原设备/内核/完整版本及原始诊断包,不宣称原MKV慢起播已解决。

验证:新增4项EAC3/JOC输出路由测试通过,后续核心/手机/TV共1135项测试通过。

待确认:后续整合包用同一MKV先保留原设置复现并导出完整诊断ZIP,再仅改变一项设置(如关闭直通或开启强制立体声)对照;记录首次画面/声音时间,结束后恢复设置。原片源确认后再关闭。

**状态:待确认(等待合并发版后的原场景复测)** 相关代码已于 2026-10-17 整理为本地提交 `7435ae594c5721dffbd09250c785a7f09e503909`,分支 `codex/issues-20261016`。目前尚未推送、合并发版,现有 `1.0.10-bgf4` 不包含这批补丁;请等待后续整合测试包再验证。 本项按“部分处理、根因待确认”保留: - 修复手机Exo对强制立体声设置处理不完整的问题,补齐STEREO/直通/offload的优先级。 - 另外修复手机Exo未明确选择直通时仍可能编码直出的输出路径隐患;TV同步补齐强制立体声优先级。这与后续EAC3无声反馈可能有关,但目前不能认定与本单同根。 - 增加可导出的音频输出诊断:configure耗时、首个输入buffer到达时间、输入MIME/声道/PCM格式、输出策略和handleBuffer调用耗时。 重要边界:解码器初始化到AudioTrack事件的约20秒间隔,不能单独证明AudioTrack初始化函数内部阻塞了20秒;还需要原始日志区分数据/解码等待、输出初始化和其他路径。当前没有原设备/内核/完整版本及原始诊断包,不宣称原MKV慢起播已解决。 验证:新增4项EAC3/JOC输出路由测试通过,后续核心/手机/TV共1135项测试通过。 待确认:后续整合包用同一MKV先保留原设置复现并导出完整诊断ZIP,再仅改变一项设置(如关闭直通或开启强制立体声)对照;记录首次画面/声音时间,结束后恢复设置。原片源确认后再关闭。 <!-- entryway-fix-status-7435ae594c5721dffbd09250c785a7f09e503909 -->
Author
Owner

该工单已标记「待确认」且提交超过一周,相关改动已随新版本发布。为保持工单列表整洁,现统一关闭。

如在最新版本中仍存在该问题,欢迎在本单下回复,或新开工单并附上:版本号、设备机型与系统、具体操作步骤,必要时附日志或截图,我们会继续跟进。感谢反馈!

该工单已标记「待确认」且提交超过一周,相关改动已随新版本发布。为保持工单列表整洁,现统一关闭。 如在最新版本中仍存在该问题,欢迎在本单下回复,或新开工单并附上:版本号、设备机型与系统、具体操作步骤,必要时附日志或截图,我们会继续跟进。感谢反馈!
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: yusheng/Entryway_Feedback#5