CameraInput.UseAndroidGLESTextureInput
field to automatically use GLESTextureInput
to improve recording performance on Android with OpenGL ES3.ScreenInput
recorder input for recording the screen. This will typically have better performance than CameraInput
, and can also record overlay UI canvases.NatSuite.Recorders
to NatML.Recorders
.NatCorder.framework
in Release mode to avoid build issues when using Unity as a library.NatCorder.framework
. Developers must code sign when building.NatCorder.bundle
to avoid Apple Store validation errors.CameraInput
memory footprint and performance.WAVRecorder
memory footprint.TextureInput
and AsyncTextureInput
classes for recording video frames from textures.MP4Recorder
and HEVCRecorder
.IMediaRecorder.CommitSamples
overload which takes a pointer to a sample buffer in native memory.CameraInput
. It will use the setting defined in the project's Quality Settings.AudioInput
constructor overload that does not take a clock, for recorders that do not need timestamps.CameraInput
constructor overload that does not take a clock, for recorders that do not need timestamps.IllegalStateException
crash caused by video encoder on Android.IMediaRecorder.CommitFrame
native buffer overload to use unsafe void*
pointer instead of IntPtr
.FixedIntervalClock
constructor overload which accepted a timestamp interval, as it was ambiguous.JPGRecorder
performance characteristics.WAVRecorder
that produced corrupted recordings.WebCamTextureInput
class.NatSuite.Recorders
for parity with other NatSuite API's.async
pattern for recording callback using IMediaRecorder.FinishWriting
method, greatly simplifying recording code.WAVRecorder
for recording to waveform audio files.WebCamTextureInputAttachment
for recording video frames from a WebCamTexture
.IMediaRecorder.FinishWriting
so that developers can handle recording failure in code.IMediaRecorder.Dispose
method.IClock.Timestamp
to IClock.timestamp
.FixedIntervalClock.Interval
to FixedIntervalClock.interval
.IMediaRecorder.frameSize
tuple property.IMediaRecorder.pixelWidth
and IMediaRecorder.pixelHeight
properties.CameraInput
on Android.JPGRecorder
for recording to a jpg
image sequence on macOS and Windows.CameraInput.Dispose
is called.CameraInput
to record MP4 on iOS.RenderTextureInput
.RenderTextureInput
to take timestamp with committed frame instead of an IClock
in constructor.FixedIntervalClock
.CameraInput
or RenderTextureInput
is stopped on Android.IMediaRecorder.CommitFrame (IntPtr, long)
that takes a pointer to a buffer in native memory.RenderTextureInput
helper for committing video frames from RenderTexture
s.HEVCRecorder
on Android. This recorder will only work on Android 24+.NoSuchMethodError
exception when recording on certain Android devices.RealtimeClock
pausing causing recording to fail.HEVCRecorder
. This is currently supported on iOS, macOS, and Windows.IMediaRecorder.CommitFrame
method now accepts a pixel buffer instead of a RenderTexture
. This means you can commit a byte[]
, Color32[]
, or any other pixel buffer array.IMediaRecorder.AcquireFrame
method has been removed.IMediaRecorder
implementations are now completely thread safe. As a result you can now record in a background thread, hence improving general performance.pixelWidth
and pixelHeight
getter properties to instances of IMediaRecorder
.WebCamTexture
to a video.RealtimeClock.IsPaused
getter property to RealtimeClock.Paused
read-write property.FixedIntervalClock.Advance
method to FixedIntervalClock.Tick
.RealtimeClock.Pause
and RealtimeClock.Resume
methods.FixedIntervalClock.AutoAdvance
property. You must now manually Tick
the clock.CameraInput
.CameraInput
to use instance constructor instead of static factory method.AudioInput
to use instance constructor instead of static factory method.NatCorderU.Core
to NatCorder
.NatCorderU.Core.Recorders
to NatCorder.Inputs
.NatCorderU.Core.Clocks
to NatCorder.Clocks
.CameraRecorder
to CameraInput
.AudioRecorder
to AudioInput
.IClock.CurrentTimestamp
to IClock.Timestamp
.NatCorder
class.RecordingCallback
delegate type.Container
enum.VideoFormat
struct.AudioFormat
struct.IRecorder
interface.CameraRecorder
..mp4
instead of .mov
file when recording MP4.FixedIntervalClock
for generating timestamps to maintain a constant framerate in recorded videos.CameraRecorder
. This will ensure that videos will not appear stretched in the case of app autorotation or uneven recording sizes.BufferOverflowException
when recording with audio on some Android devices.DllNotFoundException
when running on macOS.VideoFormat.Screen
property. Manually create a video format with your intended resolution.CameraRecorder.recordingMaterial
property. Use Image Effects instead.IClock
interface and RealtimeClock
class. Clocks are lightweight objects that generate extremely accurate timestamps for recording. They allow for audio to be perfectly synchronized with video when recording with audio.Recorder
classes with the new Clock
infrastructure.NatCorder.CommitFrame
to take in a RenderTexture
with a corresponding timestamp.NatCorder.CommitFrame
is called on iOS.CameraRecorder
destroying recording material once recording is finished.NullPointerException
crash when recording MP4 on Android.AudioRecorder.Create
overload that took in both an AudioSource
and AudioListener
.Frame
class.Recorders
namespace, VideoRecorder
component, and AudioRecorder
component for quickly recording different gameobjects like cameras and audio sources.Container
enumeration for specifying container format for recording (MP4 or GIF).VideoFormat
and AudioFormat
structs for configuring recording.IsRecording
properly changes immediately after StartRecording
and StopRecording
.RecordingCallback
being invoked on WebGL.VideoCallback
to RecordingCallback
.Replay
API.IAudioSource
interface.Configuration
struct.file://
protocol.Replay
API, aspect fitting will be applied to prevent stretching in the video.Microphone
API. Use UnityEngine.Microphone
instead.NatCorder.Verbose
flag.sampleCount
property in IAudioSource
interface.StartRecording
is called on iOS running OpenGL ES2 or ES3.FileUriExposedException
when Sharing.Share
is called on Android 24 or newer.Sharing.GetThumbnail
not working on iOS.Sharing.SaveToCameraRoll
failing when permission is requested and approved on iOS.Sharing.SaveToCameraRoll
not working on Android.Microphone
API in NatCorderU.Extensions
namespace.Configuration.Default
to Configuration.Screen
.