AVPro Movie Capture User Manual
AVProMovieCapture-UserManual
AVProMovieCapture-UserManual
User Manual:
Open the PDF directly: View PDF .
Page Count: 51
Download | |
Open PDF In Browser | View PDF |
AVPro Movie Capture Unity plugin for real-time capture and off-line rendering to AVI/MP4/PNG file Version 3.6.8 Released 1 November 2018 Contents 1. 2. 3. 4. Introduction Features System Requirements Installation 4.1 Upgrade Notes 5. Codecs & Containers 5.1 Lagarith Codec 5.2 x264 Codec 5.3 Xvid Codec 5.4 MagicYuv Codec 5.5 Media Foundation H.264 Codec 5.6 AVI File Container 5.7 MP4 File Container 6. Usage 6.1 In-Editor Capture 6.2 In-Game Capture 6.3 Real-time Capturing 6.4 Offline Rendering 6.5 Webcam Recording 7. Components 8. Scripting 8.1 Basics 8.2 Custom Use 9. Tips 10. Support 11. About RenderHeads Ltd 11.1 Services 11.2 Our Unity Plugins Appendix A - FAQ Appendix B - Version History Appendix C - Road Map 2 / 51 AVPro Movie Capture © 2012-2018 RenderHeads Ltd 1. Introduction AVPro Movie Capture is a plugin for Unity that allows real-time and off-line recording video and audio, directly to disk as an AVI / MP4 / PNG file. In-editor capturing In-game capturing In the past we used screenshots and captured videos using tools like Fraps, however we wanted something completely integrated into Unity and so AVPro Movie Capture was born. 3 / 51 AVPro Movie Capture © 2012-2018 RenderHeads Ltd The asset package consists of the following elements: ● Demo Scenes ○ ScreenCaptureDemo.unity - A simple demo showing how to use the CaptureFromScreen component. ○ AlphaCaptureDemo.unity - A simple demo showing how to use the CaptureFromCamera component to capture transparency. CameraCaptureDemo.unity - A simple demo showing how to use the CaptureFromCamera component. 4 / 51 AVPro Movie Capture © 2012-2018 RenderHeads Ltd ○ ● ● ● ● Camera360CaptureDemo.unity - A simple demo showing how to use the CaptureFromCapture360 component. ○ Camera360StereoCaptureDemo.unity - A simple demo showing how to use the CaptureFromCapture360ODS component. ○ TextureCaptureDemo.unity - A simple demo showing how to use the CaptureFromTexture component. ○ WebcamCaptureDemo.unity - A simple demo scene showing how to use the CaptureFromTexture component to capture from WebCamTexture. Plugins ○ AVProMovieCapture.dll - The native low-level plugin DLL for 32-bit and 64-bit Windows. Component Scripts ○ CaptureFromScreen.cs - Drag ‘n drop component to allow easy capturing of the entire scene including IMGUI. ○ CaptureFromCamera.cs - Drag ‘n drop component to allow easy capturing from a camera but not IMGUI. ○ CaptureFromCamera360.cs - Drag ‘n drop component to allow easy capturing from a camera in 360 degree equirectangular format, without capturing any IMGUI. ○ CaptureFromTexture.cs - Drag ‘n drop component to allow easy capturing of a dynamic texture. ○ UnityAudioCapture.cs - Drag ‘n drop component for capturing Unity audio into a buffer for saving to the AVI file. ○ CaptureGUI.cs - Helper component that displays a GUI exposing the capture options of CaptureBase ○ MotionBlur.cs - Utility component used to accumate motion blur. ○ MouseCursor.cs - Utility component to draw software cursor for cursor capture Editor Scripts ○ Various scripts to handle the drawing of the CaptureFromX components ○ CaptureEditorWindow.cs - Created an in-editor Window for capturing directly from Unity without adding any components to your scene. Internal Scripts ○ NativePlugin.cs - Wrapper interface to access capture functions in the DLL. ○ CaptureBase.cs - Base class 5 / 51 AVPro Movie Capture © 2012-2018 RenderHeads Ltd 2. Features ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● *NEW* Capture to PNG image sequence Very easy to use Optimised for high performance Real-time capture and offline rendering Rendering to 8K resolution Works in the editor and also in standalone builds Use any video codec you want Equi-rectangular capture for 360 degree VR (mono and stereo) Equi-rectangular capture for 180 degree VR (mono and stereo) Omni-directional stereo (ODS) support for VR renders Motion blur rendering Linear and Gamma colour-spaces supported Can capture alpha channel for creating transparent videos Records audio directly from Unity or from a Windows recording device Free version which allows up to 10 seconds per capture 3. System Requirements ● ● ● ● ● ● ● Unity Pro 4.6 and above Unity 5.0 and above Unity 2017.1 and above Unity 2018.1 and above Desktop Microsoft Windows platform (32-bit and 64-bit) Windows XP SP3 and higher Codecs for any video formats you want to record to 3.1 Platforms not Supported ● ● ● ● ● ● ● WebGL WebPlayer Mobile: Android, iOS, Windows Phone Mac Linux Windows Store Apps (Note: Windows Metro apps don’t support DirectShow which this plugin is built upon. This plugin only supports Windows desktop apps) PS4 / XBox / Switch 6 / 51 AVPro Movie Capture © 2012-2018 RenderHeads Ltd 4. Installation 1. Import the unitypackage file into your Unity project. 2. Ensure you have the relevant codecs installed for the formats you want to record to. 4.1 Upgrade Notes If you are upgrading from a previous version, you must make sure Unity doesn’t already have the DLL plugin files loaded, otherwise they will not be updated. The best way to do this is: 1. Close all Unity instances 2. Open your project in a fresh Unity and import the new unitypackage immediately 4.2 Unity 4.x Install Differences Unity 4.x has some different requirements for folder structure compared to Unity 5.x and 2017.x. In Unity 4.x all native plugins (DLL, SO files) must be in Assets/Plugins folder 7 / 51 AVPro Movie Capture © 2012-2018 RenderHeads Ltd 5. Codecs & Containers AVPro Movie Capture doesn’t include any codecs and so relies on the codecs that are already installed on your machine. Windows comes with a few codecs already, but most of them are not ideal for real-time capture. You can install additional codecs on your machine.. Codec types supported: ● Microsoft DirectShow ○ All DirectShow codecs are supported ● Legacy VFW (Video for Windows) ○ All VFW codecs are supported ● Microsoft Media Foundation ○ We don’t yet support all MF codecs ○ The Microsoft H.264 video encoder is supported: https://msdn.microsoft.com/en-us/library/windows/desktop/dd797816(v=vs.85) .aspx 8 / 51 AVPro Movie Capture © 2012-2018 RenderHeads Ltd There are many codecs out there, each with their own pros and cons. Some codecs are great for real-time encoding, some are lossless and some achieve tiny file sizes using expensive compression, so it is important to consider which codec you use and configure them correctly for your needs. Third-party codecs we recommend: Codec Real-time Loss-less File Size Alpha Channel Lagarith Yes Yes Large Yes* MagicYUV Yes Yes Large Yes* x264 Yes* Yes* Small - Medium No Xvid Yes No Medium No * after configuring the codec 5.1 Lagarith Codec Download from: http://lags.leetcode.net/codec.html Lagarith is a great general purpose codec. 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, or in 3rd party software like Virtualdub (video > compression menu). Recommended settings: ● ● Enable “Use Multithreading” Set Mode to RGB or RGBA if you need to capture alpha channel Recommended Lagarith Settings 9 / 51 AVPro Movie Capture © 2012-2018 RenderHeads Ltd 5.2 MagicYUV Codec Download from: http://magicyuv.com/ MagicYUV is another fast codec for real-time capture. 5.3 x264 Codec Download from: http://sourceforge.net/projects/x264vfw/ 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. 10 / 51 AVPro Movie Capture © 2012-2018 RenderHeads Ltd Recommended x264 settings for real-time capture 5.4 Xvid Codec Download from: http://www.koepi.info/xvid.html This codec is a bit old now, but if you want to use Xvid make sure to disable the option “Display encoding status” under “Other options”. 11 / 51 AVPro Movie Capture © 2012-2018 RenderHeads Ltd Recommended Xvid settings for real-time capture 5.5 Media Foundation H.264 Codec This codec is very useful if you want to quickly create shareable MP4 videos. It requires Windows 7. Currently we don’t expose any options for this codec but these will be added in the future. 5.6 AVI File Container AVPro Movie Capture supports the AVI file container by default. AVI is a useful container for capturing but isn’t ideal for sharing as it isn’t so well supported outside of Windows. AVI also doesn’t properly support codecs with B-frames (such as H.264 / H.265). We find AVI a useful intermediate container for captures and rendering. 5.7 MP4 File Container The MP4 container must be the most widely supported file container, so it’s perfect for sharing. AVPro Movie Capture does support writing to the MP4 container but there are 12 / 51 AVPro Movie Capture © 2012-2018 RenderHeads Ltd currently some limitations. If you’re using Windows 7 or above and you select the Media Foundation H.264 codec, then you can write directly to MP4. If you want to use the x264 DirectShow codec and you want to write to MP4 then you must install a third-party splitter (see FAQ). 13 / 51 AVPro Movie Capture © 2012-2018 RenderHeads Ltd 6. Usage 6.1 In-Editor Capture The editor components allow you to quickly and easily capture videos directly from inside the Unity editor without modifying your scene. Simply open the AVPro Movie Capture editor window: You can now add this UI panel to your editor layout to allow one-click video captures, or open and close it as needed. In-editor capture window This panel allows you to configure your recording options and codecs. All settings are 14 / 51 AVPro Movie Capture © 2012-2018 RenderHeads Ltd remembered between sessions so once it has been configured once you only need to press the “Start Capture” button. Once a capture starts the statistics of the capture, capture progress and controls are presented. In-Editor capture session controls 6.2 In-Game Capture You can add one of the components (CaptureFromScreen, CaptureFromCamera etc) to your scene and trigger them to record directly from your game. This works in the editor and standalone builds. Components in the “Add Component” button You can read more about these components in the next section. 15 / 51 AVPro Movie Capture © 2012-2018 RenderHeads Ltd 6.3 Real-time Capturing For real-time capturing the most important consideration is the codec choice. A codec needs to be selected that is very fast so that it doesn’t affect the frame-rate of the game / app being captured. Lagarith and x264 codecs can be good choices for this and must be configured correctly. The Microsoft H.264 codec can also work well. All codecs are software based, so doing real-time 4K captures will require a powerful CPU. For high resolution captures it may be better to use the offline rendering option. 6.4 Offline Rendering For visuals that don’t require real-time input (cut-scenes, procedural / sequenced animations etc) you have the option to record in offline/non-realtime mode. This mode allows you to capture every frame of animation even if the playback runs very slowly and allows you to capture to any desired frame rate. For example you may have a mega complex/detailed sequence that renders very slowly in Unity. You can use offline recording to render this to a 60fps video. Offline rendering isn’t suitable for anything that requires real-time input. Since this type of rendering can take a while, you can use the Auto Stop option to set how many frames / seconds you want it to render for. 6.5 Webcam Recording AVPro Movie Capture includes a demo scene that shows how to easily record a Unity webcam to video file. It uses the CaptureFromTexture component as Unity’s WebCamTexture is just a normal texture. If you want to capture the audio as well, make sure to select the microphone, or leave the audio device index as -1 to use the default microphone. Note that currently the H.264 MP4 codec doesn’t support microphone audio and so the x264 codec must be used. 16 / 51 AVPro Movie Capture © 2012-2018 RenderHeads Ltd 7. Components 7.1 CaptureFrom Components The main components are all prefixed with “CaptureFrom”. They all share common settings: ● Capture Mode ○ Selects between real-time capture or offline rendering mode Start / Stop ● ● ● ● Capture On Start ○ When this GameObject starts, make capture start immediately Start Paused ○ When the capture starts, pauses it immediately. This allows the expensive setup of the capture to be done ahead of time so that capturing simply requires a call to Resume() to unpause the capture Capture Toggle Key ○ Select a key to toggle the start and end of capturing Stop Mode ○ Without a stop mode the capture will continue forever until it is stopped by the user or script ○ You can set a stop mode to make the capture stop when it reaches either a certain number of frames, or a duration in seconds Output ● Output Type 17 / 51 AVPro Movie Capture © 2012-2018 RenderHeads Ltd ● ● ○ Select if you want to output to a video file, or a named pipe (see FAQ) Folder ○ Select the folder to output to File Name ○ Select the file name to output to, or set it to be auto generated ○ Be sure to set the correct file extension (avi or mp4) Visual ● ● ● ● ● ● ● Down Scale ○ Reduce the size of the final output Frame Rate ○ The frame rate per second for output file Flip Vertically ○ Flip the output image vertically (debug only) Support Alpha ○ Enable if you want to export transparency. This will require that you use a codec that supports alpha channel. Note that the CaptureFromScreen component doesn’t support alpha. Unity doesn’t always render alpha (it is not a compositing package), so you may need to use custom shaders on your geometry to get the expected results Use MF H.264 MP4 Codec ○ This option uses the Media Foundation H.264 codec. This requires that you set the file extension to “mp4”. Codec Search Priority ○ Allows you to list the names of codecs to search for. The first codec in the list that it finds installed on the system will be the one used for encoding. This is useful if you are deploying an app to a system you don’t have codec control over so that it can look for a number of codecs before finally falling back to uncompressed. If you want uncompressed simply add a blank entry to the list Force Video Codec Index ○ Allows you to override the search priority list and select a codec directly by index 18 / 51 AVPro Movie Capture © 2012-2018 RenderHeads Ltd ● Motion Blur ○ This is an experimental option which is available for offline rendering. It accumulates frames in between the capture frames to create motion blur. This is very useful for high quality rendering but it is very expensive as it is a brute force approach to motion blur. Audio ● ● ● ● Capture Audio ○ Toggle to capture audio or not. It’s best for performance to only capture audio when you need it Audio Codec Priority ○ Allows you to list the names of codecs to search for. The first codec in the list that it finds installed on the system will be the one used for encoding. This is useful if you are deploying an app to a system you don’t have codec control over so that it can look for a number of codecs before finally falling back to uncompressed. If you want uncompressed simply add a blank entry to the list Force Audio Codec Index ○ Allows you to override the search priority list and select a codec directly by index Force Audio Device Index ○ Set to -1 to just use the default microphone recording device, otherwise you can set it to the index to select another device Misc ● ● ● Capture Mouse Cursor ○ This option is only aavilable when using the CaptureFromScreen component and allows the mouse cursor to be captured. You have to specify a texture to use for the cursor. Minimum Disk Space MB ○ Set to -1 to ignore, otherwise it will keep checking the disk space and stop the capture if the free disk space gets below this number of MB. List Codecs On Startup ○ If this is enabled all of the videc codecs, audio codecs, and audio recording 19 / 51 AVPro Movie Capture © 2012-2018 RenderHeads Ltd devices will be logged to the console. This can be useful to see what codecs/devices are available. 7.2 CaptureFromScreen Component This is the preferred component for capturing as it simply captures everything on the screen (backbuffer), including UI and IMGUI. The hardware mouse cursor is the only thing not captured, but this component has an option to capture the mouse cursor by drawing it using IMGUI. To use, just add the component to any GameObject in your scene and configure the component. 7.3 CaptureFromCamera Component This component captures the rendering of a Unity camera (including post effects and uGUI). IMGUI is not captured (for this you have to use CaptureFromScreen component). You can capture from a single camera, or from multiple cameras if you have several cameras in your scene that contribute to the final camera rendering. This component allows you to render at a higher resolution than the app is running at, including 8K output (if the codec supports this resolution). 20 / 51 AVPro Movie Capture © 2012-2018 RenderHeads Ltd To use, just add this component to any GameObject and assign which Camera it should render. If you want to render from multiple contributing cameras, select the “Use Contributing Cameras” option, and then either manually add the cameras to the list or use the “Find Contributing Cameras” button to fill automatically. The cameras must be listed from first (lowest depth value) to last (highest depth value) rendering order. 7.4 CaptureFromCamera360 Component This components allows you to capture full 360 degree views of your scene in equi-rectangular format suitable for viewing in VR. 21 / 51 AVPro Movie Capture © 2012-2018 RenderHeads Ltd This component works by rendering to 6 faces of a cubemap (so 6 renders of the scene per frame) and then resolving the cubemap into the final equi-rectangular image. Options are: ● ● ● ● ● ● ● ● ● Camera ○ The camera to render from Resolution ○ The resolution of the final output (before downscale) Anti-aliasing ○ Anti-aliasing to use during rendering Cubemap Resolution ○ The resoluton of the cubemap faces used during rendering Cubemap Depth ○ The bit-depth of the cubemap used during rendering Capture GUI ○ Whether or not this cubemap renderer needs to capture GUI or not. Capturing GUI requires a slightly slower rendering path Support Camera Rotation ○ Whether or not this capture needs to support camera rotation. Doing so requires a slightly slower rendering path, but it is by default enabled Stereo Rendering ○ Optionally you can select to create a stereo output in either top-bottom or left-right packing formats. The left eye is always rendered first (top / left). Note that this method of stereo rendering is just a fast approximation. For higher quality stereo the ODS component should be used, but it is much much slower. Interpupillary Distance (IPD) ○ The distance between the pupils. This is set to 0.064 which is the standard for an american male adult. You may wish to alter this if creating content for a wide range of users and quality is important. This value is in meters and assumes a scale of 1 unit = 1 meter. 22 / 51 AVPro Movie Capture © 2012-2018 RenderHeads Ltd 7.5 CaptureFromCamera360ODS Component This component allows accurate rendering of stereo 360 scenes to equi-rectangular format via a technique called Omni-Directional Stereo (ODS) and based on this paper: https://developers.google.com/vr/jump/rendering-ods-content.pdf This component takes a very long time to render each frame and is only suitable for offline rendering. This is due to the complex rendering method, but the stereo results are much more accurate than using the stereo option in the CaptureFromCamera360 component. This component always outputs a stereo image and shouldn’t be used for monoscopic rendering. Options include: 23 / 51 AVPro Movie Capture © 2012-2018 RenderHeads Ltd ● ● ● ● ● ● ● ● ● Camera ○ The camera to render from Resolution ○ The resolution of the final output (before downscale) Anti-aliasing ○ Anti-aliasing to use during rendering Interpupillary Distance (IPD) ○ The distance between the pupils. This is set to 0.064 which is the standard for an american male adult. You may wish to alter this if creating content for a wide range of users and quality is important. This value is in meters and assumes a scale of 1 unit = 1 meter. Pixel Slice Size ○ The size in pixels of each vertical slice. Scene renders per frame = (Resolution.width / Pixel Slice) Increasing this number will make rendering faster, but will decrease quality. Usually best to leave this set to 1 pixel Padding Size ○ The amount of padding in pixels to add to each vertical slice. If you’re using post-process effects (bloom etc) then you may need to increase this above 1 so that these effects work. Camera Clear Mode ○ How the camera clears Camera Clear Color ○ The colour to clear the camera with Camera Image Effects ○ Here you can add any Image Effects that are applied to your camera. These effects will then get applied as the rendering is done. Note that Unity may become unresponsive when using this component. This is because each frame takes a long time to render so the Unity editor will only update at the end of each frame. Hopefully we will improve this in the future to keep the UI responsive. It is best to set the “Auto Stop” mode when using this component so that it will stop at the end of a sequence without user intervention. Also, please note that this capture component can use a ton of memory if the Unity profiler is enabled due to how many rendering calls it does per frame. Even a simple scene can take over 32GB of memory due to the profiler. You must disable the profiler completely when using this component. This is done by opening the profiler, disabling the record option, closing the profiler, remove the tab if it is docked, then restarting Unity. 7.6 CaptureFromTexture Component This component captures from any Unity texture (Texture2D, RenderTexture, WebCamTexture etc). The texture to capture is assigned via scripting by calling the SetSourceTexture() method. 24 / 51 AVPro Movie Capture © 2012-2018 RenderHeads Ltd 7.7 UnityAudioCapture Component This component can be added to capture the audio from Unity. This must be added to a GameObject that contains the AudioListener you want to record (usually Main Camera). The CaptureFrom component must then be connected to this component via the “Audio Capture” field. This component should be disabled when it is added to the scene so that the CaptureFrom component can enable it when required. One thing to be noted about this component is that it is implemented as a filter, therefore enabling bypass effects on an AudioSource would exclude that AudioSource from being captured. 7.8 CaptureGUI Component This component renders a GUI to the game view (using IMGUI) to control the CaptureFrom component. It allows the codecs to be selected, capture resolution and frame rate to be chosen and the capture itself to be controlled via Start / Pause / Resume / Stop buttons. This component is included as it can be useful but it is intended as more of an example than something to include in your builds. 7.9 MouseCursor Component This utility component can be added when using the CaptureFromScreen component when capturing of the mouse cursor is desired. It renders a software mouse cursor using IMGUI. You may see who cursors on screen - one will be your standard hardware cursor, and the other will be this software cursor. Only the software cursor is captured to video. This component must be assigned to the “Mouse Cursor” field in the CaptureFromScreen component. 25 / 51 AVPro Movie Capture © 2012-2018 RenderHeads Ltd 7.10 MotionBlur Component This utility component is added automatically when the motion blur option is selected from the CaptureFrom component. This is not usually added or used manually. 26 / 51 AVPro Movie Capture © 2012-2018 RenderHeads Ltd 8. Scripting 8.1 Basics All scripts use the namespace: RenderHeads.Media.AVProMovieCapture All CaptureFrom components derive from the CaptureBase class. CaptureBase includes most of the functionality, such as controlling when the capture starts and stops. Commonly used methods include: ● ● ● ● ● ● ● bool StartCapture() ○ Starts a capture void QueueStartCapture() ○ The same as StartCapture() but should be used when calling from a UI element (eg button) bool PauseCapture() ○ Pauses a capture bool ResumeCapture() ○ Resumes a paused capture bool CancelCapture() ○ Stops a capture immediately. Unlike StopCapture() it doesn’t wait for any pending frames to complete compression. bool StopCapture() ○ Stops a capture void QueueStopCapture() ○ The same as StopCapture() but should be used when calling from a UI element (eg button) All settings are publically available in the scripts so they can easily be set in code before starting a capture. 8.2 Custom Usage If you want to go beyond the component you can access the functionality of the AVProMovieCapture DLL directly or edit CaptureBase.cs to make your changes. You can also derive a new class from CaptureBase to make your own capture component (see the other components to see how this is done). The DLL has the following functions which are wrapped in NativePlugin.cs: Global Methods bool Init(); Global initialisation for the plugin. Returns false if unsuccessful. 27 / 51 AVPro Movie Capture © 2012-2018 RenderHeads Ltd void Deinit(); Global deinitialisation for the plugin. Enumeration Methods int GetNumAVIVideoCodecs(); Returns the number of DirectShow video codecs on the system. int GetNumAVIAudioCodecs(); Returns the number of DirectShow audio codecs on the system. int GetNumAVIAudioInputDevices(); Returns the number of DirectShow audio input devices on the system. string GetAVIVideoCodecName(int index); Returns "Invalid" if unsuccessful, otherwise results the name of the video codec at index. string GetAVIAudioCodecName(int index); Returns "Invalid" if unsuccessful, otherwise results the name of the audio codec at index. string GetAVIAudioInputDeviceName(int index); Returns "Invalid" if unsuccessful, otherwise results the name of the audio input device at index. Recorder Methods int CreateRecorderAVI(string filename, uint width, uint height, int frameRate, int format, bool isTopDown, int videoCodecIndex, bool hasAudio, int audioSampleRate, int audioChannelCount, int audioInputDeviceIndex, int audioCodecIndex, bool isRealTime, bool useMediaFoundationH264, bool supportAlpha); Creates a recorder instance to generating AVI files. An integer is returned which is a unique value specific to this instance of the recorder. bool Start(int handle); Starts/resumes recording. Handle is the handle of the recorder instance. void Pause(int handle); Pauses recording. void Stop(int handle); Stops recording. Handle is the handle of the recorder instance. void FreeRecorder(int handle); Releases the instance of the recorder. Encoding Methods 28 / 51 AVPro Movie Capture © 2012-2018 RenderHeads Ltd bool IsNewFrameDue(int handle); Let’s us know whether the encoder is ready for another frame. void SetTexturePointer(int handle, System.IntPtr texture); Sets the pointer for the texture to be captured void EncodeFrame(int handle, System.IntPtr data); Sends frame to be encoded. “data” points to an array of width x height and with a bit-depth of 32 for RGBA32 videos and 16 for YUY2 videos. void EncodeAudio(int handle, System.IntPtr data, uint length); Sends audio to be encoded. void EncodeFrameWithAudio(int handle, System.IntPtr videoData, System.IntPtr audioData, uint audioLength); Sends visual and audio frame to be encoded. Notes The render thread is also invoked by GL.IssuePluginEvent which is used to grab the currently set texture pointer and send it to the encoder. For an example of how to use the API, see ScriptCaptureDemo.cs 9. Tips For best results we recommend: 1. Use the Media Foundation H.264 video codec where possible. This is a lossy codec but it should be suitable for most use cases. 2. Install and use the Lagarith video codec. It is a free lossless codec with excellent performance. It does produce quite large files though so you may need to convert it to another format before sharing/uploading. You need to configure the Lagarith codec and enable multi-threading and null frames. 3. If you need to convert videos from one codec to another you can use VirtualDub, FFMPEG from the command-line, or Handbrake. 4. Install and use the X264 VFW video codec. It is fairly fast and produces videos of a very small file size. If you’re recording at a high resolution though you’ll need a very fast CPU for this codec. 5. If a specified codec couldn’t be found, a warning is generated and uncompressed 29 / 51 AVPro Movie Capture © 2012-2018 RenderHeads Ltd video will be produced. 6. For best real-time capture performance create a build and do your captures from the build running in full-screen exclusive mode (set in the Player Settings). 7. Capture a resolution that has a width that is a multiple of 16. This should allow best cache usage and SIMD instructions to be used during memcpy. 30 / 51 AVPro Movie Capture © 2012-2018 RenderHeads Ltd 10. Support Please contact us if you are in need of support or have any comments/suggestions regarding this product. Website: http://www.renderheads.com/portfolio/UnityAVProMovieCapture/ Support website: http://www.renderheads.com/contact/ Forum: http://forum.unity3d.com/threads/120717-Released-AVPro-Movie-Capture Feedback: https://goo.gl/forms/WB9W9v4vQtez6B1Y2 Email: unitysupport@renderheads.com 10.1 Bug Reporting If you are reporting a bug, please include any relevant information and details so that we may remedy the problem as fast as possible. Useful information includes: 1. Unity version 2. Operating system 3. GPU model 4. Rendering API (DX9 / DX11 / OpenGL) 5. AVPro Movie Capture plugin version 6. Screenshot of the bug 7. Output log 8. Which codec you are using 9. Which plugin component you are using (eg CaptureFromScreen) 10. A copy of the captured video file (if relevant) 31 / 51 AVPro Movie Capture © 2012-2018 RenderHeads Ltd 11. About RenderHeads Ltd RenderHeads Ltd is an award winning creative and technical company that has been designing and building cutting edge technology solutions since its formation in 2006. We specialise in creating unique interactive audio-visual software for installations at auto shows, museums, shows and expos. 11.1 Services ● ● ● Unity plugin development Unity game / interaction / augmented reality development Unity consulting 11.2 Jobs at RenderHeads We’re always looking for creative technical people to join our team. RenderHeads is an innovative software company that develops interactive experiences lead by high-end technology and beautiful graphics. We have created installations for Nike, Ford, Nissan, Dell, Intel, PwC, Shell, Cisco, and others. Our work also appears in the National Maritime Museum Greenwich, Museum of Science and Industry Manchester, Sheikh Abdullah Al Salem Cultural Centre Science Museum Kuwait and Guiness Storehouse Ireland. We create games for museums and brands, bespoke AR, VR and huge video wall experiences for shows, real-time visualisations for events and audio-visual products for developers and the broadcast industry. All of the software we develop is unique, and our clients have high expectations. We work with some of the latest hardware and software technologies, and each project gives us a new opportunity to explore the edge of possibility. RenderHeads offer a flexible working opportunity with remote or in-office working. We have offices in Cape Town, South Africa and Glasgow, Scotland, and team members working remotely from around the world. If you’re looking for a new opportunity to push the limits and create awesomeness, please read through the requirements below and email us at jobs@renderheads.com. Send us your CV and links to showreel, past projects or code examples. General Requirements ● You must be able to show a history of making software, either by professional 32 / 51 AVPro Movie Capture © 2012-2018 RenderHeads Ltd ● ● ● experience or personal projects Pragmatic software development approach - we ship software frequently Either very strong technical skills, or a mix of creative and technical skills Good communication skills - most of our communication is online, via Slack/Skype/Hangouts and email/Google Docs Positions we have available: Video Software Developer ● You would be developing in-house camera and video related software, including our AVPro series of Unity plugins, related to cross-platform video playback, streaming, capture and encoding ● Required experience: ■ Strong C++ ■ Multi-threaded programming ● Ideal experience: ■ C# and Unity ■ AVFoundation / Media Foundation / DirectShow / libAV / ffmpeg / gstreamer ■ DeckLink / NDI SDK ■ Low-level MP4 / H.264 / H.265 / HEVC / HLS / DASH / RTSP / RTP ■ Shader development ■ Camera / broadcast experience ■ 360 video workflows ■ 360 audio technologies Interactive Software Developer ● You would be creating software for a wide variety of technically challenging and creative projects, and implementing cool interactive experiences using the latest technologies ● Features of our typical projects: ■ Most development is in Unity ■ Visualisation and effects ■ Educational games ■ VR experience development ■ Integration with cameras, sensors and hardware ■ UI and animation development ● Required experience: ■ C# and Unity ■ SVN / Git ● Ideal experience: ■ iOS / Android development ■ An interest in UI and UX ■ An interest in improving workflow / tools ■ Shadertoy and other graphics rendering tech ■ Ability to travel (for on-site installations) 33 / 51 AVPro Movie Capture © 2012-2018 RenderHeads Ltd Senior Software Developer ● You would oversee the progress of the other developers in your team: making sure everyone is on track, helping to instill good development practices, helping to grow everyone’s experience and skills ● You would tackle some of the more difficult programming problems and make sure that the final software is of high quality ● You would also help to scope and plan the approaches for new projects, working closely with the other senior members ● Required experience: ○ Many years of software development ○ Many projects/products released ○ Optimisation ○ Unity and C# ● Ideal experience: ○ Graphics programming ○ An interest in improving workflow / tools (Jenkins, CI, Dev ops) 11.3 Our Unity Plugins Many of the apps and projects we develop require features that Unity doesn’t yet provide, so we have created several tools and plugins to extend Unity which are now available on the Unity Asset Store. They all include a free trial or demo version that you can download directly from the website here: http://renderheads.com/product-category/for-developers/ 11.3.1 AVPro Video Powerful cross-platform video playback solution for Unity, featuring support for Windows, OS X, iOS, Android and tvOS. 11.3.2 AVPro Movie Capture Video capture to AVI files direct from the GPU and encoded to files using DirectShow codecs. Features include 4K captures, lat-long (equirectangular) 360 degree captures, off-line rendering and more. Windows only. 11.3.3 AVPro Live Camera Exposes high-end webcams, tv cards and video capture boards to Unity via DirectShow. Windows only. 11.3.4 AVPro DeckLink 34 / 51 AVPro Movie Capture © 2012-2018 RenderHeads Ltd Integrates DeckLink capture card functionality into Unity, allowing users to send and receive high-definition uncompressed video data to and from these capture cards. 35 / 51 AVPro Movie Capture © 2012-2018 RenderHeads Ltd Appendix A - FAQ (Frequently Asked Questions) 1. How do I update to the latest version of this plugin? If you have purchased this plugin from the Unity Asset Store then you simply login to the store and check if there is a new version to update to. Make sure you do some from a newly opened Unity and without using the plugin, otherwise the native DLL plugin file can becomes locked and won’t update. 2. Does this plugin record the audio from Unity? Yes, if you use the UnityAudioCapture component you can record audio directly from Unity. 3. Where are my movie captures stored? By default the components auto-generate a filename each time you run a capture. These files are stored in the root of your project (the folder above “Assets”). You can always disable auto-generation of filenames in the component and specify your own file name and location for a capture. 4. How do I record in-game audio and microphone audio at the same time? Currently this plugin only supports recording audio from a single Windows audio device. There is a “trick” you can use though. In Windows 7 (and perhaps Vista) you may be able to set your microphone to play through the speakers by going to: Control Panel -> Sound -> Recording -> Select your microphone -> right click -> Properties -> Listen -> check "Listen to this device". You should then hear your microphone recording through your speakers. It’s recommended to use headphones during recording to prevent feedback from the speakers into the microphone. 5. How do I prevent Unity from freezing after doing a recording using the Xvid MPEG4 codec? Open the configuration for the Xvid MPEG4 codec and go to the “other options” page and make sure “Display encoding status” is not selected. 6. I’m using Autodesk ScaleForm and it’s glitching, how do I get it to record properly? ScaleForm doesn’t seem to like it when render settings (window size, vsync count) are changed while the app/game is running. This plugin removes vsync during 36 / 51 AVPro Movie Capture © 2012-2018 RenderHeads Ltd recordings which breaks the ScaleForm rendering. Just run your app/game using a quality settings that doesn’t have vsync. 7. How can I encode to MP4 container file instead of AVI? You can either use the Media Foundation H.264 codec, or you can use the x264 DirectShow codec which requires a MP4 muxer to be installed: You need to download the following codec: http://www.gdcl.co.uk/mpeg4/ Install it from the command-line using “regsvr32 mp4mux.dll” command via an Administrator command-prompt. In the AVPro Movie Capture plugin specify your target file name ending with “.mp4”. Here are some alternative installation instructions: a. Download the mpeg4.zip file from http://www.gdcl.co.uk/mpeg4/ b. Extract the zip to somewhere on your system (eg C:\Tools\mpeg4) c. Create a file called register.bat and edit it in notepad and paste the following: regsvr32.exe C:\Tools\mpeg4\x86\mp4mux.dll regsvr32.exe C:\Tools\mpeg4\x64\mp4mux.dll pause d. Save the file and close notepad e. Right click on the register.bat file and choose “Run as administrator” f. The script should run and register all 4 DLLs to your system Note that the MP4 container only support certain video and audio codecs (unlike AVI). We recommend using x264vfw video codec and Uncompressed / ADPCM audio codec. You may need to disable audio recording if you aren’t using the recommended audio codec. 8. I have compiled the scripts into a DLL and am now experiencing some unexpected behaviour. Some of our scripts have Unity version-specific preprocessor defines which determine how they compile (eg UNITY_5_2). Usually when you build an external DLL these defines are missing and so the incorrect version of the code can be compiled. You need to add the appropriate compiler defines to your build. 9. My videos aren’t capturing correctly, or they appear upside-down This can happen when Unity is using OpenGL emulation in the editor (which can happen when your built target is set to other platforms such as Android, iOS etc). Check your Edit > Graphics Emulation settings to make sure no emulation is being used. Check your File > Build Settings and for best results set this to “PC, Mac & Linux Standalone” then press “Switch Platform” and restart Unity. 37 / 51 AVPro Movie Capture © 2012-2018 RenderHeads Ltd 10. The plugin crashes when it starts, what could be causing this? The first thing the plugin does is enumerates all of the video and audio codecs and audio recording devices installed on your system. It is possible that there’s a problem with one of these. Try uninstalling all 3rd party codecs you have installed. Once you have it working you can being reinstalling the codecs again. We have found that the professional version of the Cinepak codec can caused this issue. 11. Why is my floating point accuracy changing, especially related to epsilon values when using Mathf.Approximately()? We’ve seen rare cases where enumeration of 3rd party codecs changing the FPU state which can affect Unity’s Mathf.Approximately() method. We saw this with the x264vfw codec, but it has been fixed in the latest version we tested (July 2017). Otherwise you can try uninstalling other 3rd party codecs. 12. How can I fix issues when also using the AVPro Live Camera plugin? We’ve had reports that if you adjust the script execution order then the two plugins will work better together: 13. How can I create transparent videos with an alpha channel? a. Select a video codec that supports alpha channels: i. Uncompressed ii. Lagarith iii. Cineform b. If you use Lagarith make sure it’s configured to Mode=RGBA and enable “Use Multithreading”. c. Use the CaptureFromCamera component and make sure “Support Alpha” is ticked. Or if you use the Editor Window select “Camera” as the source type and make sure “Support Alpha” is ticked on the Visual tab. 38 / 51 AVPro Movie Capture © 2012-2018 RenderHeads Ltd d. Set the background colour of your capture camera and set the alpha value to zero. e. Set the capture camera clear flags to “Solid Color” 14. How can I include the mouse cursor in my captures? The Windows mouse cursor is a hardware cursor and is not rendered as part of Unity - so it is not captured by default. You would need to assign a software mouse cursor texture which you can do in Player Settings, or you can use the MouseCursor component included. Only the CaptureFromScreen component supports capture of this mouse cursor. 15. How can I output to a named pipe? This is an experimental feature that allows the captured video to be written to a named pipe. This allows other software to listen for the incoming video frames. Change the CaptureFrom component Output Type to “Named Pipe”. Using FFmpeg you can connect to the named pipe: ffmpeg.exe -y -f rawvideo -codec rawvideo -s 640x480 -r 30 -pix_fmt rgb32 -i \\.\pipe\test_pipe -an -c:v libx264 -pix_fmt yuv420p output.mp4 You must start the capture and then run ffmpeg, otherwise it will not find the named pipe. Currently it only outputs in rgb32 format and you need to specify the resolution and frame rate. Audio isn’t supported. Another example showing how to stream a video: ffmpeg -r 30 -vcodec rawvideo -f rawvideo -pix_fmt yuv420p -s 1280x720 -i \\.\pipe\test_pipe -an -f rtp rtp://127.0.0.1:9090 16. Why is CaptureFromScreen just rendering black in Unity? Make sure you don’t have any other “Game” views open, especially ones for other display targets. 39 / 51 AVPro Movie Capture © 2012-2018 RenderHeads Ltd Appendix B - Version History ● Version 3.6.8 - 1 November 2018 ○ ● Bug fixes ■ Fixed a crash bug that sometimes happened when stopping the capture due to a threading issue Version 3.6.7 - 4 September 2018 ○ Bug fixes ■ ● Version 3.6.6 - 23 July 2018 ○ Improvements ■ ● Added faster and more accurate stereo 360 rendering via adding support for Unity 2018.1’s stereo cubemap rendering to the CaptureFromCamera360 component Version 3.6.5 - 9 July 2018 ○ Bug fixes ■ ● Fixed a memory leak that would happen at the end of each capture Fixed bug with audio capture of Unity audio (regression since 3.6.0) Version 3.6.4 - 7 July 2018 ○ Improvements PNG exporter now supports exporting without alpha Bug fixes ■ Fixed the PNG writer for high resolutions ■ ○ ● Version 3.6.2 - 6 July 2018 ○ Improvements ■ ● Exported PNG files now more compatible (eg Photoshop After Effects, Premiere, Nuke etc) Version 3.6.0 - 28 June 2018 ○ Improvements Simultaneous captures are now supported (BETA) Bug fixes ■ Fixed some codecs (such as MagicYUV) not being enumerated ■ Fixed errors when stopping a Stereo ODS capture from the Capture Window ■ ○ ● Version 3.5.2 - 1 June 2018 ○ Improvements ■ MP4 encoding can now applies the “fast start” patch which moves the ‘moov’ atom to the start of the file. This allows these videos to be directly streamed from websites or servers 40 / 51 AVPro Movie Capture © 2012-2018 RenderHeads Ltd The Movie Capture window is now persistent allowing it to capture across scene changes ■ Added new persistent option to prevent CaptureFrom components being destroyed during scene loads Bug fixes ■ Fixed instantiation issue where OnDestroy() would unload the entire plugin ■ ○ ● Version 3.5.0 - 25 May 2018 ○ Improvements ■ Added image sequence output mode with fast PNG support Moved all capture functions from Update() to LateUpdate() to fix issues where some game logic hadn’t been applied before the capture Bug fixes ■ Fixed issue where using Final IK with the “Fix Transforms” field ticked would result in the IK not being applied ■ Fixed issue where first frame of wouldn’t capture when using timelapse Other ■ Enabled compiler optimisations in native plugin ■ Many UI improvements ■ Corrected documentation steps for exporting transparent video ■ ○ ○ ● Version 3.4.4 - 23 May 2018 ○ Improvements Added new timelapse field to allow videos to be captured at a fraction of the rate at which they will be played back. The field timelapseScale controls this. If your video frame rate is set to 30 and timelapseScale is set to 2 then it will capture only at 15fps, but generate a 30fps video Bug fixes ■ Fixed rare issue where render functions could become null ■ Blocked FFDShow codec from enumerating as this old codec is quite buggy and could cause crashes Other ■ Improved version number function ■ ○ ○ ● Version 3.4.2 - 17 May 2018 ○ Improvements ■ Added new 180 degree capture mode to the 360 and 360ODS capture components 41 / 51 AVPro Movie Capture © 2012-2018 RenderHeads Ltd ○ ○ ● Bug fixes ■ CaptureFromCamera component now includes contributing cameras that are disabled in case they are enabled later ■ Script execution order of capture components changed from 100 to 29000 so capture happens later than user scripts Other ■ “View last capture” button now coloured to improve workflow Version 3.4.0 - 14 May 2018 ○ Improvements CaptureFromTexture now has logic to signal when the texture has changed, making texture capture more controllable, and capturing from webcam textures produce smoother results ■ CaptureFromCamera UI improved to make working with contributing cameras easier ■ API: videoCodecPriority field changed to a property so that it correctly calls SelectCodec() when changed ■ API: forceGpuFlush added to force the GPU to flush during each capture, which causes less latency but can reduce performance ■ Better codec enumeration so non-compressors are no longer included, and Logitech’s old video encoder is now excluded as it causes problems on some systems and isn’t generally useful Bug fixes ■ Fixed issue when using MF H.264 codec where pausing didn’t properly pause the internal clock Other ■ Webcam demo changed to only capture a single camera at once since multi-source capture isn’t working currently, and to use the new manual signal with CaptureFromTexture to make sure no frames are missing or duplicated ■ ○ ○ ● Version 3.3.2 - 23 February 2018 ○ Improvements UnityAudioCapture component can now be attached to other objects besides the AudioListener, such as the AudioSource component, and it can mute the audio once it has grabbed it Bug fixes ■ Fixed a bug where RenderTextures with generate mipmaps enabled couldn’t be captured ■ Fixed 360 stereo ODS capture problem with some image effects (such as HBAO) which needed reactivation ■ Fixed some shaders that had been automatically upgraded for newer versions of Unity so they’re backwardly compatible again Other ■ Updated all copyright messages to 2018 ■ Tested with Unity 2018.1.0b8 ■ ○ ○ 42 / 51 AVPro Movie Capture © 2012-2018 RenderHeads Ltd ■ ● Version 3.3.1 - 10 December 2017 ○ Bug fixes ■ ● Fixed shader compile error in Unity 2017.3 when single pass instanced stereo mode is enabled for VR rendering Version 3.3 - 9 November 2017 ○ Improvements ■ ■ ● Now also uploading versions using Unity 5.5 and 5.6 to prevent the script/shader upgrade warnings Major performance improvements by no longer stalling the GPU during capturing The mouse cursor now has an offset value for the hotspot and a scale slider Version 3.2 - 5 October 2017 ○ Improvements CaptureFromCamera now supports camera chains where multiple cameras contribute to the final render ■ Improved compatibility with older systems by not relying on some Media Foundation DLLs ■ Added a new option “_supportTextureRecreate” which now defaults to “off” which improves performance by removing a per-frame GPU sync point. Enable this option if you need to support texture recreation during a capture (for example when the GPU device is lost due to window resize or alt-tab when using exclusive fullscreen mode) ■ Improved inspector UI for audio source selection ■ Added MF H.264 capture option to CaptureGUI Bug fixes ■ Fixed some ODS 360 capture settings not being applied ■ ○ ● Version 3.14 - 7 September 2017 ○ Improvements Added new UI button to view the captured video immediately instead of via Windows Explorer ■ Improved support for capturing when using OpenGL emulation, which can happen when having the build platform not set to Windows Standalone ■ CaptureFromScreen component generates less garbage by caching the YieldInstruction ■ Improved encoded time display ■ Improved error messages ■ Improvements to UI Bug fixes ■ Fixed bug where capture window could not set the file name or extension ■ Fixed bug where Capture Window would add UnityAudioOutput ■ ○ 43 / 51 AVPro Movie Capture © 2012-2018 RenderHeads Ltd ■ ● Version 3.12 - 30 August 2017 ○ Bug fixes ■ ○ CaptureFromTexture and CaptureFromCamera360 components now no longer accumulate and render when capture is paused Minor ■ ■ ■ ■ ■ ● component to the main camera instead of to the GameObject with the AudioListerner Fixed the encoded time information for real-time captures Added helpful warning when using the profiler with 360 Camera ODS component. Have the profiler completely disabled (disable record, close the window, remove the tab and restart Unity), otherwise it will use too much memory when using ODS component. Added new “about” section to inspector Added a better check for plugin version mismatches Some improved texture cleanup and discards Improved camera 360 demo script to make cubes fall away instead of disappear Version 3.10 - 27 August 2017 ○ Upgrade Notes If upgrading from version 2.x then you must delete all of the files for any previous copies of AVPro Movie Capture in your project before importing this version. This is because many files have been renamed and the folder structure has changed significantly. Improvements ■ A preview of the captured frames is now displayed ■ Pause during offline rendering now pauses Unity by settings Time.timeScale to zero ■ Various minor UI and other improvements Bug fixes ■ Fixed deferred rendering support for stereo ODS component ■ Fixed motion blur timing and sample count issues ■ Fixed disabling MSAA when using deferred rendering with stereo ODS component ■ Fixed some anti-aliasing and cubemap depth states not being set sometimes ■ Added a workaround for a bug in Unity 5.6.0 - 5.6.1 (#902409) ■ Noted a bug in Unity 2017.1.0 - 2017.2.0 in CaptureFromCamera360 that causes the background to render white when camera clear mode is set to solid colour ■ ○ ○ ● Version 3.01 - 21 August 2017 ○ Upgrade Notes ■ If upgrading from version 2.x then you must delete all of the files for any previous copies of AVPro Movie Capture in your project before 44 / 51 AVPro Movie Capture © 2012-2018 RenderHeads Ltd ○ ○ ● importing this version. This is because many files have been renamed and the folder structure has changed significantly. Improvements ■ Added named pipe output option to the Capture Window and improvements to the inspector Bug fixes ■ Fixed some bugs related to using named pipes ■ Fixed some rare null exceptions that could happen when upgrading from previous version which used specific codec indices Version 3.0 - 11 August 2017 ○ Upgrade Notes If upgrading from version 2.x then you must delete all of the files for any previous copies of AVPro Movie Capture in your project before importing this version. This is because many files have been renamed and the folder structure has changed significantly. Improvements ■ Added Unity 2017 support ■ UI revamped to be easier to use and better looking ■ Huge code cleanup: moved everything into a namespace, classes renamed, code documentation improved, documentation updated etc ■ Added new Omni-Directional Stereo (ODS) capture component for capturing stereo 360 in a more accurate way. This new method is much slower and is intended for off-line rendering only. Based on: https://developers.google.com/vr/jump/rendering-ods-content.pdf ■ Added options to automatically stop the capture / render after a certain number of frames or seconds ■ Performance improvements, the capture no longer forces Unity to run at the capture rate ■ Exposed the Camera360 stereo options in the AVPro Movie Capture window ■ CaptureFromCamera and CaptureFromCamera360 components no longer require to be attached to a GameObject with a Camera. The camera can be set manually via the exposed field. If no camera is assigned it will try to find the Camera component on the same GameObject. ■ The free trial version is now on the Unity Asset Store and allows for 10 seconds of capture without any watermarking. Bug fixes ■ Fixed audio capture in Camera360 component ■ Fixed captures trying to use MSAA and Deferred rendering together ■ Fixed a bug where “Start Paused” option would be ignored ■ Fixed issue where UnityAudioCapture component would be enabled when capture started with StartPaused option and Pause/Resume wouldn’t toggle enabled status of UnityAudioCapture component ■ Fixed “Open Last Capture” sometimes not storing the last capture ■ ○ ○ 45 / 51 AVPro Movie Capture © 2012-2018 RenderHeads Ltd ● Version 2.99 - 11 April 2017 ○ Improvements Added stereo rendering support to the 360 camera capture component. 360 captures can now be rendered in mono, stereo top-bottom or stereo left-right Bug fixes ■ Fixed a memory leak in the Media Foundation recorder ■ ○ ● Version 2.98 - 7 April 2017 ○ Improvements Texture capture component is now much faster Motion blur capture now works with the Surround 360 and Texture capture components ■ Added option to include mouse cursor in the capture ■ Texture capture demo improved ■ Increased capture resolution limit from 8K to 16K Bug fixes ■ Fixed audio delay when capturing webcam and microphone ■ Removed dependency on Media Foundation so older versions of Windows are supported again ■ Various fixes made to the motion blur component ■ ■ ○ ● Version 2.96 - 6 March 2017 ○ Improvements 360 surround capture can now render uGUI elements when canvas is set to camera or world modes. ■ 360 surround capture now supports camera rotation ■ Fixed 360 surround capture orientation, as it was flipped horizontally ■ Improved motion blur support in 360 camera capture ■ Added Media Foundation capture option to Editor window UI / Workflow ■ Editor window UI improvements, including context hiding and usage warnings Bug fixes ■ Fixed FromCamera capture bug where build captures would render black to the screen ■ Fixed bug where editor window would unnecessarily spawn AudioCapture component ■ Fixed bug where audio capture component would be accessed when it shouldn’t ■ Fixed crash bug in webcam demo ■ ○ ○ ● Version 2.94 - 27 September 2016 ○ Fixed issue where camera captures would freeze when vsync changed ● Version 2.92 - 26 September 2016 46 / 51 AVPro Movie Capture © 2012-2018 RenderHeads Ltd ○ ○ ○ ● Fixed support for capturing transparency Improved robustness for enumeration of buggy audio devices Update documentation Version 2.90 - 16 September 2016 ○ ○ ○ ○ ○ New Features ■ New 360 degree equi-rectangular capture for VR ■ Better support for VR capture ■ Real motion blur feature for added quality to offline captures (BETA) ■ Captures from Camera can now be higher resolution than displayed allowing capture resolutions over 3840x2160 ■ Captures from Camera can now have custom anti-aliasing settings ■ Experimental Media Foundation H.264 (MP4) encoder Changes ■ Added 75, 90 and 120 FPS capture modes for VR ■ Added variables to disable vsync and frame rate changing ■ Stop function now has parameter to skip processing of any pending frames - useful for canceling a capture quickly. Also added new CancelCapture() function which stops capturing fast and deletes the capture file. ■ Better capture of physics simulations in off-line capture mode ■ Now stops recording when disk space is too low instead of crashing ■ Added setting to start capturing in a paused state ■ Dropped support for older versions of Unity, project now built with Unity 4.6 ■ Tested up to Unity 5.4 ■ Project files rearranged UI / Workflow ■ Editor window layout improvements ■ Component editor layout improvements Optimisations ■ Capture from Camera and RenderTexture much faster Bug fixes ■ Fixed linear color-space capture issues ■ Fixed crash bug on 64-bit builds when creating lots of captures ■ Fixed audio recording latency issue when using pause/resume ■ Fixed audio capture from Unity non-threaded issue causing clicks in recordings ■ Fixed codecs not showing config options sometimes ● Version 2.72 - Monday 15 June 2015 ○ Fixed Unity 5.1 support ● Version 2.70 - Wednesday 27 May 2015 ○ Fixed 64-bit VFW video codec enumeration issue ○ Fixed issue where multiple codecs could not be used at once 47 / 51 AVPro Movie Capture © 2012-2018 RenderHeads Ltd ○ ○ ○ ● Version 2.64 - Saturday 18th April 2015 ○ Unity 4.6 and 5.0 support added ○ ○ ○ ○ ○ ○ ● ○ ○ ○ ○ ○ ○ ○ ○ ○ Minor improvements to UI Version 2.46 - Monday 8 January 2014 ○ Added recording stats (file size and time) ○ ○ ○ ● Added script to automatically copy the DLL files during installation Added better output path options Added support for more YCbCr formats Improved in-editor GUI to allow capturing from specific camera Various minor fixes to the demos Fixed some script issues on non Windows platforms Version 2.48 - Wednesday 15 January 2014 ○ Fixed crash bug when system has no codecs or devices ○ ● Removed usage of deprecated Unity functions Added display of output frame resolution to UI Video file now deleted before recording to prevent AVI bloat Version 2.5 - Monday 24 February 2014 ○ Added new trial version ○ ● Unity audio capture now supports speaker modes other than stereo Improved error reporting Improved vsync handling Version 2.52 - Thursday 27 February 2014 ○ Fixed unnamed scene recording bug ○ ● DX11 GPU red-blue swap and downscaling Dropped official Unity 3.x support, minimum version supported is now 4.0 Fixed audio recording freeze bug Better plugin folder structure Faster watermarking Added experimental writing to ‘named pipes’ Version 2.55 - Monday 28 July 2014 ○ Unity 4.5 support ○ ● Improved demo capture dialog so it shows recording stats Improved webcam demo to allow recording of multiple webcams Fixed crash bug in watermarking Improved recording stats GUI Fixed editor launch crash bug when using non Windows built settings Added OpenGL emulation notes to FAQ for captures appearing upside-down Version 2.44 - Monday 6 January 2014 ○ Fixed editor error message when launching configure dialogs 48 / 51 AVPro Movie Capture © 2012-2018 RenderHeads Ltd ● Version 2.42 - Monday 30 December 2013 ○ Fixed y-flip bug ○ ○ ● Version 2.4 - Friday 27 December 2013 ○ Added codec configuration dialog support detection ○ ○ ○ ○ ● ○ ○ ○ ○ ○ ○ ○ ○ ○ Added audio recording directly from Unity Fixed GL.IssuePluginEvent() conflict bug with other AVPro plugins Fixed DX11 recording in Unity 4.0 Fixed bug in audio codec listing Renamed and restructured code Version 1.8 - Tuesday 18 December 2012 ○ Added audio codec enumeration ○ ○ ○ ● Fixed some platform #if issues Version 2.0 - Monday 12 March 2013 ○ ● Added support for Unity 4.2 Added automatic DLL swap for 64-bit builds Fixed some material leaks Fixed DX11 colour swap and flip bug Version 2.02 - Monday 18 March 2013 ○ Added Unity 4.1 support ○ ● Scene capture no longer requires a camera Added new EditorWindow widget for easier capturing from Editor Improved documentation for best codec settings Version 2.2 - Thursday 22 August 2013 ○ Added support for writing to MP4 container ○ ● Reduced CPU usage of new EditorWindow widget Improved codec lists in new EditorWindow widget EditorWindow can now play the scene to start recording Improved documentation Version 2.3 - Wednesday 4 December 2013 ○ Added proper fast native DX11 support ○ ● Fixed camera capture bug using wrong texture size Fixed DX11 viewport capture bug Added Unity 4.0 support GUI improved Added more demos Version 1.6 - Thursday 6 September 2012 ○ Added ability to pause movie capture ○ ○ Scene capture resolution can differ from Screen resolution Inspector: displays capture rate and has buttons to control capture 49 / 51 AVPro Movie Capture © 2012-2018 RenderHeads Ltd ○ ○ ○ ○ ○ ○ ● Less CPU usage Optimisation: removed software RB channel swap Optimisation: removed per-frame memcpy Optimisation: removed vertical flip GUI layout improved Lots of source cleaning up Version 1.5 - Monday 6 June 2012 ○ Improved smoothness of captures significantly. ○ ○ ○ 64-bit Windows support added. Added GUI to easily set up recordings (taken from previous demo scene). Added code to detect dropped frames during encoding. ● Version 1.4 - Thursday 15 March 2012 ○ Much faster capturing due to new Unity 3.5 native API features. ● Version 1.3 - Friday 17 February 2012 ○ Added audio for testing audio recording. ○ ● Autodetection of loopback audio devices. Version 1.2 - Saturday 4 February 2012 ○ Added ability to capture GUI. ○ ○ ○ ○ ○ ○ ○ ○ ○ Added audio capture. Added resizing to half, quarter, eighth resolution. Improved capture performance and smoothness by only preparing the frame capture data when the encoder requires it. Automatic disable of vsync helps performance. Rounding to multiple of 4 resolution to help codec compatibility. Added ability to set target frame rate (15, 24, 30, 60). Added ability to set own file name. Video codecs can now be configured. Fixed various minor bugs. ● Version 1.1 - Tuesday 24 January 2012 ○ Removed Vista/Win7 dependency (WMV). ● Version 1.0 - Thursday 17 January 2012 ○ Initial release submitted to Asset Store. Appendix C - Road Map ● Version 3.x -? ○ ○ ○ ○ Expose MF H.265 codec Enumeration of MF codec parameters Safer threaded GPU rendering path Multi-capture instances at once 50 / 51 AVPro Movie Capture © 2012-2018 RenderHeads Ltd ○ ○ ○ ● Capture only a region of the screen/texture Export depth and other deferred channels Add estimated file size and time to render progress Version 4.x - ? ○ ← Your suggestion here ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ Add support for specifying regions? Improve code documentation? Recompile with newer version of VS? Super-resolution for “screen” capture? Fix H.264 initial freeze bug? Support floating point audio to integer conversion? Add audio delay support? Bicubic downscaling? Investigate windowed mode and vsync-on capture bugs Embed DirectShow MP4/MOV container support Fix mp3 audio recording if possible GPU context manager GPU context per recorder Commandbuffer support for ordering to exclude IMGUI Motion blur demo scene 51 / 51 AVPro Movie Capture © 2012-2018 RenderHeads Ltd
Source Exif Data:
File Type : PDF File Type Extension : pdf MIME Type : application/pdf PDF Version : 1.4 Linearized : No Page Count : 51 Creator : Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36 Producer : Skia/PDF m68 Create Date : 2018:10:31 19:51:40+00:00 Modify Date : 2018:10:31 19:51:40+00:00EXIF Metadata provided by EXIF.tools