Design Proposal for Video Sequencer Proxy System
- Current proxy setup has so much options for just a simple task.
- It is slow.
Here is an addon we have created with Ffmpeg just to show some ideas how it may work. But C implementation would work more efficiently.
Global Proxy Folder:
- This is easier to maintain. Deleting/Cleanup is also simple.
- Reusable proxy setup. These proxies can be reused in new projects.
- We are using custom proxy directory for detecting the proxy.
- Preference has a delete proxy operator to delete the whole proxy in one click.
Ability to create proxy in library bin (in our case in File Browser).
We are using this command for building proxy:
ffmpeg -i input.mp4 -vf scale=640:-2 -vcodec libx264 -g 1 -bf 0 -vb 0 -crf 20 -preset veryfast -acodec aac -ab 128k out.avi
This will create intraframes in h264 within an AVI container with a fixed width of 640 preserving aspect ratio.
Fixed ratio of 640:-2 ("-:2" is needed for x264 to use the scale filter which needs to be divisible by 2)
Reasons we are using fixed width of 640 preserving aspect ratio are:
It’s straight forward. No need to make decision for variable size for a simple proxy operation.
Mixed media like HD and 4k can be used together with the same quality.
The interface can fit 640 width nicely.
Industry is going for 4k and 4k+. Where 25% proxy creates a huge file size of 960x540 for example.
Variable scaling also affects the encoding speed and frame blending.
We are using CRF for the image quality and file size instead.