FFmpegOut by keijiro

FFmpegOut is a Unity plugin for offline rendering that records and exports rendered frames in Unity to a video file by using FFmpeg as a video encoder. An update has added ProRes4444 and lossless h264 varieties for perfect colorspace matching with video graphics.

 

The main scope of FFmpegOut is to reduce rendering time when using Unity for pre-rendering. It greatly reduces the amount of file I/O compared to exporting raw image sequences, so that it can be an effective solution when the bandwidth is the most significant bottleneck. On the other hand, FFmpegOut is not optimized for real-time capturing. It’s not strongly recommended to use it in an interactive application.

Encoding Presets

  • H.264 Default (MP4) – Highly optimized encoder with a moderate quality and a mid-level bit rate. Recommended for general use.
  • H.264 Lossless 420 (MP4) – Not actually lossless but the quality is high enough for most use cases. Recommended for pre-rendering use.
  • H.264 Lossless 444 (MP4) – The highest quality preset. Most software can’t decode videos encoded with this preset (e.g. Premiere crashes when importing them).
  • ProRes 422 (QuickTime) – ProRes is an intra-frame codec that is gradually phased out but still widely used in video editing. The ProRes codec used in FFmpeg is not aggressively optimized so that it tends to be slower than other codecs.
  • ProRes 4444 (QuickTime) – Only this preset supports alpha channel. Use this when you needs alpha channel for composition in editing software (Premiere, After Effects, etc.).
  • VP8 (WebM) – Very low bit rate encoding, optimized for web browser use.

https://github.com/keijiro/FFmpegOut