CESNET / UltraGrid

UltraGrid low-latency audio and video network transmission system
http://www.ultragrid.cz
Other
492 stars 53 forks source link

NDI with many hang's #255

Closed Spo-oky closed 12 months ago

Spo-oky commented 1 year ago

Hi,

I was trying to use Ultragrid to receive 3 NDI HX and send it to an Blackmagic SDI on each SDI.

I'm using: Windows 10 continuous build from 20-09-2022. The NDI installed is the latest 5.5.

This NDI is our 3 screens of one computer in another network.

I'm using the following command to receive:

uv.exe -t ndi:color=100:bandwidth=70:url=192.168.1.10:5961 -d decklink:device=1:Use1080PsF=true -s AESEBU -r embedded --audio-channel-map 4:0,5:1 uv.exe -t ndi:color=100:bandwidth=70:url=192.168.1.10:5962 -d decklink:device=2:Use1080PsF=true -s AESEBU -r embedded --audio-channel-map 2:0,3:1 uv.exe -t ndi:color=101:bandwidth=70:url=192.168.1.10:5963 -d decklink:device=3:Use1080PsF=true -s AESEBU -r embedded --audio-channel-map 0:0,1:1

The problem is that 3 to 4 seconds after start, it have many breaks on all streams. Using OBS I can get all streams and send it to each SDI but using the option in obs-ndi to source timing. If I choose network timing it have a lot of breaks too. Is there an option with something similar on Ultragrid?

I was trying to stream directly with Ultragrid from one side to another with h265 or h264 but appears like a video keyframe form from second to second.

Thanks,

MartinPulec commented 1 year ago

Hi,

do you have any idea what exactly does source timing do? If the opposite is network timing, I would suppose that network timing the media timing from network (== frames are presented as they arrive) while source timing potentially delays them to reconstruct the nominal frame rate. (BTW, from my point of view, the nouns are synonymous in this context, because the source is the network).

I'd suppose that the problem you are describing is caused by network jitter (or compression jitter). Can you explain in more details what mean "breaks" – it is like one frame dropped or rather few second? In the first case, you may try to add a parameter --param decoder-drop-policy=blocking. If the stutter is bigger, we'd perhaps need deeper frame buffer, which is currently not the case (but I think it can be implemented).

Spo-oky commented 1 year ago

It appears like breaks, missing frames. But if we see the logs it appears that it receives 100% of packets. We are receiving 6 audio channels and have to route them on the end. Do not know if this have some influence.

We have tried with a lot of softwares, GasparCG receives ok but it can not do audio routing on NDI, ZEN RTx Receiver / Transmitter works ok but it is another software in the middle. With OBS works ok in source sync but the audio have a lot of clicks with appears to be missing micro parts, in network sync the audio is ok but the image is like on UltraGrid, have a lot of breack's.

This is with the last NDI Tools and it's sent "I think" with the NDI Hx v3 that is new and have a lot of issues on OBS like example.

The objective is to transform the NDI to a decklink SDI.

MartinPulec commented 1 year ago

I am afraid that I still don't know what to do about it. Some ideas:

From the OBS behavior I'd expect that the second thing is possible. Although I still don't know what is a source and network timing.

Otherwise I would need steps to reproduce, the recording of output may also help to make a picture. As I've already written, frame resynchronization (timing) may be a possible solution but I don't have enough information if it is the problem.

Anyways, how much FPS does DeckLink display report?

MartinPulec commented 12 months ago

closing for inactivity