I’ve been intermittently travelling vlogging for a while now and one of my biggest pain points for making new videos is getting the source video converted to constant frame rate. I’m shooting with a phone instead of a DSLR camera, and unfortunately my old Samsung S4 edge doesn’t have a constant frame rate option. As far as I could tell from a little googling, even a fancy new S9 will still only shoot VBR (variable bit rate). Let me know in the comments if that’s not the case!
So the first solution I used was Handbrake. It’s a great program and generally pretty easy to use. You can make a job queue and convert in a batch. And today I realized the video editor I use, Shotcut, has a dialog that pops up when you try to add a VBR file, but no easy way to batch from what I can tell.
I need it simpler. No pesky menus to click through. So I wrote this one liner batch file that uses the underlying program FFMPEG to convert every file in a directory. Note that you may need to change some of the FFMPEG parameters.
FOR %%G IN (*.mp4) DO call ffmpeg -loglevel verbose -i "%%G" -map 0 -map_metadata 0 -map -0:d -map -0:s -map -0:t -ignore_unknown -f mp4 -codec:a ac3 -b:a 512k -codec:v libx264 -preset medium -g 1 -crf 11 -y ".\convert\%%G"
Easy, breezy, file squeezy.