Using ffmpeg to a make TikTok video with a SoundCloud-style Ken Burns panning effect
Use case: you want to upload your OC music recording to TikTok but you only have audio and TikTok requires video. What to do? Well, you can find a high-resolution image and generate a video from it and your recorded audio file using ffmpeg. Here's how:
Demo: TikTok video made using ffmpeg
Here's the ffmpeg command used to create the above TikTok video:
ffmpeg -loop 1 -i tracks_4850x3591.jpg -i tracks.wav \
-c:a aac -b:a 128k -c:v libx264 \
-shortest -aspect 9:16 -s 1080x1920 \
-vf crop=1080:1920:'t*(iw-ow)/165':'(ih-oh)/2' \
-pix_fmt yuv420p out.mp4
Explanation:
165
is the duration of the audio file in seconds and we're using it to control the duration of the panning effect1080x1920
is the native resolution for vertical TikTok videos. Your input image needs to be higher resolution than this in order to be able to crop a 1080x1920 image from it and then pan from one side to the other- The four arguments expected by the
crop
command arewidth
,height
,x
, andy
't*(iw-ow)/165'
is the variablex
argument and this makes it move from left to right based on timet
'(ih-oh)/2'
is the constanty
argument and it makes the cropped image centered vertically with respect to the input image