I like OpenShot. It’s a free, easy to use video editor that over the years has enabled me to create some great little videos including some lovely credits and a rather cool ticker tape effect. I actually run two versions of OpenShot; the older Linux version 1.4.3 and the newer (currently 2.5.1) AppImage which adds the convenience of key frames in exchange for the loss of some effects and some usability.
I was asked if I could create a video with a page turn transition but OpenShot doesn’t support that natively. After a little thought and research I realised I needed two related things, an animation of a page corner and a simultaneous transition that wipes from one image to the other.
Firstly I created a simple page corner image. Then I created an OpenShot project (using the newer version) and animated the image in three stages. Firstly scaling from tiny and off the screen to full size to pull the triangle up across the corner, then distorting it to pull the top up to the corner of the page and finally pulling it across the page rotating it towards vertical as it went.
Having created this video I needed a matching transition. In OpenShot a transition is a greyscale image which adjusts the transparency of the first clip progressively, starting with the lightest part of the transition image. To do this I used ffmpeg to generate image files of each frame of the video and then loaded them into Gimp. The bright colours of my original image enabled me to use the colour select tools easily to select the correct parts of the image and colour each lower corner and cut out the remaining part. With a bit of arithmetic to calculate the level of grey for each layer and a reasonable amount of patience (and a bit of fine tuning) I created a multiple layer image which could be exported as a PNG file thus:
Clearly my page corner was a little garish, so I generated an updated file (with the same name) with a more neutral corner and generated a new video from my original project. Actually at this point I realised I could improve on my original animation slightly while keeping the same transition, so I tweaked the original project slightly for a better effect in the second part of the animation.
Now I was ready to create the resulting video. At this point I went back to the older version of OpenShot for convenience. Firstly I imported my greyscale image as a transition. Then I pulled in two images (although they could equally well be video) and my page turn animation into the project. Now it was a simple matter to add the transition between the two images. I turned the softness of the transition off to ensure a sharp distinction between the two images. The join itself is hidden by the corner animation. Then I added the corner animation in a track above my two images, positioning it so it matches the timing of the transition. I added the chroma key effect to this layer increasing the variance slightly to allow for the shading on the corner image.
The final result is shown above.