前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >H265视频流媒体播放器libEasyPlayer-RTSP如何通过数据渲染视频获得YUV数据?

H265视频流媒体播放器libEasyPlayer-RTSP如何通过数据渲染视频获得YUV数据?

原创
作者头像
TSINGSEE青犀视频
修改2021-03-19 14:12:36
4850
修改2021-03-19 14:12:36
举报
文章被收录于专栏:TSINGSEE青犀视频TSINGSEE青犀视频

TSINGSEE青犀视频开发的流媒体播放器libEasyPlayer-RTSP在手机端的的视频渲染是解码后获取的视频帧,需要分解成Y、U、V的值,再送到OpenGL去渲染,这里默认传的一个渲染视频的句柄为HWND句柄。

如果不通过传入HWND句柄能否拿到Y、U、V的渲染数据呢?因此此处我们尝试了不使用HWND句柄,而使用数据渲染,但是通过数据渲染并没有获取到想要的数据,导致界面视频并没有渲染成功,我们首先猜测是函数调用出了问题,因此做如下排查:

先查看代码调用EasyPlayer_OpenStream函数会进入该函数:

然后继续往下找,会使用EasyRTSPClient拉流,进行初始化和设置url与相关操作。并启动二个线程,一个进行解码,一个进行使用窗口句柄渲染视频。

如果想不渲染视频,直接把_lpDisplayThread这行代码给注释掉,但是这样函数回调的数据没有解码过后的数据格式。所以还是要接着往下检查,进入_lpDisplayThread线程函数中找渲染的部分。

_lpDisplayThread里面的函数代码比较多,我们只要找和渲染视频相关的代码。代码里面有回复的yuv等数据,转换的RGB32数据。

通过以下视频渲染方法,把代码注释掉,视频就不渲染,回调也是正常数据格式。

如果大家还想了解关于EasyPlayer数据渲染的内容,可以参考:EasyPlayer-RTMP-iOS使用YUV渲染画面的方法。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档