Handbrake is a fantastic tool for (among other uses), converting videos into mobile formats. It is extremely easy to use and can usually get a video properly converted in just a few clicks. To get Videos encoded for use on my phone, I use the “iPhone & iPod Touch” preset. It will convert your video to .mp4 as well as scale it down to a consumable size. This format will work on any smartphone I’ve seen.
My issue is that when converting a folder full of videos, I don’t want to have to use the gui to add a bunch of videos to the queue one by one. Its a very clicky process. This simple bash script will walk handbrake through all the files in a selected folder (and its subfolders). This uses the find command to traverse recursively through a directory structure. It will place the transcoded file in the same folder as its source and change its extension to “.mp4”.
Usage: handbrakefolder.sh [FOLDER] Run handbrake on all the files contained in [FOLDER]. (the current directory by default)
1 2 3 4 5 6 7 8 9 10 11
Save that into a .sh file like “handbrakefolder.sh” and grant it the execute permission (chmod +x handbrakefolder.sh).
Thanks to Vinnie and http://mywiki.wooledge.org/UsingFind for their help in this.
Now you can simply execute this script against a folder containing your video files. like this:
For a folder structure like this: Videos -> show1 vid1.avi -> show2 -> season 1 ep1.avi ep2.avi -> season 2 ep1.avi ep2.avi -> show3 vid1.avi vid2.avi hostname% handbrakefolder.sh Videos ... .... ... When done, it will look like this: Videos -> show1 vid1.avi vid1.mp4 -> show2 -> season 1 ep1.avi ep1.mp4 ep2.avi ep2.mp4 -> season 2 ep1.avi ep1.mp4 ep2.avi ep2.mp4 -> show3 vid1.avi vid1.mp4 vid2.avi vid2.mp4