Trouble with Capture Stage to Disk actor
I’m trying to do a project where the realtime camera accumulates continuously to a video. The camera image is superimposed to previous takes from the same stationary camera – like “superimposed layers of the past with the present moment”.
Video delay actor would not work, because I want longer delay between the layers, and video delay seems to be very process intensive. So, instead, I thought to try Capture Stage to Disk actor, and then superimpose the captured stage with the realtime stream.
Now, I do not want to keep the earlier captures and fill the folder/hard drive with the older captures, so (in the Capture Stage to Disk actor) I set the “replace” property to “on” (to “overwrite” the earlier takes). That seems to work as it should, if I don’t play the takes in a Movie Player actor.
In my case, I’m capturing the takes to four files (file1, file2, file3 and file4), and with this I’m trying to avoid that the played file is not simultaneously overwritten – while recapturing file1 I would play file3, while recapturing file2 I would play file4, and so on…
However, in my case, immediately after connecting any of the captured files to a Movie Player actor, the captured files start to accumulate: producing file11, file21, file31, file41, file12, file22, file32,… to the infinity. This means that the “replace” property does not work if I play the files with Movie Player actor.
Also, Isadora tends to crash when closing this project.
What’s wrong? Could anybody enlighten me?
Here are some screen shots of the corresponding situations:
No problem in this situation:
No problem in this situation:
But when the name/number index is connected the the Movie Player actor, the files start to accumulate (not replaced):
Please could someone tell where's the problem?
Thanks in advance!
I think if you let the "File name" in the "capture Stage to Disk" actor empty it will work. Isadora will give a name like"IsadoraTemp17082109514909.mov".
Thank you Jean-François for your reply. I tried your suggestion of leaving the "File name" empty, but it did not change the issue.
I think that those temp files are only temporary files that are supposed to replace the file (with the given name), and each time the temp file has a different name. And actually, those temporary files are replacing the files with right names once (when I had them named "file1", "file2",...), and only after that the files start to accumulate, adding the number to the end of the file name ("file11", "file21",...).
Any ideas for a solution?
please post this sample file, and I will play with it a bit.
Hopefully find a work around.
Thank you DusX for your reply. Please find attached the sample file.
In the sample project, there's the scene that is seen in the images in my original post, but I added another scene, where only one file is captured (and supposed to be replaced with same name). In principal I think that should also work. But it also has the same problem of not replacing the file, but instead accumulating files after each round.
The sample project is created in Isadora2.5.2 (MacBookPro OSX10.12.6).
Hopefully you will find a workaround or a solution.
Thanks in advance,
OK, I think you need to ensure that the Capture Stage to Disk inputs only change after 'stop' is triggered, AND before 'start' is triggered.
I added a few Trigger Text, and Trigger Value actors to accomplish this, and believe I have a very messy working version.
I suggest using another Trigger Delay with a very short period after the End Trigger of the Envelope, so that you have a trigger just after the stop is triggered, that can 'push' the input values to the Capture stage to Disk actor, before the 'start' is triggered.
You may even want to daisy chain these to ensure that they always occur in sequence.
Thanks DusX for the workaround suggestion! I will try it soon.
So this means that there has to be at least two alternating file names, and with a single file name it would not work?
Hi DusX, for some reason I cannot get it working. Would it be possible to get your "messy" working version to try?
A couple things, you can't change the capture settings during a capture (this is my experience anyway).
You can't play a file you are saving. So ideally have a version between so you ensure no momentary overlap.
Yes, I will attach the 'messy' file.. I do apologize, its not clean, but it is working.
Only the mulitple file scene (four captures) is adjusted/working.
There is a black out during the switch of movies playing back... I think this could be cleaned up with a crossfade (2 movie players).
Note: a value delay actor worked as an alternative to the second Selector actor (might be more flexible)
Thanks DusX, yes, I do understand that the capture settings cannot be changed and that the file to be played cannot be the one being saved. Those are logical. That's why I made the project capturing to 4 different files and there was the delay actor too.
Thank you for the file too. I'll look soon how that works.
Sorry DusX, it does not work in my machine. The same accumulation starts to happen (see the attached image). I do not know what is different in our settings/machines? I'm capturing with the default settings (I suppose PhotoJpeg) and Isadora is set to 25fps...
I am also interesting in this problem and I tried a lot of different things without success (send to another scene, …). I tried also the proposition of DusX. It doesn't work on my computer too. As soon as you play one of the 4 movies you get the accumulation. The only way is to play another movie (e.g. a number 5) but you don't get what you want and I am looking for. I am cannot say if it is a bug or a normal behavior to protect the registered files but I am also not a Isadora master.
OK, so my file and changes where tested on PC.
I have now tested on MAC, and found a couple things (a little tricky to get right).
The Movie Player seems to require being set to 'interactive' (forces the use of the QuickTime engine).
Also, the file must be saved with the 4 movies in the Video bin as 'unassigned' (easiest to pause engine, close Isadora, and select delete the media, and then save the file)
With playback using the QT engine and starting with 'unassigned' video files in the bin, I am getting the desired behaviour.
Besure to not resave the file with link media... if you do, you will need to clear/reset this again by closing Isadora, deleting the media, and saving the file.
@mark this is something to think about moving forward
@DusX check the codec that you ended up with, i did some tests a while ago and the capture (now not 100% if it was stage or camera) was not adhering to the set codec.
@DusX, thank you, now it works!
@Fred, I used both PhotoJpeg and Uncompressed 8bit 422, and they are captured as supposed (1920x1080) – although frame rate is not the 25fps as set, instead it seems to be what Isadora is able to capture (for instance when prefs set to 50fps, at least one captured file was 46,37fps shown in QuickTimePlayer). For getting the right resolution, I suppose you have to set:
Isadora Preferences/Video/Video Image Processing/Default Resolution: 1920x1080
Isadora Preferences/Video/Video Image Processing/When Combining Video: Scale to Default Resolution
Isadora Preferences/Stage/Stage1/Aspect: Limit to 16 x 9
(Don't know if that was what you were pointing at?)
i have a similar problem, but with capture Camera to Disk .... i need the stage for different propose ...
I would like to capture the camera input into four different video files and replace the content later ...
but i can't get to run .... i have no clue every hit is more than welcome
sorry here the snapshot of the patch
I wanted to return to this topic because of some issues – hopefully someone would have an idea to get over the issues.
First, even the capturing works, there’s a visual flaw when the capturing starts/stops: most of the time there appears a black frame (I suppose the first frame), and this black frame gets accumulated to the beginning of the video file leading it to “flicker”. The flicker last longer while the capture generation grows.
I suppose it could be avoided by a fade between the projected files. Hoswever, this is not possible because there’s no “extra” length in the video files that could be time-wise overlapping with each other.
So, I tried capturing another instance of the stage, but that does not seem to be possible. Isadora is capable of capturing only one camera or stage at a time, right?
The other problem I found is that the capture settings are always reset to default (Photo Jpeg), so changing the capture settings does not really work – if only changing the scene resets the capture settings. It would be useful to use something better than Photo-Jpeg in a cumulaitve video processing.
The third issue I mentioned earlier on this thread is the capture frame rate that does not seem to match with the settings. Let’s say I choose 25fps from the capture settings and 50fps in the Isadora preferences, it results to strange frame rates (like 48,67fps) and the fram rate changes by captured file. Is this a bug in Isadora?
Please, anybody, let me know if there is a solution to the above mentioned issues.
Thanks in advance,
If there's stuff here I need to solve for v2.6, please write it up as a bug report so I can investigate. (The thread is a bit long for me to digest with everything else I've got to get done.)