Windows Desktop Codecs
AVPro Movie Capture supports both the built-in Windows codecs, and any 3rd-party codecs installed on the system. Codecs support varies based on the API:
Video API | Containers | Legacy | Hardware Encoding |
3rd-party Codecs |
Min OS Support |
---|---|---|---|---|---|
Media Foundation | MP4 | . | ✓ | . | Windows 7 |
DirectShow | AVI/MP4 | ✓ | . | ✓ | Windows XP |
VFW (Video for Windows) | AVI | ✓ | . | ✓ | Windows XP |
Media Foundation Codecs
Using Media Foundation (MF) codecs is the most modern option and the most typical use case. Only a fixed subset of codecs are supported:
Video API | Hardware Encoding |
Min OS Support | Specs |
---|---|---|---|
Video Codecs |
|||
H.264 | ✓ | Windows 7 | Codec Spec |
HEVC (H.265) | ✓ | Windows 10 | Codec Spec |
Audio Codecs |
|||
AAC | . | Windows 7 | Codec Spec |
FLAC | . | Windows 10 | . |
Image Codecs |
|||
Uncompressed PNG | . | Windows XP | . |
H.264 Codec
This is the most common and compatible codec by far and should be used in most cases. You can create easy to share videos with this codec.
HEVC (H.265) Codec
This is a very common and compatible codec with higher compression than H.264 but requires more modern hardware and operating system support.
AAC / FLAC Audio Codec
AAC is the most common audio codec and is widely compatible and should be used in most cases. FLAC is useful if you require lossless audio encoding but isn't as widely compatible.
DirectShow & VFW Legacy Codecs
These legacy codecs can be used for cases where the Media Foundation codecs are not suitable for the use case. Windows does include a few built-in legacy codecs but most of these are not useful. 3rd-party codecs can be installed, here are a few we recommend:
Codec | Realtime | Lossless | File Size | Alpha Channel | Link |
---|---|---|---|---|---|
Lagarith | ✓ | ✓ | Large | ✓* | Link |
MagicYUV | ✓ | ✓ | Large | ✓* | Link |
x264 | ✓* | ✓* | Small-Medium | . | Link |
*after configuring the codec
Lagarith Codec
Lagarith is a great general purpose codec. It uses the AVI file container. It’s fast enough for real-time (due to great multi-threading) and lossless. Naturally the files it generates are very large and not suitable for sharing. We use Lagarith as an intermediate codec for real-time capturing and then re-encode to something else like H.264 MP4 offline.
Always check your codec settings. You can do this directly in the plugin via the Configure button:
Recommended settings:
- Enable “Use Multithreading”
- Set Mode to RGB or RGBA if you need to capture alpha channel
MagicYUV Codec
MagicYUV is another fast lossless codec for realtime capture. It uses the AVI file container. It can capture transparent videos but first needs to be configured to do so:
- Open the codec configuration panel by going to the Start Menu and running "MagicYUV VFW codec configuration"
- Set "Accepted Colorspace" to "RGBA (RGB32 with alpha)"
- Tick "Enable RGBA compression"
- Click "Save defaults"
x264 Codec
x264 is a highly tunable codec and suits almost any need. By default it’s set up for off-line processing which produces tiny files but generally uses way too much CPU for real-time capture. We tweak x264 for real-time capture and use it to directly generate video files suitable for sharing. x264 can also be used with an MP4 muxer to generate MP4 files instead of AVI files (see FAQ).
Always check your codec settings. You can do this directly in the plugin via the Configure button, or in 3rd party software like Virtualdub (video > compression menu). Recommended settings:
- Preset: Fast/Veryfast/Superfast
- Enable “Fast Decode”
- Set “Ratefactor” to your desired quality level
- Enable “VirtualDub Hack”
- Set Debug “Log level” to None
- Checking ‘Zero Latency’ can help with AV sync and also improve cross-platform playback (for some reason).
Note: You may have to run this configuration twice - once for the 32-bit x264 config, and again for the 64-bit x264 config. These settings are separate for 32bit and 64bit so if you’re running 64-bit Unity it will use the 64-bit settings, but then if you build a 32-bit standalone app it will use the 32-bit settings - so it is often best to just build the same “bitness” so you’re using in Unity editor to avoid such confusion.