Images2Video[Release]



Images2Video
Images2Video is a script tool which can help you to convert a series of images and a audio file into a H264 mp4 video file.

Simple and easy to use it

  • We wrap the complex functions as an single C#, VideoConverter, and make it easy for use.

  • Just three steps,

  • Initialise required parameters, such as fps, the audio file path and image size.

  • Pass images data bytes and begin to merge data.

  • Finish the merging and close the video file.

  • The generated video file will be save in the album.

  • A simple scene, ScreenshotExample is included with sample scripts which demonstrate its functionality.

Please check README file in the plugin to get more information.
Specifications

  • - Using native iOS/Android API functions*
  • - Support iOS and Android*
  • - OpenGL ES 2.0/3.0 on Android*
  • - Metal/OpenGL ES 3.0 on iOS*
  • - Tested on Unity 2017.03*
  • - Optimized for great performance*
  • - Export H264 mp4 format video*

Any feedbacks and questions are welcome, you can send the mail to service@championtek.com.tw.

Images2Video[Update version 2.1.0]

  • Add two new example scenes to demonstrate how to merge images to the video and render screenshots then merge images to the video.
  • Record the texture in realtime.
  • Implement the function which gets the render data from frame buffer to improve the performance.

Is this still supported?

Sure. We still provide the technical support.

When using VirtualCamera.cs in the latest version of the asset (3.0.5) on iOS 11, in each recording around 40 frames are not recorded.

If videoConverter.ConvertFrameBufferToVideo() is called 180 times during a recording, only 140 frames are output in the final video. In previous versions of your plugin (3.0.0), if that function is called 180 times, 179 frames are output in the final video.

These frames appear to be missing from the front of the recording. How can I make sure that the final output video contains as many frames as are called using videoConverter.ConvertFrameBufferToVideo?

Thank you!

Since while recording the screen, the FPS sometimes drop down, to make sure converting the video with the correct FPS, we use the first 40 frames to determine the real FPS.

If you call ConvertFramrBufferToVideo manually, you can call it with additional 40 times.

Sorry about this!

BR,

Isaac

Thank you for the prompt response, I think I have a good sense of what is going on.

In my opinion this is the wrong way to handle this. The framerate that the Unity developer sets in the Unity application should be the framerate of the output video. Every frame that the Unity application sends to the plugin should be in the output video.

The plugin definitely should not be changing or estimating the framerate behind the scenes.

The plugin absolutely should not be dropping any frames the Unity application sends to the video encoder.

I understand that if there are dropped frames the video will not playback in realtime. But it should not be the Plugin developer’s job to handle this. It is the Unity developer’s job to make sure that the application runs without dropped frames while recording video.

Even with variable framerate estimation, it’s a big assumption that you would be able to estimate the application’s overall performance in just 40 frames. The current functionality is unreliable and too unpredictable.

For the time being I can modify the source code to get the plugin working. Please consider modifying this behavior, or making an alternate version of the virtual camera that takes an ā€œabsolute framerateā€ opposed to estimating a ā€œrelative framerateā€, and records every frame the application requests.

We appreciate your suggestion.
We will put it on our bug track and fix it ASAP.

Hi, any working demo APK to test on? I want to buy this asset to record video as final output

Hello, I’ve recently purchased your plugin. I’m testing videos recorded with a Samsung Galaxy S5, and I’m using OpenGLSE3 for the graphics api, but the resulting video is just coming out as a black screen. Do you have any advice on how to troubleshoot this? If I force OpenGLSE2 it works but the performance in my app is very slow

Hi, i have an issue with demo scene ā€œVirtualCameraExampleā€.
I’m using the Pixel phone and Unity version is 2017.2.0f3.
When I run the demo scene and touch the ā€œBeginā€ button, recording seems to work.
But after about 10~15 seconds the app dies.
Can you check on this?
Thank you.

Can you please update the sourcecode to the latest version (source code appears to be version 3.0.4) so I can fix this issue? Thanks.

Finally, we have completed OpenGL ES 3.0 support for iOS and submitted it.
This version, 4.0.0, fix OpenGL ES 3.0 bugs on Android devices, especially on Samsung devices.

We appreciate whom use our plugin and give us many feedbacks to improve this plugin.

Cheers!

1 Like

We are working on capturing the render texture of Vuforia ARCamera.
Since it’s almost done, just need time to test.

Thanks all that give us feedbacks to improve this plugin!

Hey. We bought your plugin. However, for androids, he is not a worker. On the test scene ā€œVirtualCameraExampleā€ on the device, we get errors.
E/Images2VideoJNI: after glReadPixels() glError:GL_INVALID_FRAMEBUFFER_OPERATION
As a result, the video is just black. How can I correct this error.

Hello,
Which plugin version you use? And which kind of OpenGL ES version you set?
This error means that you device does not support OpenGL ES 3.0.

Could you also provide your mobile device model?

BR,

Isaac

Plugin Version 4.0.1
Graphics API in Other settings set as: OpenGLES3
Mobile: YotaPhone 2: (OpenGL ES 3.0 Adreno ā„¢ 330) https://gfxbench.com/device.jsp?benchmark=gfx40&os=Android&api=gl&D=Yota+Yotaphone+2+(YD201%2C+YD206)&testgroup=info

Galaxy Note4: (OpenGL ES 3.0 OpenGL ES 3.1 Mali-T760)
https://gfxbench.com/device.jsp?benchmark=gfx40&os=Android&api=gl&D=Samsung+Galaxy+Note+4+(Mali-T760%2C+SM-N910x%2C+SM-N916)&testgroup=info

Hello Jarold,
Could you check the order of the graphic apis in Player Settings>Other Settings>Graphics APIs?
You can uncheck Auto Graphics API to see the order.

Thanks

Yes, I can…

The plugin crashes immediately on startup when Vuforia is included in the project.

UnityGfxDeviceWorker (15): EXC_BAD_ACCESS (code=1, address=0x1)

Images2Video 4.0.2
Vuforia 7.0.47
XCode 9.2