Design Proposal for Video Sequencer (VSE) Proxy System

Design Proposal for Video Sequencer Proxy System

Reason:

  • 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.

Which Features:

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).

Ffmpeg Command:

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)
    Details: https://ffmpeg.org/ffmpeg-filters.html#scale

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.

4 Likes