Generating Proxies with FFMpeg and PowerShell

In video editing proxies are used in place of high-resolution footage to reduce the strain on your system while editing. It makes timeline scrubbing much faster.

For the podcast, I usually use the BlackMagic Proxy Generator Lite, and create half-res versions of the source files. For combined ~2 hours of footage (one of myself, and another of my guest) it takes about 30 minutes to generate the new video files.

But using this tool also means that I have to manually open the tool, and drag-n-drop stuff around...

I'm already using some trivial powershell scripts to do other bulk conversions, but I've not wired that up for generating proxies. Until today.

mkdir Proxy;
foreach ($input in Get-ChildItem *.mp4) {
  $output = [io.path]::ChangeExtension($input.FullName, '.mov');
  ffmpeg -hwaccel d3d11va -i $input.FullName -c:v h264_amf -s 960x540 -an $output;
};
mv *.mov Proxy;

I'm using the AMD video card, so I'm leveraging the DirectX 11 for decoding and AMF acceleration for encoding in ffmpeg. This script it only takes about 5 minutes to generate the proxy files, and Davinci Resolve seems to be happy with them.

I still use Lossless Cut to split the files into individual tracks, but pretty sure I can leverage ffmpeg for it as well, sometime in the future.

Subscribe to Vasili's Blog

Don’t miss out on the latest issues. Sign up now to get access to the library of members-only issues.
jamie@example.com
Subscribe