我正在使用Android的MediaCodec API来解码和播放实时和原始的H.264视频流。我的目标设备是PC,在Android-x86 6.0上运行。 PC运行在Intel®Celeron®处理器N2930 CPU上。
当我将解码器设置为曲面模式并将视频渲染为TextureView时,我遇到了一些色带问题。
当我设置解码器使用ByteBuffer模式,然后将解码的视频帧保存到文件,然后在另一台计算机上打开文件时,我发现视频帧没有色带问题。
耗尽了想法,然后我尝试实现自己的OpenGL ES视图来渲染视频。得到它的工作,但色带仍然存在。然后我使用GLES20.glReadPixels()从OpenGL ES视图渲染器保存解码的帧,当我在另一台计算机上打开这些帧时,我看到帧中的颜色条带。
更多观察: 1)我使用捆绑的视频播放器(视频播放器)和MX播放器播放一些视频文件。捆绑的视频播放器和MX播放器(在硬件解码模式下)都遇到了相同的色带问题。
2)在MX Player中以SW解码模式播放显示没有色带。
尝试在网上提供的几乎所有建议都无济于事。请帮忙。
提前谢谢。
答案 0 :(得分:0)
通过在ByteBuffer(软件)模式下使用MediaCodec来管理以解决问题。