Zoals sommigen is opgevallen houd ik er wel van om af en toe films te maken. Van onze reizen, van terrein-rij-uitjes, etc. Soms moet ik een aantal films encoden zodat je het op een bepaalde plek kan gebruiken. Bijvoorbeeld om het aan te bieden via een NAS. Of misschien kan je afspeel apparaat alleen lage kwaliteit filmpjes aan. Of is er gewoon geen ruimte. Mijn Raspberry Pi kan bijvoorbeeld alleen maar goed H264 streamen omdat het een licht apparaatje is.

Soms heb ik een hele berg videofilmpjes die ik moet omzetten en één voor één met Handbrake is dat een vervelende klus. Ik gebruik dan HandBrakeCli om zo alles dat in een bepaalde folder staat om te zetten. Ik doe dit zowel op mijn Mac als mijn Windows computer. Voor allebei heb ik er een klein scriptje voor geschreven;

Handbrake Command Line Interface (CLI)

HandbrakeCli kan je hier downloaden; Handbrake.fr – CLI en meer info kan je hier vinden; CLI guide. Bash op de Mac en Powershell op de Windows heb je al standaard op de machine staan. Nu moet je alleen de scripts kopiëren en de juiste preset uitzoeken. Hier heb je een lijstje; Official Presets.

Windows – Powershell

$handbrakeCli = 'HandBrakeCli.exe'
$dest = 'C:\done\'
$src = 'E:\do'
$ext = '.m4v'

$preset = 'HQ 720p30 Surround'

$workload = Get-Childitem $src -include *.mkv,*.avi,*.m4v,*.mp4 -recurse | Select FullName, BaseName | Sort

foreach ($file in $workload) {
$source = $file | Select -ExpandProperty FullName
$destination = $dest+($file | Select -ExpandProperty BaseName)+$ext


& $handbrakeCli -i $source -o $destination --preset=$preset
}

Mac/Unix/Linux – Bash

#!/bin/bash

SRC="/Users/floris/Downloads/do/"
DEST="/Users/floris/Downloads/done/"
DEST_EXT=m4v
HANDBRAKE_CLI=/Applications/HandBrakeCLI

for FILE in "$SRC"/*
do
filename=$(basename "$FILE")
extension=${filename##*.}
filename=${filename%.*}
$HANDBRAKE_CLI --preset 'HQ 1080p30 Surround' --input "$FILE" --output "$DEST"/"$filename".$DEST_EXT
done