Most efficient way to convert a image stream to a video stream?
I have a situation where a image stream doesn't work for me since it pushes the image just the once. I need constant update.
I have used a mixer with a near 0 value to change the image stream to a video stream, however; this is far from perfect and hit the cpu pretty heavy.
Is there a more efficient way to bump a image to a video stream?
Guest last edited by
by image you mean picture-player video out, using envelope gen plus videofader actor works for my project.
Dear DusX,Try the attached patch as an example -- it uses a table actor and quickly switches between the two inputs, which are in fact the same image. This causes a continuous stream of the image at the output, and should not add noticeable CPU.Best Wishes,Mark
ckim last edited by
thanks. this solve my PUSH problem too. ck
Thanks Mark.. I will give this a go. I figured there must be a less CPU intense method.
Interestingly, this looked like it should work, but if I run 2 of these 'streams' into a video mixer with the mix amount ramping upto 100 pausing X secs and then ramping down to 0 and waiting X seconds I still get the broken behavior.
I get video output while the value is ramping, but once it is at either 0 or 100 % the video signal drops.
By mixing a photo stream with a black video signal with values switching between 0 and 0.001 I can create a solid stream that doesn't get dropped when going into the same crossfade mix I described a second ago.
Is there anything that distinguishes a video stream from an image stream, that might be changed when a photo stream is mixed with a video stream?
Simply trying to create a video stream by sending multiple images streams doesn't seem to convince the Video Mixer actor?
If you need more detail I can create a minimized example patch.
Playing a little more I have found that I get a small performance increase by using the Video Fade actor rather than the Video Mixer.
Since the fade is switching from 0 to 0.001 percent at the stages FPS, there is no visible effect, which is great, however; I suspect that a method that doesn't process the video data would be more effective.
Dear DusX,Well, I guess I need to understand why there is a problem in the first place. Even when the video signal "drops" as you say it, there is a valid image at the output. I made the Video Mixer patch you describe. With the mix at 0 or 100%, the output wire is red (not sending anything) because the image isn't changing. But you can see that there is a valid video there by hovering the mouse over the output wire -- you'll see the image come up.For the record, the answer to "Why does Isadora "drop" the connection?" is to be more efficient. There's no need for a "downstream" module to process the image if it hasn't actually changed.Can you send me a simple example where this behavior is problematic for you? I need to see the situation clearly to help you solve the problem.Best Wishes,Mark
I figured that it was dropped to save CPU, as it makes sense an image doesn't change.
I will put a sample patch together.. ASAP.
OK, I have to start off by apologizing.. seems that the behavior I am seeing is due to a work around I had put in place for projectors, to auto hide if video stream was cut.
But now that I understand more about your pull system, am I correct in assuming that a projector will not use cpu, if no video is supplied? How does this work if a image stream is present?
I was using a tap tempo test on the video feed to control the on/off of the projector. This was working very well until now since all my media was video, I had only just added a picture player/slide show builder, this is how the issue developed.
Yes, a projector will use not use CPU to render an image if no image is present. There will be a tiny (and I mean tiny) CPU usage if you are changing the various input parameters -- but if no video stream is present, nothing is sent to the graphics card, etc.Best Wishes,Mark
OK, think I have the best of both worlds now.. I am using your table solution at 1/4 the stage frame-rate to send a message, so that if any patching (uses broadcast and listen) changes, the new modules get the update.
I need to do more testing but this seems to be a good solution for my setup.
thanks for the help Mark.