iVidCapPro is an iOS plugin that enables you to capture video and audio from your Unity iOS application.
iVidCapPro is great for recording video trailers, demos and in-app footage for your Unity-based game or app. It’s fast, flexible and easy to use. It runs wholly on the device and does not require a network connection.
Here are some of the features of iVidCapPro:
Record real time footage
Great for demos, trailers, and replays
Record at any resolution
Record your app in 720p or even 1080p. Need 512×512 for a special project? You got it.
Record at fixed framerate
If you don’t need real time rendering, but want a really high quality recording, you can pick your target framerate. 30fps? 60fps? Your choice.
Record from multiple cameras simultaneously
Have a separate camera for the GUI and the game character and want to record them simultaneously for a demo? You can do that.
Camera based recording
It’s not just full screen capture. Any Unity camera can act as a video camera.
Record from rendertexture
If you have your own secret recipe for cooking up a video source, iVidCapPro gets out of your way. Just point it at a rendertexture and it’ll make a video out of it. No cameras required.
Record scene audio
Choose an audio listener and capture it. The audio capture component has its own gain control, so you can get the video volume just right without disturbing your in-app mix.
Record a voice over
Maybe you’re making a demo of your app or game and want to add commentary. Just tell iVidCapPro to record from the mic in addition to the scene. Use the device’s built-in mic or a headset mic.
Supply prerecorded audio
Have prerecorded audio that you want to add to the video? iVidCapPro lets you choose up to two audio files to mix with the finished video.
Adjust video quality settings
Configure the bitrate and keyframe interval to get the balance you need between video file size and quality.
Adjust video gamma
Need to tweak the video brightness to get the right look? It’s here.
Full destination control
Have the finished video copied to the device Photo Album. Or store it in your app’s Documents folder. Control of the video is in your hands and those of your customer. No servers. No accounts. Use of the videos from your app can be totally unlimited or fully restricted. You decide.
FAQ
How much does it cost?
It’s free.
Why is it free?
iVidCapPro will not be officially supported by the author. You can get the details about this on the eOe web site here. In brief, the demands of a full-time job and other projects make it impossible for me to provide maintenance support for this plugin. So I am offering the plugin itself and all its source code to the community. I hope it will be useful to some of you. Take it. Go forth. Do good.
Can I use it in my commercial products?
Yes.
Can I repackage it and sell it on the Unity asset store?
No.
Is iVidCapPro the same as iVidCap on the asset store?
No. iVidCapPro is the spiritual successor to iVidCap but is a new code base. iVidCapPro is faster and has more features. iVidCap is deprecated.
Not out-of-the-box, no. However the initial audio recording (pre-mixing with the video) is handled via a C# script that is included with the project, so it would be very straightforward to invoke it directly for your own purposes. In this case the audio will be saved as a .wav file.
I’m excited about this free plugin, thanks for sharing. I’m trying to get it working, but a crash is occurring at startup. I can’t figure out what the problem as Xcode just stops. something to do with m_iVidCapPro_SampleManager_Start.
I’m using an iPhone 6+ as the test device. No audio. I have the iVidCapPro script attached to my only camera. Also created an empty game object and dropped the sample manager onto it. Assigned the camera to both slots for vr_controller AND main camera. Does this seem correct? Just trying to shed some light on this. When I run outside of Xcode, the app still runs and I can see the vid capture demo UI. When I click record, I don’t see anything happening. Then I click stop and copy to album, but I never see anything in the albums. Should I be seeing any indication that recording is taking place?
Hi. You’re welcome. Let’s see if we can get it working with your project. 8^)
Your setup doesn’t sound quite right. Try this instead:
Create an empty game object called “Video Recorder”. Add the iVidCapPro and the iVidCapProEdit components to it.
Add the iVidCapProVideo component to your camera.
Select the VideoRecorder object from step (1) and set the “VideoCameras” property. Add one entry to the list. Set the entry to reference the camera that contains the iVidCapProVideo component.
Create another empty game object called “Sample Vid GUI”. Add the iVidCapPro_SampleManager object to it.
Set the “Vr Controller” and “Ve Controller” properties to the Video Recorder object.
Set the “Main Camera” property to your camera.
Leave the Main Listener, Secondary Camera, Secondary Listener, Custom Render Texture set to None.
Set the Game Skin to the included iVidCapPro_SampleGUISkin.
Check “Show Debug”.
This setup is more complicated than is necessary because the SampleManager does a bunch of extra stuff. It really needs to be reworked to be more streamlined and use the new uGUI support.
Video will not be recorded when you run in the editor. It is only recorded on the device. If you are running with debug enabled, however, you will see messages printed in the editor that will let you know that the plugin is working.
You can find more information about the plugin in the blog posts and subsequent comments here: www.eccentric-orbits.com
Thank you so much for the great support. I created an new project from scratch along with a plane and sphere, in order to follow your steps; which were very clear (so thanks for providing them). I was certainly way off with how I had it setup LOL. Anyway, when I tested the script I got the following error in Xcode:
One quick question, does the video capture not record any unity UI, wether the old GUI or new UI? Guess I was thinking the limitation was for the old unity GUI. My video capture worked great, except none of the UI buttons were captured. Thanks.
Thanks for sharing this plugin I got version 1.6 working in my project without any problems after forcing the graphics api to OpenGL ES 2.0 instead of Automatic (Metal).
Does anyone know if something similar exists for Android?
Have a few question here, I learning to used your iVidCapPro plugin, and manage to build it to my ipad device. When I press recording it show me on the GUI that it is recording, and when i pressed stop recording, a notification pop up and told me that the video is being save and i can look it in gallery,
The problem here, i cannot find my recorded video, try to search for the name “samplevideo.mov” still cannot find the file…
It’s possible you have a version of the code in which the Sample Manager has the video action for endRecordingSession set to Copy_To_Documents. Please make sure the code on or about line 598 in file iVidCapPro_SampleManager.cs looks like this:
Thank you…manage to save the video to my library now…
But I’m trying to record my own voice…and I change the code on line 387
// Has audio recording from the scene been requested from the GUI?
iVidCapPro.CaptureAudio audioSetting = iVidCapPro.CaptureAudio.No_Audio;
if (arCap != null && (audioSourceState == AudioSource.Scene || audioSourceState == AudioSource.All))
{
//audioSetting = iVidCapPro.CaptureAudio.Audio;
audioSetting = iVidCapPro.CaptureAudio.Audio_Plus_Mic; //this is line 387
}
it did record my voice, but it play my voice at the same time when I’m in recording mode…is it suppose to do that?
and I would like to know, does this plugin can playback what has been recorded earlier from inside the app? for example I have recorded some footage, I can replay it back again from the app with out saving the footage to my library.