实施Drm Dash媒体源

如何解决实施Drm Dash媒体源

在实施以下异常的Drm Dash媒体源时。 MediaCodecRenderer $ DecoderInitializationException:解码器初始化失败:OMX.Exynos.avc.dec.secure

下面列出了错误报告

ExoPlayerImplInternal:渲染器错误:index = 0,类型=视频,格式=格式(p0va0br256000,null,null,视频/avc,avc1.4d4015,256000,null,[426、240、24.0],[-1, -1]),rendererSupport = NO_UNSUPPORTED_DRM com.google.android.exoplayer2.ExoPlaybackException:com.google.android.exoplayer2.mediacodec。 MediaCodecRenderer $ DecoderInitializationException:解码器初始化失败:OMX.Exynos.avc.dec.secure ,Format(p0va0br256000,null ,空,视频/AVC、AVC1.4D4015、256000,空,[426、240、24.0],[-1,-1]) 在com.google.android.exoplayer2.BaseRenderer.createRendererException(BaseRenderer.java:359) 在com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.maybeInitCodec(MediaCodecRenderer.java:563) 在com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.onInputFormatChanged(MediaCodecRenderer.java:1254) 在com.google.android.exoplayer2.video.MediaCodecVideoRenderer.onInputFormatChanged(MediaCodecVideoRenderer.java:756) 在com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.readToFlagsOnlyBuffer(MediaCodecRenderer.java:814) 在com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.render(MediaCodecRenderer.java:712) 在com.google.android.exoplayer2.ExoPlayerImplInternal.doSomeWork(ExoPlayerImplInternal.java:599) 在com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:329) 在android.os.Handler.dispatchMessage(Handler.java:98) 在android.os.Looper.loop(Looper.java:154) 在android.os.HandlerThread.run(HandlerThread.java:61) 造成原因:com.google.android.exoplayer2.mediacodec.MediaCodecRenderer $ DecoderInitializationException:解码器初始化失败:OMX.Exynos.avc.dec.secure,Format(p0va0br256000,null,null,video / avc,avc1.4d4015、256000,null ,[426,240,24.0],[-1,-1]) 在com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.maybeInitCodecWithFallback(MediaCodecRenderer.java:867) 在com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.maybeInitCodec(MediaCodecRenderer.java:561) 在com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.onInputFormatChanged(MediaCodecRenderer.java:1254) 在com.google.android.exoplayer2.video.MediaCodecVideoRenderer.onInputFormatChanged(MediaCodecVideoRenderer.java:756) 在com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.readToFlagsOnlyBuffer(MediaCodecRenderer.java:814) 在com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.render(MediaCodecRenderer.java:712) 在com.google.android.exoplayer2.ExoPlayerImplInternal.doSomeWork(ExoPlayerImplInternal.java:599) 在com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:329) 在android.os.Handler.dispatchMessage(Handler.java:98) 在android.os.Looper.loop(Looper.java:154) 在android.os.HandlerThread.run(HandlerThread.java:61) 原因:android.media.MediaCodec $ CodecException:启动失败 在android.media.MediaCodec.native_start(本机方法) 在android.media.MediaCodec.start(MediaCodec.java:1989) 在com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.initCodec(MediaCodecRenderer.java:931) 在com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.maybeInitCodecWithFallback(MediaCodecRenderer.java:860) 在com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.maybeInitCodec(MediaCodecRenderer.java:561) 在com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.onInputFormatChanged(MediaCodecRenderer.java:1254) 在com.google.android.exoplayer2.video.MediaCodecVideoRenderer.onInputFormatChanged(MediaCodecVideoRenderer.java:756) 在com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.readToFlagsOnlyBuffer(MediaCodecRenderer.java:814) 在com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.render(MediaCodecRenderer.java:712) 在com.google.android.exoplayer2.ExoPlayerImplInternal.doSomeWork(ExoPlayerImplInternal.java:599) 在com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:329) 在android.os.Handler.dispatchMessage(Handler.java:98) 在android.os.Looper.loop(Looper.java:154) 在android.os.HandlerThread.run(HandlerThread.java:61) 2020-09-14 11:51:58.096 20803-20803 / com.rockvillegroup.vidly E / MainVideoPlayerFragment:onPlayerError:Error => 解码器初始化失败:OMX.Exynos.avc.dec.secure ,格式(p0va0br256000,null,null,视频/avc、avc1.4d4015、256000、null、[426、240、24.0]、[-1、-1]) 2020-09-14 11:51:58.097 20803-20803 / com.rockvillegroup.vidly D / MainVideoPlayerFragment:onPlayerStateChanged:STATE_IDLE

解决方法

我之前在尝试播放 hlsv6-widevine DRM 标题时遇到了同样的错误。 com.google.android.exoplayer2.mediacodec.MediaCodecRenderer$DecoderInitializationException:解码器初始化失败:OMX.Exynos.avc.dec.secure,格式(1,空,空,视频/avc,avc1.640028,1461621,空,[854,480,-1.0],[-1,-1])

我第一次播放DRM标题时发生的(可以正常播放); 然后切换到非DRM标题但忘记释放之前的exoplayer实例; 非DRM标题完成后切换回DRM标题时,发生错误。

我在每个游戏播放后及时释放 exoplayer 实例后错误消失了。

从与MediaCodec错误相关的exoplayer问题来看,我看到大部分错误是由于设备的媒体编解码器资源有限而没有及时释放exoplayer实例(资源)引起的。 或者玩家试图将解码的数据渲染到无效的表面(视图)。 https://github.com/google/ExoPlayer/issues

希望答案能有所帮助。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?