unity3d-jp / framecapturer Goto Github PK
View Code? Open in Web Editor NEWexport framebuffer, GBuffer or any RenderTextures from Unity to file. supported format: png, exr, gif, webm, mp4
License: MIT License
export framebuffer, GBuffer or any RenderTextures from Unity to file. supported format: png, exr, gif, webm, mp4
License: MIT License
G-Buffer not working on 2018 Beta HD Pipeline
This is Unity Editor's issue.
On Windows & Unity 2017.1 beta (b5, b4, b3. maybe also other versions), any components that implement OnAudioFilterRead() cause editor crash. The workaround is just comment out OnAudioFilterRead() in MovieRecorder. It disables audio recording but no other woraround for now.
I'm sorry if I'm missing something obvious, but it looks like the current version of the project is not including the fccore.dll. Running the sample scene results in nothing but "DllNotFoundException: fccore" messages.
I haven't been able to record audio to MP4 videos created with FrameCapturer.
The fcAPI.fcMP4AddAudioFrame(m_ctx, samples, samples.Length);
method is called but an audio track is never created on the MP4 file. Is this a known issue?
On PC, exporting to MP4 is very smooth, but the WebM-only support on Mac is very rough/choppy. Any plans or timeline on improving video recording support on Mac?
Nvidia NVENC encoding would relieve the CPU of encoding time making it faster ๐
I am using MovieRecorder with output PNG:
My camera has a background of alpha 0 and has a render texture with transparency (RGBA32).
When I use a script to encode my 2D texture as PNG it saves with transparency. When I use FrameCapturer it does not save with transparency.
I set the capture target to both Frame Buffer and Render Texture and no difference.
Is there something I am missing? Could this be changed?
i was using an old version of this plugin that used "fcAPI.fcMP4AddVideoFrameTexture" to capture video. this seemed to work really well.
i updated to the latest yesterday, and this new method seems to be destroying my framerate after 1 second of recording - fcAPI.fcMP4AddVideoFramePixels. like my vr game goes down from 90fps to <1 fps.
any idea what's going on here?
I am trying to capture a talking head in the game window but using the default video capture settings and hitting play, plays the talking head but nothing is saved in the capture dir - what am I missing?
Thanks,
Phil.
This appeared when I'm using FrameCapturer on MacOS, Unity 2017.0f1. But I can see that there are some plugins, and I guess that fccore.bundle is for MacOS?
Since you are using the nvEncodeAPI for encoding, a good thing to have would be HEVC encoding. This is much faster and allows for higher output resolutions (up to 8k at near realtime speeds).
I am trying the png recorder and I want it to record Large frames (6048x4023). It will create the frames in that size but they will contain only upscaled images. I imagine the framebuffer that is being captured should be sized up also?
Rather than writing to file, I'd like to have the captured frame put into a Queue<byte[]> or a Queue<Color[]>. I have managed to figure out how to do this, however, I am struggling to use the outputted frames. For example, I send the frame over the network, to a remote machine where the frame is to be displayed. How can I load the frame into a texture? I have tried Texture2D.SetPixels32 and Texture2D.LoadRawTexture, but neither of them work (they work when I send data across the network obtained using Texture2D.GetRawTextureData).
Does this plugin perhaps already have this capability? Perhaps I can stream the video being captured to a remote machine and if so, could I read in at a frame-by-frame basis?
I thought "CameraEvent.AfterEverything" might have included the interface stuff, being that its called 'AfterEverything'.. it seems not.
I want to use this plugin for android and ios real time recorder; but i find this plugin is just for win and mac without rebuild source.
Can i build source for android and ios to record ?
How to reproduce:
Result: Unity crashes
Top of stack trace:
========== OUTPUTTING STACK TRACE ==================
0x000000005C9DAD93 (Mono JIT Code) (wrapper managed-to-native) UnityEditor.Recorder.FrameCapturer.fcAPI:fcReleaseStream (UnityEditor.Recorder.FrameCapturer.fcAPI/fcStream)
0x000000005C9DAC33 (Mono JIT Code) [C:\Users\G-PC\Downloads\cinemachine_test\Assets\Unity Recorder\Editor\Sources\Recorders_Legacy\FrameCapturer\Scripts\Encoder\fcAPI.cs:70] UnityEditor.Recorder.FrameCapturer.fcAPI/fcStream:Release ()
0x000000005C9DA803 (Mono JIT Code) [C:\Users\G-PC\Downloads\cinemachine_test\Assets\Unity Recorder\Editor\Sources\Recorders\GIFRecorder\GIFRecorder.cs:24] UnityEditor.Recorder.GIFRecorder:EndRecording (UnityEditor.Recorder.RecordingSession)
========== END OF STACKTRACE ===========
All the output I get using the MovieRecorder Component (the 32byte file).
20170711_121050.zip
Tried using the dev branch but the dll's are missing from the unity project.
[update]The dll's are being ignored in the github repo by the looks of it[/update]
Thanks, I like the idea of this project.
This can be really convenient for some debugging tools and to advertise new features.
I did some test with a small project (unity2d)
But the performance of Gif recording is poor, I tried to set the resolution to 480p and the framerate is horrible and there are lot of Jittering.
The same king of setting with Mp4 Recorder is smooth at 60 fps
Hi,
I have some issues, when I integrated a GifRecorder with MovieRecorderEditorUI.prefab or MovieRecorderUI.prefab, I had no preview in UI and it's impossible to save the record.
I taked the time to import FrameCapturer.Unitypackage and FAACSelfBuild.Unitypackage
Do you think it's because I'm on MacOS? If yes, there is a workaround?
Please make this awsome plugin usable on android devices.
Also it would be nice to have the possiblility to stream the frames
via upd to a server instead of saving it to disk.
Extension on issue #38 where I found a way to save the renders to the same directory. Camera 2 gives me a proper render. For some reason, Camera 1, Camera 3, Camera 4, Camera 5 gives me vertically mirrored renders. Any ideas? I've attached the renders below.
Hi,
I have tested the unitypackage and it used to work great. Unfortunately now when I am trying to record video I receive massive FPS drop. While recording .mp4 video from Frame Buffer with audio FPS in my Unity application are around value of "Capture Every Nth Frame". If I left it by default set to 1 application works on 1FPS.
Unity Profiler says that in this case it takes around 1000 ms on PlayerEndOfFrame->MovieRecorder.OnPostRender(). Is it possible somehow to maintain at least 30 FPS?
Working on Windows 10, unitypackage downloaded from description.
Thanks in advance.
Hi,
I've used this on the build-in render pipeline and it works exactly as expected, but when trying to use it on a project with the universal render pipeline the video recorded is stored in the correspondent folder, but when I try to open it the video player shows an error.
Does the package support URP or HDRP?
Kind regards.
Dose GenericFrameRecorder Use Multi thread when Output 4K Mp4 file?
When I upgrade My computer device config:
Window10 64 bit
Intel Core i9-7900 @ 3.30GHZ
525GB ssd
Gtx 1080 ti 11GB
The Recorder process always output about 10fps (My scene just contains just One character)
When Look up Profiler window
I find that Texture2D.ReadPixels(); always about 50ms when I want to get 4K video.Or can we move this Texture2D.ReadPixels() into MultiThread?
Is there any way to promote the process of output 4K videos?
Thanks Very much.
Hey guys,
Just tried the movie recorder in Unity 2020.1.0b5 using HDRP (Windows 10) - all I get is an empty .mp4 file of 0 bytes. The project is an unaltered standard HDRP demo scene created using the Unity Hub. I don't get any errors. Steps:
I get an appropriate Console Log on recording end:
GBufferRecorder: EndRecording()
UnityEngine.Debug:Log(Object)
Thanks!
David
Is this supported for Unity iOS or Unity Android?
Hello, I'm just curious if there's any straightforward way to write out camera space normals with FrameCapturer?
Hi, I am trying to record but it does not work yet, it told me some message that
DllNotFoundException: fccore
UTJ.FrameCapturer.ExrEncoder.Initialize (System.Object config, System.String outPath) (at Assets/UTJ/FrameCapturer/Scripts/Encoder/ExrEncoder.cs:22)
UTJ.FrameCapturer.MovieEncoder.Create (UTJ.FrameCapturer.MovieEncoderConfigs c, System.String path) (at Assets/UTJ/FrameCapturer/Scripts/Encoder/MovieEncoder.cs:158)
UTJ.FrameCapturer.MovieRecorder.BeginRecording () (at Assets/UTJ/FrameCapturer/Scripts/MovieRecorder.cs:127)
UTJ.FrameCapturer.RecorderBase.Update () (at Assets/UTJ/FrameCapturer/Scripts/RecorderBase.cs:265)
and my version is unity 2019 .2
many thanks
I'm using Unity 2020.3.11f1. If Unity Recorder is pre-installed, installing the FrameCapturer package fails.
Opening file
/path/to/project/Library/PackageCache/[email protected]/Editor/Sources/Recorders/_Legacy/FrameCapturer.meta
. The system can't find the path.
After that, Unity can only be force-quit. Removing the Unity Recorder package fixes the issue.
Hi,
I have a problem with the exporting path.
If I choose a path with an accent in a folder name, all accents are transform into different characters (ex : รฉ -> รยฉ), then the transformed path does not exists and the export fails.
I can't access myself in your code, because the path is manage in your fccore.dll.
Can you check in your side in order to manage the accent please.
Hello! How to build a plug-in for Mac OS?
Hi,
I have a somewhat weird question, and I'm not an expert in scripting at all. Here's my issue: I have an empty gameobject in my scene with 5 cameras as children of this empty gameobject. Each child has the G Buffer Recorder script attached to it as a component with the exact same settings. When i press play I will only get 1 .exr file render instead of 5. Is it because the cameras overwrite eachothers render? And if so, which script should I look at for defining the filename of the render, so that I can configure it to use the current camera name that the script is attached to as the filename? Or is there another problem? Help is very much appreciated.
Oftenly, during the first seconds of the record, it displays a black screen with nothing. After a few seconds, at last, the camera's display is shown
When in Linear color space it will out put very dark image and video.
When switch to Gamma color space it's too light for us.
Does FrameCapture support for Linear Color Space?
I try to record the Depth map of a custom scene but the image is completly white when in the Test Scene everithings is recorded well.
I set the camera with the same settings as the test Scene one (Deferred etc.) but this pass is always white. Seems like the Depth is not normalized and so you must be very close to a subject to effectively see the depth data. There is something to tweak?
Hello
I use the Global fog script from standard asset and i try to render it as seperate layer. Alpha layer work fine with Depth of Field script but i can't get nothing with global fog. any idea ? thank you
What steps do I need to follow to make this work on linux?
Are there any dependencies?
thnx
video bitrate for mp4 encoder has no effect at all on the encoded video's bitrate
tested using the h264 win7 x64
maybe expose more of the h264 encoder settings on the MP4Recorder
I have the example scene setup, and have gbufferRecorder & AudioRecorder removed, only the MovieRecorder is left, and the encoder format is set to MP4.
In the final output file, no frames can be rendered, but the video player still shows its length.
It works fine when I set the encoder format to Web M.
What could possibly go wrong?
I'm testing on PC, windows 10 (64bit) with Unity 5.6.4.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.