zoukankan      html  css  js  c++  java
  • 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渲染画面的方法

  • 相关阅读:
    JAVA 分布式
    Spring Boot -01- 快速入门篇(图文教程)
    MyBatis -01- 初识 MyBatis + MyBatis 环境搭建
    Vue 框架-12-Vue 项目的详细开发流程
    Vue 框架-11-介绍src文件流程及根组件app+HBuilder 配置
    Vue 框架-10-搭建脚手架 CLI
    LeetCode
    LeetCode
    LeetCode
    LeetCode
  • 原文地址:https://www.cnblogs.com/TSINGSEE/p/14593381.html
Copyright © 2011-2022 走看看