performance and synchronicity in a network

mr.l's icon

Hi,

I have a setup of 4 Computers (macs) which are integrated into a Network. Each one displaying on one or two screens. The videos are preproduced in a resolution of 1024x768 jpg-codec. For now, no live-effects.

I am facing 2 problems:

First: reaction time
Second: Framerate

First:
I am sending the clip-names from one computer to all the others. The reaction time until they are displayed however is differently. I first used Airport, but changed to Ethernet - which is an improvement already.
Still-Pictures react faster, so I figure the reaction depends on the loading time for the video. Which brings me to the second problem.

Since the 4 computers are all different modells, their performance (Framerate etc.) is unfortunatelly differently as well. Which results in unsynchron loading/starting and displaying.

My questions:
- what is the best way to set up the network? I am using udpsend and receive and am basically only sending clipnames and sometimes some numbers to change parameters. So I think that is ok, or not?
- Performance: Is it possible to preload the video into RAM before displaying to start the next video instantly (without the framerate dropping down for a short moment)? (I am not really familiar with using tracks in jit.qt.movie and the loadram-message for example. But maybe that's what I am looking for?) Or better load the movie into a matrix?
- Would it be better to have every computer have its own qmetro or to send one metro via Network to all at once or to run the video rather frame by frame instead of a metro (send the frame numbers controled by a counter over the network) - last one would be a pain programming but if it helps.... (thats why I am asking before trying...)

All clips are very short (maximum 10 seconds) and usually I will run different clips at a time. So synchronicity is not the most important thing (however it would be nice to have - maybe I'll need it later). What is important nevertheless, is that they start synchron....

Thanx for any advices!
mr.l

Rob Ramirez's icon

i'm assuming you are sending the read message to the jit.qt.movies each time you want to change the movie.
this is not optimal. you should utilize the poly~ object to pre-read all your movies at initialization time.

the best example of this is probably andrew benson's video processing tutorial:
https://cycling74.com/tutorials/the-video-processing-system-part-4/

this is part 4 which discusses the poly~ implementation, but you should probably also read the others.
also, the forum contains plenty of discussion. search "poly~ movie" or something similar. there are several issues research, such as loadram, preroll, colormode, etc.

after optimizing your playback, you will probably want to come up with a way of detecting latency in each of you computers, and adjusting frame messages accordingly.

Macciza's icon

There is a 'MultiScreener' max app with source that may help or at least provides some ideas . . .
Check http://www.zachpoff.com
Cheers

mr.l's icon

Thanx for the posts. Yes, I am using the read message and already thought that it might not be the best way. I will check out the poly movie and try to preload!
I also am now sending frame-numbers with a counter, which improves the synchronosity quite a lot.