Video projector artifact

Hello,
I’m trying to emulate a video projector and managed to play video using Unity’s original projection shader. now, I get the following artifacts:

75913-screen-shot-2016-08-11-at-152404.png

All solutions I’ve found are using masks with setTexture command and I’m not sure how to combine it with unity’s projection shader that is using ‘Vertex & Fragment program’.

This shader

Shader "Projector/Multiply" 
{
 	Properties 
 	{
 	_ShadowTex ("Cookie", 2D) = "gray" {}
	_FalloffTex ("FallOff", 2D) = "white" {}
	}

Subshader 
	{
		Tags {"RenderType" = "Transparent" "Queue"="Transparent"}
		Blend SrcAlpha OneMinusSrcAlpha
		ColorMask RGB
		Pass { 
			ZWrite Off
			ColorMask RGB
			Blend DstColor Zero
			Offset -1, -1
			CGPROGRAM
			#pragma vertex vert 
			#pragma fragment frag
			#pragma multi_compile_fog
			#include "UnityCG.cginc" 

			struct v2f
			{
				float4 uvShadow : TEXCOORD0; 
				float4 uvFalloff : TEXCOORD1;
				UNITY_FOG_COORDS(2)
				float4 pos : SV_POSITION;
			};

			float4x4 _Projector;
			float4x4 _ProjectorClip;

			v2f vert (float4 vertex : POSITION)
			{
				v2f o; 
				o.pos = mul (UNITY_MATRIX_MVP, vertex);
				o.uvShadow = mul (_Projector, vertex);
				o.uvFalloff = mul (_ProjectorClip, vertex);
				UNITY_TRANSFER_FOG(o,o.pos);
				return o; 
			}
			sampler2D _ShadowTex; 
			sampler2D _FalloffTex;

			fixed4 frag (v2f i) : SV_Target
			{
				 
				fixed4 texS = tex2Dproj (_ShadowTex, UNITY_PROJ_COORD(i.uvShadow));
				texS.a = 1.0-texS.a;
				fixed4 texF = tex2Dproj (_FalloffTex, UNITY_PROJ_COORD(i.uvFalloff));
				fixed4 res = lerp(fixed4(1,1,1,0), texS, texF.a);
				UNITY_APPLY_FOG_COLOR(i.fogCoord, res, fixed4(1,1,1,1));
				return res * 2;
			}
			ENDCG 
		}
		 
	}
}

Combined with this:

Shader "MaskedTexture"
{
   Properties
   {
      _MainTex ("Base (RGB)", 2D) = "white" {}
      _Mask ("Culling Mask", 2D) = "white" {}
      _Cutoff ("Alpha cutoff", Range (0,1)) = 0.1
   }
   SubShader
   {
      Tags {"Queue"="Transparent"}
      Lighting Off
      ZWrite Off
      Blend SrcAlpha OneMinusSrcAlpha
      AlphaTest GEqual [_Cutoff]
      Pass
      {
         SetTexture [_Mask] {combine texture}
         SetTexture [_MainTex] {combine texture, previous}
      }
   }
}

Thanks!!!

Played around with other tutorials and made it!!

In addition to the shader, I created an Alpha-mask texture in the dimension of the video contains 3px gap from the edges.

Here is the shader:

Shader "Projector/Multiply" 
{
 	Properties 
 	{
 	_ShadowTex ("Cookie", 2D) = "gray" {}
	_FalloffTex ("FallOff", 2D) = "white" {}
	_AlphaTex ("Mask Clamp", 2D) = "" {}
	}

Subshader 
	{
		Tags {"RenderType" = "Transparent" "Queue"="Transparent"}
		Blend SrcAlpha OneMinusSrcAlpha
		ColorMask RGB
		Pass { 
			ZWrite Off
			ColorMask RGB
			Blend DstColor Zero
			Offset -1, -1
			CGPROGRAM
			#pragma vertex vert
			#pragma fragment frag 
			#pragma multi_compile_fog
			#include "UnityCG.cginc" 

			struct v2f 
			{
				float4 uvShadow : TEXCOORD0; 
				float4 uvFalloff : TEXCOORD1; 
				UNITY_FOG_COORDS(2)
				float4 pos : SV_POSITION;
			};

			float4x4 _Projector;
			float4x4 _ProjectorClip;

			v2f vert (float4 vertex : POSITION)
			{
				v2f o; 
				o.pos = mul (UNITY_MATRIX_MVP, vertex);
				o.uvShadow = mul (_Projector, vertex);
				o.uvFalloff = mul (_ProjectorClip, vertex);
				UNITY_TRANSFER_FOG(o,o.pos);
				return o; 
			}
			sampler2D _ShadowTex; 
			sampler2D _FalloffTex;
			sampler2D _AlphaTex;

			fixed4 frag (v2f i) : SV_Target
			{
				 
				fixed4 texS = tex2Dproj (_ShadowTex, UNITY_PROJ_COORD(i.uvShadow));
				fixed4 texS2 = tex2Dproj (_AlphaTex, UNITY_PROJ_COORD(i.uvShadow)); 
				texS.a = 1.0-texS.a;
				fixed4 texF = tex2Dproj (_FalloffTex, UNITY_PROJ_COORD(i.uvFalloff));
				fixed4 res = lerp(fixed4(1,1,1,0), texS, texF.a);
				UNITY_APPLY_FOG_COLOR(i.fogCoord, res, fixed4(1,1,1,1));

				if (texS2.a == 0) {
                              discard;
                         }
                         // Else return the main texture color
                         return res * 2;
			}
			ENDCG 
		}
		 
	}
}