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


    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渲染画面的方法

  • 相关阅读:
    Maven基本操作命令
    Android studio安装与配置
    java数据结构----图
    java数据结构----堆
    java数据结构----哈希表
    java数据结构----树
    java数据结构----链表
    java数据结构----队列,优先级队列
    java数据结构----栈
    java数据结构----数组篇
  • 原文地址:https://www.cnblogs.com/TSINGSEE/p/14593381.html
Copyright © 2020-2023  润新知