Advice wanted; best setup for multiple video file playback
Hi we are building a big video sequencer in MaxMSP 6 and we would like some advice .
The goal is to make a sequencer with 3 tracks with 12 steps each. (audio and video)
Each step has a different short videoclip (3 sec) and is synced with an audioclip.
The videos are mixed together with alpha blending. (playing several videos layered on top of each other)
What we have build now is causing a lot of latency in the videos.
Framerates drop to 10 fps.
What we already tried:
- changing the internal video clock to higher speed
- reducing the number of jit.qt.movie objects
- using jit.gl.videoplane for video rendering
Does anyone know how to build a patch that can play 36 short 3 second video files without latency?
Also advice would be appreciated on how to encode the quicktime videos (or png sequences)
we are currently using Apple Quicktime movies encoded PnG millions+
ps: all the umenu and dropfile objects are for easily changing the clips and audio.
It's very hard to say without having a look at your patch.
Anyway, there are some general tips you can have a look at.
1. Make sure the resolution of the videos is the same as the window's resolution.
2. Have a look at Vade's video optimization methods: http://abstrakt.vade.info/?p=147
3. You may want to wrap your jit.qt.video inside a poly~ and set parallel mode, this is very helpful in optimizing performance when dealing with multiple instances of the same object.
4. I'd reccomend photojpeg or apple intermediate (or any other real-time codec) as a codec
5. You can try jit.gl.hap and the HAP codec, moving all the movie elaboration to the GPU.
6. Reduce as much as possible GUI objects that need to be rendered (number boxes, meter~, etc.)
etc. etc. etc.
Obviously, looking at your patch, one could help better.
Send your videos into a openGl context like jit.gl.videoplane. (maybe you have to send it into jit.gl.texture 1st)
It sounds like your doing everything from the CPU, pushing it into the GPU will give you massive increases in performance.