All Projects → keijiro → Ffmpegout

keijiro / Ffmpegout

Licence: mit
Video capture plugin for Unity with FFmpeg.

Projects that are alternatives of or similar to Ffmpegout

Assetstudio
AssetStudio is a tool for exploring, extracting and exporting assets and assetbundles.
Stars: ✭ 7,191 (+927.29%)
Mutual labels:  unity, unity3d
Hologramshader
✏️ Test of an hologram material made in Unity.
Stars: ✭ 684 (-2.29%)
Mutual labels:  unity, unity3d
Unitypack
Python deserialization library for Unity3D Asset format
Stars: ✭ 574 (-18%)
Mutual labels:  unity, unity3d
Lunar Unity Console
High-performance Unity iOS/Android logger built with native platform UI
Stars: ✭ 628 (-10.29%)
Mutual labels:  unity, unity3d
Unitymeshsimplifier
Mesh simplification for Unity.
Stars: ✭ 592 (-15.43%)
Mutual labels:  unity, unity3d
Mixedreality Webrtc
MixedReality-WebRTC is a collection of components to help mixed reality app developers integrate audio and video real-time communication into their application and improve their collaborative experience
Stars: ✭ 568 (-18.86%)
Mutual labels:  unity, unity3d
Noiseshader
Noise shader library for Unity
Stars: ✭ 616 (-12%)
Mutual labels:  unity, unity3d
Swarm
An example of use of compute shaders and procedural instancing.
Stars: ✭ 547 (-21.86%)
Mutual labels:  unity, unity3d
Spritedicing
Unity extension for reusing sprite texture areas
Stars: ✭ 589 (-15.86%)
Mutual labels:  unity, unity3d
Smrvfx
An example that shows how to pass data from a skinned mesh renderer to a visual effect graph.
Stars: ✭ 589 (-15.86%)
Mutual labels:  unity, unity3d
Puppettest
An experiment in procedural dance animation
Stars: ✭ 631 (-9.86%)
Mutual labels:  unity, unity3d
Mybox
MyBox is a set of attributes, tools and extensions for Unity
Stars: ✭ 694 (-0.86%)
Mutual labels:  unity, unity3d
Jengine
JEngine是针对Unity开发者设计的开箱即用的框架,封装了强大的功能,小白也能快速上手,轻松制作可以热更新的游戏 | JEngine is a streamlined and easy-to-use framework designed for Unity Programmers which contains powerful features, beginners can start up quickly and making hot update-able games easily
Stars: ✭ 564 (-19.43%)
Mutual labels:  unity, unity3d
Softmaskforugui
UI Soft Mask is a smooth masking component for Unity UI (uGUI) elements.
Stars: ✭ 688 (-1.71%)
Mutual labels:  unity, unity3d
Quickstart Unity
Firebase Quickstart Samples for Unity
Stars: ✭ 553 (-21%)
Mutual labels:  unity, unity3d
Unitygameframework
This is literally a game framework, based on Unity game engine. It encapsulates commonly used game modules during development, and, to a large degree, standardises the process, enhances the development speed and ensures the product quality.
Stars: ✭ 617 (-11.86%)
Mutual labels:  unity, unity3d
Unitypcss
Nvidia's PCSS soft shadow algorithm implemented in Unity
Stars: ✭ 533 (-23.86%)
Mutual labels:  unity, unity3d
Rsvfx
An example that shows how to connect RealSense depth camera to Unity VFX Graph
Stars: ✭ 541 (-22.71%)
Mutual labels:  unity, unity3d
Ecs
LeoECS is a fast Entity Component System (ECS) Framework powered by C# with optional integration to Unity
Stars: ✭ 578 (-17.43%)
Mutual labels:  unity, unity3d
Dungeontemplatelibrary
🌏: Dungeon free resources (terrain & roguelike generation)
Stars: ✭ 595 (-15%)
Mutual labels:  unity, unity3d

FFmpegOut

gif

FFmpegOut is a Unity plugin that allows the Unity editor and applications to record video using FFmpeg as a video encoder.

Differences between Unity Recorder

First of all, note that Unity Recorder would be a better choice in most cases for the same purpose. It's strongly recommended to check and try it out before installing FFmpegOut.

Unity Recorder

  • Pros: Easy to use. Better UI/UX.
  • Pros: Stable and robust. Officially supported by Unity.

FFmpegOut

  • Pros: Supports a wide variety of codecs.
  • Cons: Non user friendly UI/UX.
  • Cons: Complex legal factors (GPL/LGPL, patent risk)

In short, you should use Unity Recorder unless you need a special codec like ProRes or lossless H.264.

System Requirements

  • Unity 2018.3 or later
  • Windows: Direct3D 11
  • macOS: Metal
  • Linux: Vulkan

FFmpegOut only supports desktop platforms.

FFmpegOut works not only on the legacy rendering paths (forward/deferred) but also on the standard scriptable render pipelines (LWRP/HDRP).

Installation

Download and import the following packages into your project.

Camera Capture component

The Camera Capture component (CameraCapture) is used to capture frames rendered by an attached camera.

inspector

It has a few properties for recording video: frame dimensions, preset and frame rate.

Frame Dimensions (width and height)

The dimensions of recorded video are specified with the Width and Height properties. The size of the screen or the game view will be overridden by these values.

Presets

At the moment the following presets are available for use.

Name Container Description
H.264 Default MP4 Recommended for general use.
H.264 NVIDIA MP4 Highly optimized. Requires a NVIDIA GPU
H.264 Lossless 420 MP4 Recommended for pre-render use.
H.264 Lossless 444 MP4 High quality but not widely supported.
HEVC Default MP4 High quality but slow.
HEVC NVIDIA MP4 Highly optimized. Requires a NVIDIA GPU
ProRes 422 QuickTime
ProRes 4444 QuickTime Supports alpha channel.
VP8 WebM
VP9 WebM High quality but slow.
HAP QuickTime
HAP Alpha QuickTime Supports alpha channel
HAP Q QuickTime

Frame Rate

The Frame Rate property controls the sampling frequency of the capture component. Note that it's independent from the application frame rate. It drops/duplicates frames to fill gaps between the recording frame rate and the application frame rate. To avoid frame dropping, consider using the frame rate controller component (see below).

Frame Rate Controller component

The Frame Rate Controller component is a small utility to control the application frame rate.

inspector

It tries controlling frame rate via Application.targetFrameRate and QualitySettings.vSyncCount. Note that it only works in a best-effort fashion. Although it's expected to provide a better result, it's not guaranteed to work exactly as specified.

When the Offline Mode property is enabled, it explicitly controls the application frame rate via Time.captureFramerate. In this mode, application time is decoupled from wall-clock time so it's guaranteed that no frame dropping happens. This is useful when using the capture component to output pre-render footage.

License

MIT

Note that the FFmpegOutBinaries package is not placed under this license. When distributing an application with the package, it must be taken into account that multiple licenses are involved. See the FFmpeg License page for further details.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].