Blackmagic SDI output very choppy
I've been experimenting a little with Isadora lately.
One of the features I'm most interested in right now is the ability to natively output to Blackmagic devices. Specifically, I'm currently testing an Ultrastudio MiniMonitor connected to a Macbook Pro15,3 with a Radeon Pro Vega 20 GPU. OSX 10.14.6.
Outputting via the SDI instantly works (currently testing mostly in 1080p24), but it's incredibly choppy. The output feels more like irregular 10 frames per second or worse. I've made sure to set Isadora's target frame rate to 24. I've tried both playing existing video files (HAPQ, Prores, H264) and a very simple GLSL shader which generates an animated zone plate. It all looks good on a second DVI/DP/HDMI monitor (... as smooth as 24p content on a 60p monitor ever can look), it's just the SDI output which suffers.
Other software on the computer can output via the UltraStudio just fine -- Filmlight Prelight, Adobe Premiere, DaVinci Resolve. And (dare I say it) QLAB's output is flawless too. Buttery smooth 1080p24 is possible from all software. It's just Isadora's implementation which doesn't seem to work so well in this context. Am I missing something? Is Blackmagic SDI output normally known to work fine?
Thanks and all the best
are you using Isadora 2 or 3? I've used BlackMagic Mini Monitor to output SDI from Izzy 2 no problem, and have managed to get a signal from Izzy 3, but haven't tested it heavily.
Version 3.0.2. I thought that Blackmagic native output was only added in version 3? At least, that's what the release notes would have me believe. Did you choose a different method to output from Izzy 2?
yeah - using the External Video Out option to mirror a stage to the BlackMagic. Its not as tidy - or flexible - as the native output from Izzy 3's Stage Setup.
Maybe I'm missing something crucial here. The only way I found to send out SDI is the option "External Outputs: Syphon / NDI / Blackmagic [...]" under the Stages setup, which mirrors one of the displays (unless of course I choose a display that doesn't exist). Is there a different way?
I am not sure (In Japan at the moment, can't test it) but if you use the Black Magic it is just a output without the GPU power of the graphic card?
the External Video Out was only available in Izzy2 - that's all been redesigned for Izzy3. Sorry if i didn't make that clear.
@mc_monte can you test this? I don't have the tech in the office to do so.
You may also want to adjust the new mac only setting in the preferences. These sync/lock your video playback/display.
Unfortunately I don't have a mac currently and am on my phone writing. So I don't have the exact feature name. Sorry.
I've had a bit of success. Some observations:
- Preferences / Display Refresh Lock to anything other than Off (Scaled / Full) sometimes has a really bad effect on the Blackmagic output, making it jerky. This misbehaviour doesn't happen consistently, but in general it appears it's better to keep Refresh Lock Off.
- If I change any frame rate while SDI output is enabled, the output reliably gets choppy and mostly stays that way. This applies both to the Target frame rate in preferences, and to the Blackmagic output raster in the Stages window. Disabling and re-enabling Blackmagic output certainly helps. (I seem to remember that a couple of times, I've had to restart Isadora to rectify the situation, but I'm not certain any more)
- "Show Stages", when turned on, appears to have a negative impact on smooth SDI output. Better to keep it off. Or if it has to be on (because other graphics card outputs are being used as stages) then setting the stage to a non-existent output seems to help.
- More of a feeling than any kind of certainty: appears to me that Isadora has an innate dislike at running at 24fps and prefers 30. But I could be wrong about this.
- Unfortunately, after several minutes of operation, output sometimes gets choppy despite having done everything else right. Even with a system load of consistently under 20%. This mostly seems to clear up again after 5-10 seconds but it's not pretty. When this problem doesn't clear on its own, turning SDI off and on again appears to help again, but the approach of "Have you tried turning it off and on again?" is one I'd rather not have to do during a show. I'll keep this under observation.
thanks for the update. I am glad you have been able to improve the situation.
I expect it has a lot to do with getting all refresh rates to sync/match.
Please keep us updated on your progress.
- Smooth video output gets a little bit better if I decrease the service task rate to 1x. (What would be an actual reason to have it above 1x? I haven't found any documentation that further describes this.)
- Now that I have reasonably glitch-free SDI output, differences between (low-load, realtime-capable) GLSL shader generated content, and pre-rendered movie files become more apparent. The GLSL stuff outputs fine most of the time, in fact I'd say it's now better than the computer monitor outputs (no tearing, mostly no frame doubling or frame skipping). Pre-rendered files (say, Prores422) tend to have more difficulties.
Playing movie files, here's what I see at different frame rate combinations. All based on Prores422 1920x1080 files, with the movie player using the AV Foundation playback engine:
- low frame rates (24/30): irregular SDI frame skips are extremely rare. However, every now and again the movie player seems to get caught in a situation where the playback judders pretty regularly. When that happens, it usually starts when the movie begins playing and often only clears once the clip ends and goes to repeat. Pausing and unpausing, or stopping and restarting the clip, mostly clears the problem. That goes the other way too: If playback is fine at any given moment, and I pause/unpause the video a number of times, I'm very likely to reproduce the problem without waiting for the clip to repeat. Turning SDI output off and on for this particular issue doesn't clear the glitches, it very probably lies more closely with the movie player. The issue is FAR more frequent on 1080p24 movies, and more visible, than 1080p30.
- 1080p60 file with Isadora operating in 30fps: irregular SDI frame skips happen a little more often, maybe on average roughly every 30 seconds or so.
- 1080p60 with Isadora operating in 60fps: irregular SDI frame skips happen quite frequently, at least once every 10 seconds.
That's about as far as I can trace the choppiness for now. Based on the findings so far, currently my strategy would be to run everything as 30fps (not 24, not 60), hoping I don't have to integrate pre-existing fast-motion content that's already 24 or 25fps.
Guess I should still test 25fps operation.
Late response on the framerate front (have been busy with other things lately):
25fps behaves just as badly as 24fps. Note that all my recent tests were with 1920x1080 Prores422 files. I should give HAP another chance now that I've identified some of the initial causes for bad playback. I'll be back in touch once I have the opportunity to test that.
What firmware is in the BMD converters?
Currently only using one Ultrastudio MiniMonitor, running the firmware that comes with Desktop Video 11.3, last update 18. July 2019. I wouldn't call the Ultrastudio product line converters because they're proper video interfaces, like the Decklink PCIe cards. And because Blackmagic also builds actual converters (HDMI-to-SDI etc).
I'm pretty much convinced the main problem I'm seeing (Prores files not playing back so reliably; see above) has nothing to do with the Ultrastudio output, given that GLSL shaders play back near-flawlessly.