Latency_Flickering_"NetReceive"

Hi all

We are a mix media performance team in Greece “ELTHEA” and setting up our new project in Palace Theatre in Athens.
there are a few questions raised from our test regarding 4Vs.
We’ve bought 1 license for 4Vs in Sept 07.

What are we trying to do: Mix 12 HD cameras are do layers of pre-recorder material.

I would like to give a brief description of the set up we are using so you’ll have a better overview:

12 HD cameras connected in 3 PCs.
The 3 PCs are connected to a master PC.

Pc Specs:

Pc1-3:
Quad Core Intel
Ram: 8 GB 667MHz
Hard Disk:
1x WD Raptor 74GB 10000 rpm 16MB cache ( OS boot)
4x WD 500GB 7200 rpm 16MB cache (for Data)
4 x Black Magic Intensity for connecting the HD cameras to Pc
1 GForce 7950 GT

Master Pc:
Quad Core Intel
Ram: 8 GB 667MHz
Hard Disk:
1x WD Raptor 74GB 10000 rpm 16MB cache ( OS boot)
4x WD 500GB 7200 rpm 16MB cache (for Data)
3 x Black Magic Intensity for connecting the Pc1 - 3 to the Master Pc
2 x GForce 7950 GT

QUESTIONS:

Does 4Vs need to sync the input video signals from the camera in order to mix them synchronously?
If yes, how does it sync them together (the four cameras are not connected to a master clock for synch)?
Which input signal does it use as a reference?
Does this process add delay?

In my current workflow i am experiencing a big amount of delay (much of which is attributed to the HDV cameras). In order to decrease the delay i have opted for the YuYv VIdeoTExture module which is GPU base but produces an unpredictable flicker effect especially when used with high definition source.
As an alternative i have experimented with the regular Video texture module (the CPU based module) which doesn’t produce flicker BUT induces even more latency to my output resulting in an unusable outcome for the purposes of live performance that is our initial intension.

I cant seem to make the “CreateNode” node to work any tips on that one. Even the example in the help file doesn’t work.

The “NetReceive” node produces a “no data” indication to its output PIN when the patch opens that blocks other nodes in my patch that cannot be unblocked after the initialization of the patch for example the “FrameDelay(Animation)” node. Is there a way to change the initial message “NetReceive” gives when the patch opens?

Hd setUP.jpg (76.3 kB)

Check the switch patch on my projects page for create node help main thing to watch for is the id of the node changing, you have to give it a descriptive name and then use get node id to keep track of it. Gets even weirder when you try and use multiple create nodes!
catweasel-Patches

I’ve had problems since the beginning with the yuv texture node, which is a shame because it is lots faster! It happens with SD sources too, and seems ok with 1 layer but not with more.

for 4 it sounds like a null issue use the replace empty node anywhere you have frame delays as they are the main culprits for that!

Are you not using the cameras as cameras then, just playback? If so you could try using wmv files as they decode on the gpu, but still its a lot of data to shift!

Cat

an impressive setup…

ad 1+2 - basically vvvv does not do any syncing between the different inputs and i dont expect the four black magic cards will magically do it. vvvv will just take the frame which s available at the time the next video frame needs to be rendered. ideally frames are available in the exact right rhythm as they are needed. as the clocks in the camea are a different chips as the clocks of the outgoing video you will always have occasional hickups in the final video, although its possibe to make them very seldom.

two questions

What are your “Wait for Every nth Frame” settings on the Videotextures? please post your patch.

Are you able to get satisfactory results with four video streams with any other software? or in GraphEdit?

ad 4 - there is a ReplaceEmpty (String) module still missing. there is a ReplaceEmpty (Value) which will show you the technique for building your own ReplaceEmpty (String).

I think the nasty behaviour comes from the TCP node within the NetReceive mode. As you most probably only want to use UDP anyway, a quick fix would be just removing it.

ad 1)
if you switch devices on the VideoIn node you’ll most likely see some hickup which is due to the directshowgraph being rebuilt. i am not sure if external syncing the cams would improve this. having 4 VideoIns connected to 4 VideoTextures and only switching textures would prevent any flicker (but obviously is not feasible cpuwise).

syncing of the cameras, the capturecards and the graphiccard would help to at least remove subtle freezes which you cannot prevent in any other way.

Hey,
ambitious project! From your block diagram I gather that you are collecting the DVI output of the 3 primary PCs in the master via Intensity cards?
How do you do this? Do you use the HDMI out of the blackmagic cards, oder do you manage to feed the DVI out of the GPUs into the Intensity? I’d be interested in that because we tried this before, but got to the conclusion that it didn’t work for whichever reasons.
max

Hi all

Thanks for the info.
Right now I am experimenting with Graphedit (no results yet though).
As for the interconnection of the camera-PCs with the MASTER one we
did use the DVI-out of Geforce 7950 GT directly to HDMI-in of the Intensity card and it worked just fine from the beggining ( the Geforce even recognized the Intensity card as a monitor! ).
The “Wait for nth frame” is set to zero. I know that this is a way to sync the inputs of the cams but in order to decrease the delay as much as possible I opted for the above setting.
I have used “pilgrim 3d pro” for tests and “resolume” but both didnt come even close to functionality of vvvv (pilgrim is a pretty impressive piece of code but it had major stability issues with the Intensity cards and suffered in speed with more than a single layer in HD).