在播放我们自己的一些受 DASH+widevine 保护的直播流时,在 Askey Android 电视盒 (Android 9) 上,视频几秒钟后就会冻结,而音频仍在继续。我还看到视频块仍在获取中。到目前为止,我们使用的所有其他 Android 设备上都可以成功播放相同的流。在尝试了几个 ExoPlayer 版本(v2.7.3、v2.9.x)之后,我将播放代码集成到了 github 上的 ExoPlayer 演示播放器(v2.10.5)中。这里会出现同样的问题:视频冻结,音频继续。由于其他直播流在 Askey AndroidTV 盒子上运行没有问题,因此结论可能是该流的配置以某种方式触发了此问题。但是流配置对于工作/失败的流来说是相同的,并且播放器日志没有显示任何关于为什么会发生这种情况的线索。除了这个经常出现的错误之外,当玩家不活跃时也是如此:E libc : Access denied finding property "persist.vaudio.debug.search"W HwBinder:3034_1: type=1400 audit(0.0:285045): avc: denied { read } for name="u:object_r:default_prop:s0" dev="tmpfs" ino=13267 scontext=u:r:hal_audio_default:s0 tcontext=u:object_r:default_prop:s0 tclass=file permissive=0以下是视频冻结的播放日志。冻结发生在时间线更改的时间戳 4.34 之后。该流有 4 个视频轨道:400x224,0.40 Mbps600x360,0.80 Mbps704x396,1.10 Mbps1024x576,1.60 Mbps除了 0.40Mpbs 之外,所有轨道都会出现冻结问题。视频在这里继续,但非常断断续续。在这种情况下,日志显示帧被丢弃:D/EventLogger: state [773.80, -4.02, window=0, period=0, true, READY]D/EventLogger: timelineChanged [775.48, -4.45, window=0, period=0, periodCount=1, windowCount=1, reason=DYNAMIC period [?]D/EventLogger: window [29.99, true, true] ]D/EventLogger: droppedFrames [776.74, -3.19, window=0, period=0, 50]D/EventLogger: timelineChanged [777.49, -4.45, window=0, period=0, periodCount=1, windowCount=1, reason=DYNAMIC period [?] window [29.99, true, true] ]D/EventLogger: timelineChanged [779.49, -4.46, window=0, period=0, periodCount=1, windowCount=1, reason=DYNAMIC period [?]D/EventLogger: window [29.98, true, true] ]D/EventLogger: droppedFrames [779.90, -4.03, window=0, period=0, 50]D/EventLogger: timelineChanged [781.48, -4.47, window=0, period=0, periodCount=1, windowCount=1, reason=DYNAMICD/EventLogger: period [?] window [29.98, true, true] ]那么我应该如何继续调查这个问题呢?
1 回答
森栏
TA贡献1810条经验 获得超5个赞
事实证明视频编解码器“OMX.amlogic.avc.decoder.awesome.secure”是原因。在 ExoPlayer 中禁用它可以解决该问题。
添加回答
举报
0/150
提交
取消