assurance-tunnel
assurance-tunnel
assurance-tunnel
assurance-tunnel

Most efficient way to convert a image stream to a video stream?


  • Tech Staff

    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.

    best bts



  • 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

    f5219e-push-still-image.izz


  • Beta Platinum

    thanks.  this solve my PUSH problem too.  ck


  • Tech Staff

    Thanks Mark.. I will give this a go. I figured there must be a less CPU intense method.


  • Tech Staff

    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.


  • Tech Staff

    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

  • Tech Staff

    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.


  • Tech Staff

    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

  • Tech Staff

    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.