视频流媒体播放器EasyPlayer-RTSP是怎样渲染画面的?

视频播放必然涉及到画面渲染,比如我们的视频流媒体播放器,不管是什么版本,都需要对画面进行渲染才能正常播放。

在博客EasyPlayer-RTMP-iOS使用YUV渲染画面的方法里,我们介绍了视频流媒体播放器渲染的方式,是解码后获取的视频帧,需要分解成Y、U、V的值,再送到OpenGLES去渲染。

Player.png

但我们也遇到了一个问题:EasyPlayer-RTSP-Android 使用硬解码得到的视频帧数据,渲染出来的画面是黑白的,如何解决?

分析问题:

我们在调出硬解码数据检查之后,发现硬解码得到的YUV数据的格式没有确定,导致JNIUtil转码数据出错,OpenGLES渲染出来的画面,都是黑白色。

解决问题:

1、硬解码,指定解码后的帧格式:
format.setInteger(MediaFormat.KEY_COLOR_FORMAT, COLOR_FormatYUV420Flexible);

2、解码得到的YUV需要经过JNIUtil.yuvConvert转换,再渲染,视频播放画面就会恢复正常。

573.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值