彩色条带在Android中播放实时原始H.264流

时间:2017-01-04 03:44:54

标签: android h.264 mediacodec surface textureview

我开发了一个实时原始H.264流接收器兼播放器。我使用Android的MediaCodec API实现了它。视频渲染到从TextureView获得的Surface。

该程序可以成功接收和播放视频,但是,我观察到色彩渐变区域中视频播放的严重色带。

更多观察结果:

  1. 目标Android设备是在Android-x86-6.0上运行的PC。
  2. Android-x86附带的默认视频播放器,"视频 播放器",当我用它播放视频文件(本地播放)时也会出现此问题。
  3. 第三方视频播放器,如Kodi& VLC for Android,没有 当我进行本地播放时会出现此问题。
  4. 我使用Miracast协议在手机上的应用上捕捉视频播放(与上述目标设备不同) 要在支持Miracast的电视上显示,我看不到这一点 色带问题。
  5. 我还尝试添加抖动来解决这个问题,但不知何故,它的代码似乎不起作用。在主活动的onCreate()回调函数中添加了以下代码。

    ...     
    decorView.getBackground().setDither(true);
    getWindow().setFormat(PixelFormat.RGBA_8888);
    ...
    

    渲染视频的TextureView也使用Fragment加载。

    我迷失了可能是什么问题。问题出现了,因为我使用了输出Surface渲染方法吗?是因为我使用Fragment加载TextureView?或者我的解码器实现有问题吗?还是别的什么?

    有人,请帮忙。提前谢谢。

0 个答案:

没有答案