I made a special effect, similar as displayed in this video:
at time 2:55
It uses the video texture provided by QCAR and a special shader I have written. Here is the original from the video:
And here is my version:
Note that my version isn't as dynamic as the original as you can only change the size and shape of the hole but not move it around and it also doesn't have collision detection. It can be used as a starting point for more complex effects though.
This is how it works:
The UV coordinates of the mesh are modified so that the video texture is effectively "projected" straight onto the geometry. Then the geometry is deformed, "stretching" the video texture with it. For the UV coordinates, the vertex position in screen space from the un-deformed mesh is used. The vertex position and UV position use a different range (-1 to 1 and 0 to 1 respectively) so this has to be taken into account. Also the video texture is mirrored and flipped with reference to a standard Unity3d plane mesh and it's standard UV coordinates, so this has to be taken into account as well. Once the correct UV coordinates are calculated, the vertex can be displaced in the shader and the video texture will be stretched with it automatically.
The effect is included in my project here: