Video With Alpha

Hello,
does any one know how to put and play a video with Alpha on a texture of a plane?
Does Unity 5 offer some kind of suport or anyone know a work around?

Are there any video formats that supports alpha channel anyway? If you don’t need sound, then just make animated texture (there are scripts for those on asset store and it’s easy to write yourself too). If you need audio in the video, well - make animated texture as well and play audio separately using audio source.

Thanks can you be more explicit?
I have a .Mov video with RGB +Alpha and I want to play it on a plane?
How can I do that?

You need to demux this video into frames (as jpg or png files) and separate audio track (mp3 or ogg), then use some script that allow you to get animated textures.

Had no idea Mov supports alpha.

So you suggest to Make a frame by frame animation of a alph video? That will take a lot of unity engine?
So unity does not support video with alpha? can be any custom shaders, any idea?

No idea, sorry. Someone who has better understanding of movietextures would need to answer.

As a fallback you could have two videos, one with the video you want to play then have the alpha in a color channel of the other, for example just change the alpha to be red. Then in a shader just use the red as the Alpha.

Like this:

Shader "Custom/Example"
{
    Properties
    {
        _Color ("Color", Color) = (1,1,1,1)
        _MainTex ("Albedo (RGB)", 2D) = "white" {}
        _AlphaVideo ("Alpha Video(R)", 2D) = "white" {}
        _Glossiness ("Smoothness", Range(0,1)) = 0.5
        _Metallic ("Metallic", Range(0,1)) = 0.0
    }
    SubShader
    {
    Tags { "Queue"="Transparent" "RenderType"="Transparent" }
        LOD 200
       
        CGPROGRAM
        // Physically based Standard lighting model, and enable shadows on all light types
        #pragma surface surf Standard alpha

        // Use shader model 3.0 target, to get nicer looking lighting
        #pragma target 3.0

        sampler2D _MainTex;
        sampler2D _AlphaVideo;

        struct Input {
            float2 uv_MainTex;
            float2 uv_AlphaVideo;
        };

        half _Glossiness;
        half _Metallic;
        fixed4 _Color;

        void surf (Input IN, inout SurfaceOutputStandard o) {
            // Albedo comes from a texture tinted by color
            fixed4 c = tex2D (_MainTex, IN.uv_MainTex) * _Color;
            fixed4 _alpha = tex2D (_AlphaVideo, IN.uv_AlphaVideo);
            o.Albedo = c.rgb;
            // Metallic and smoothness come from slider variables
            o.Metallic = _Metallic;
            o.Smoothness = _Glossiness;
            o.Alpha = _alpha.r;
           
        }
        ENDCG
    }
    FallBack "Diffuse"
}