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?
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 Beta Platinum 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.