Over the past couple years this blog contains a variety of content that interests me. While not intended, a considerable amount of this blog revolves around using FFmpeg. I feel drawn to this particular utility for a number of reasons I guess:
- it is primarily a command-line interface; offering a great deal of flexibility
- while powerful and popular, I find it lacks sufficient examples and documentation in demonstrating its use, a significant learning curve for the new user
- I have a history of interest in image processing and computer vision which aligns with, or compliments, these interests
- I have an interest in polishing and refining personal media content and this tool hits all the buttons to do so
I thought I'd touch on some of the areas of content, specifically to see what areas I've covered and plan areas that may be worth focusing on. I have a starting-point for a more comprehensive tutorial on FFmpeg that I am preparing for a future presentation, perhaps YouTube or a Meet-Up. Stay tuned.
Setup/Configuration/Installation
My daily drivers tend to be Linux-based workstations and laptops, so my setup/configuration instructions tend to follow:
Convert Images to Video
Nearly everyone on planet Earth now carries around a high-definition camera in their pocket. We snap hundreds, if not thousands, of photos over the course of the year. It's pretty common to want to take a series of images and transform it into a slide-show to amazing and impress your friends and family. Here are but a few resources to do just that.
- Making Slideshows w/ FFmpeg
- FFMpeg + Imagemagick Perspective Mapping
- Visualization of Sorting Algorithms
Clipping Time Segments from Video
First order video processing is trimming out uninteresting time segments. Take a raw video, clip out interesting bits and concatenate them together will set you on course for a better video presentation.
Concatenating Videos
Cropping Video
Whether its clipping out a noisy background or simply directing the viewers attention, often you want to crop out the point-of-interest from a wide-angle shot.
Padding/Extending Video
Sometimes, just the opposite is needed, taking a video of arbitrary size and making it bigger to accommodate an additional visual (e.g. overlay, video, graph,...)
Zooming In/Out of Video
A static shot can still draw the viewers attention by zooming in/out to draw the viewers focus to a narrower or broader aspect.
Applying Overlay to Video
Like frosting on a cake, adding overlays upon a video makes a good product even better (image, text or subvideo).
Fading In/Out of Video
We've all seen it, a scene transition from one location or another, typically demonstrated by fading out of the first scene (e.g. fade-to-black) and fading into the next (e.g fade-from-black).
Video Blending
Sometimes we wish the resultant video to be comprised of multiple semi-transparent sources, sometimes referred to as cross-fading. Dynamically applying a weighting factor from multiple sources can give you some pretty dramatic effects.
Video Scene Transitions
I've authored a series of posts which provide a variety of scene transitions, introducing a new cut scene by moving in the destination scene in some manner (e.g. wipes, curtain-call,...)
- FFmpeg Transitions -- Part 1
- FFmpeg Transitions -- Part 2
- FFmpeg Transitions -- Part 3
- FFmpeg Transitions -- Part 4
- Video Transition Effects w/FFmpeg
Video Blurring
Whether it be a license plate, a disruptive background, or subjects who rather not be in your video, there is often a need for applying a blur to a video or video areas.
Video Stablilization
Shaky hand? No tripod? This video filter can remove the side-effects of a shaky videographer.
Creating Cartoon from Video
Can you take a real video and convert it into something more cartoon-like? We spent some time doing just that.
Dynamic Filters
ZeroMq (e.g. 0mq, zmq) is integrated into FFmpeg and can be used to dynamically modify video filters on the fly.
FFmpeg + Makefiles
I particularly find that make and video processing make a good pairing, especially when the video processing utility is command-line based. These two utilities play very well together.