Unity_利用Shader使YUV420p转为RGB,以此渲染出视频

 

由于项目需求,讨论如何做个播放器,能够实现流畅播放高码率高分辨率的视频。。。
    >>>因此决定从共享内存里入手,C++获取本地视频文件写到windows的共享内存

    >>>unity则从共享内存里读取YUV420p数据贴图到画面

本文只涉及到获取YUV420P数据后实现播放,至于这数据怎么来的以及相关C++的DLL不进行详细讨论,俺也不清楚

代码大致流程:初始化DLL,并开始从DLL获取数据,存进Queue,在FixedUpdate()取出Queue图像并贴图

Shader下载地址http://download.csdn.net/download/le_sam/9980147

相关Inspector如下:(把下载的Shander绑定到player)

 

 

public class Player : MonoBehaviour
{

        public static string SHARE_MEMORY_NAME = "user-defined";
        public static int SHARE_MEM_SIZE = "user-defined";
        private bool isRead = true;
        public Material mShareMaterial;
        private Texture2D texY, texU, texV;
        private Queue<byte[]> ListQueue = new Queue<byte[]>();
    private void Awake()
    {
        gameObject.GetCompo
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值