ChurchApps / FreeShow

FreeShow is a free and open-source, user-friendly presenter software.
https://freeshow.app
GNU General Public License v3.0
488 stars 78 forks source link

Blackmagic Outputs #124

Open webnerdnick opened 1 year ago

webnerdnick commented 1 year ago

You probably already know this, but having the ability use Blackmagic products that can do SDI out would give you a huge bump in market share. Have you yet investigated what it would take to use an output like a Blackmagic decklink?

vassbo commented 1 year ago

It would definitely be a handy feature. But maybe a bit time consuming to add, and I don't have any device to test it with. But I'll see what I can figure out. 😊

webnerdnick commented 1 year ago

I saw this project on github: https://github.com/Streampunk/macadam which uses node.js and the Blackmagic API and has a handful of other repositories that it's used in. I'm not proficient in Electron, or I'd give it a shot myself. I have some spare decklink PCI cards which if you're interested, I may be able to send you one to play with if you think this is something you'd be interested digging into. I realize though I'm sure you have a ton of other priorities for this project.

vassbo commented 1 year ago

Thank you! Yes, I have some other priorities first. But I'll let you know if I need it, and have the time to do it. The package looks promising.

kol0 commented 6 months ago

Big +1 to add true SDI output.

marcorychlik commented 5 months ago

Big +1 to add true SDI output.

I was looking for years to a alternative to PP7... i found hope. I pray for you guys for shure. Thanks for our effort. When you @vassbo (and others) ever will come to Switzerland, let me know. I created a git profile to write this.

vassbo commented 5 months ago

Thank you. @marcorychlik 😊

marcorychlik commented 5 months ago

We thank you!!! looking forward

Marco Rychlik ICF Zürich - Bereichsleiter Video

Zürichstrasse 131, CH-8600 Dübendorf | @.*** Tel: +41 43 366 76 76 | Direkt: +41 43 366 76 24 Handy: +41 79 656 82 35 | Fax: +41 43 366 76 77

www.icf.ch | «ICF - Kirche neu erleben»

Kristoffer Vassbø @.***> schrieb am So. 7. Apr. 2024 um 22:07:

Thank you. @marcorychlik https://github.com/marcorychlik 😊

— Reply to this email directly, view it on GitHub https://github.com/ChurchApps/FreeShow/issues/124#issuecomment-2041586637, or unsubscribe https://github.com/notifications/unsubscribe-auth/BHU7DA2QL4RVHP2DF623EZ3Y4GRPTAVCNFSM6AAAAAAWQQKYIOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDANBRGU4DMNRTG4 . You are receiving this because you were mentioned.Message ID: @.***>

mellbergsimon commented 4 months ago

+1 for me aswell. Would be the incentive for me to switch. Key + Fill is essential in my application.

Qwiko commented 4 months ago

+1

Yttrium-tYcLief commented 3 months ago

+1, this is literally the only thing holding me back from switching. I've got a number of systems with various Decklink devices, including 8K Pros and Duo 2s, and we composite using ATEM so simply switching to NDI isn't really an option for us.

djrenault commented 1 month ago

Created an account just to say this feature is holding me back from being able to switch as well. Now that ProPresenter have announced a subscription-only model, hopefully this brings in donors who are switching away from Pro7 and fund the features we need to be able to switch and donate too.

webnerdnick commented 1 month ago

I was the one that originally requested this feature. I've found the best way of getting around this is to use a regular graphics card and then HDMI to SDI converters. It's basically what a deck link is already doing (minus the input abilities). It's actually easier to set up and troubleshoot going this route. What I do wish was possible would be to lock the mouse or other content from being accidentally moved to one of these screens since windows now has direct access.

mellbergsimon commented 1 month ago

I was the one that originally requested this feature. I've found the best way of getting around this is to use a regular graphics card and then HDMI to SDI converters. It's basically what a deck link is already doing (minus the input abilities). It's actually easier to set up and troubleshoot going this route. What I do wish was possible would be to lock the mouse or other content from being accidentally moved to one of these screens since windows now has direct access.

I think the main thing decklinks would give is key+fill. Atleast I and I think alot more are using ATEMs or similar to put text on top of other content. That would have to be done with a greenscreen. But that feels like a step in the wrong direction for me. For playouts where Freeshow would display on the entire screen your suggestion is sufficient.

djrenault commented 1 month ago

I was the one that originally requested this feature. I've found the best way of getting around this is to use a regular graphics card and then HDMI to SDI converters. It's basically what a deck link is already doing (minus the input abilities). It's actually easier to set up and troubleshoot going this route. What I do wish was possible would be to lock the mouse or other content from being accidentally moved to one of these screens since windows now has direct access.

I think the main thing decklinks would give is key+fill. Atleast I and I think alot more are using ATEMs or similar to put text on top of other content. That would have to be done with a greenscreen. But that feels like a step in the wrong direction for me. For playouts where Freeshow would display on the entire screen your suggestion is sufficient.

Exactly, we have a Decklink Duo 2, and we use key+fill. We have an ATEM Television Studio HD that we put it all together with.

vassbo commented 1 month ago

If you have a Blackmagic device (e.g. DeckLink), and some coding knowledge, please help with testing! :)

I have added basic support for Blackmagic outputs/inputs on this GitHub branch (with the macadam package): https://github.com/ChurchApps/FreeShow/tree/blackmagic

All the basic functionality should be there, like sending out video data (in Outputs settings) & receiving video streams (in "Media">"Screens">"Blackmagic"). But I do not own any Blackmagic device so I can't test it, I have no idea if it works at all!

Here's a test build (Windows): https://filetransfer.io/data-package/T9GcC2xT

brettgoodrich commented 1 month ago

+1 from me. This is basically The Thing I would need, and that's it. OH WOW A BETA YESTERDAY Will try it

brettgoodrich commented 1 month ago

@vassbo Do you have a PO Box one of us could send one to? They're $145 for all you would need to test it https://doddcamera.com/blackmagic-design-ultrastudio-mini-recorder-3g-sdi-hdmi-to-thunderbolt

vassbo commented 1 month ago

@brettgoodrich Thanks, I have a friend currently testing it, do you also get a green output screen? If I can't figure out that issue I might have to buy a DeckLink, but that could come in handy elsewhere. Do you think I just need a DeckLink, or would I need some other hardware as well?

Edit: I only have a laptop, and I guess I would need PCI input for DeckLink, have not found a good test solution that supports laptops.

webnerdnick commented 1 month ago

(I think FreeShow needs a Discord for the purpose of community of engagement, troubleshooting, and chat threads like this, but anyways...) A mini monitor or mini recorder would get you in the ballpark for testing, but for those above who were talking about key+fill, you'd need to get into the PCI DeckLink product line, starting with the DeckLink Duo 2 or DeckLink Quad or something like that (those are older versions), but will certainly allow you to test everything, especially as more features are requested if this SDI out is successful. I'm happy to chip in some money toward this if you need to purchase some additional hardware.

Velikyi commented 1 month ago

The current (free) workaround that I've tested for outputs is running NDI output from FreeShow to OBS and using the stock Decklink option or DeckLink filter (https://github.com/cg2121/obs-decklink-output-filter)

Yttrium-tYcLief commented 1 month ago

I tested this build with my 8K Pro pipeline. In our setup, we use ProPresenter on three outputs which all go to our ATEM. We normally run these at 1080p59.94 with no transparency (key/fill). Our 4th port is used as 2160p59.94 input from the ATEM's program feed, and that goes into OBS for our livestreaming.

In this test I just slotted FreeShow into one of the ProPresenter output feeds. I had no visible input at all, until changing the Pixel Format after enabling the BMD output. Once changed, both 8-bit YUV and 10-bit YUV seem to 'work', in the sense that they output picture. What they output is obviously not what's intended, but it's also different depending on the setting.

Also, the resolution setting doesn't seem to do anything. When changing resolution it does seem to 'refresh' the image (cycling black then back to video), but regardless of whatever I have it set to, it only outputs at 1080i50 according to the BMD Desktop Video Setup software.

I've attached four images - the outputs of 8-bit and 10-bit YUV, as captured in OBS, when OBS and the ATEM are set to both 4K and 1080p. Hopefully this mostly 'raw' pixel dump might help you troubleshoot what's going on.

8bit_1080p 10bit_1080p 8bit_4K 10bit_4K

For what it's worth, you do seem to be accurately obtaining the supported video modes for the specific Decklink card, as I see every resolution mode from 525i59.94 NTSC to 4K DCI 60p.

Velikyi commented 1 month ago

I tested this build with my 8K Pro pipeline. In our setup, we use ProPresenter on three outputs which all go to our ATEM. We normally run these at 1080p59.94 with no transparency (key/fill). Our 4th port is used as 2160p59.94 input from the ATEM's program feed, and that goes into OBS for our livestreaming.

In this test I just slotted FreeShow into one of the ProPresenter output feeds. I had no visible input at all, until changing the Pixel Format after enabling the BMD output. Once changed, both 8-bit YUV and 10-bit YUV seem to 'work', in the sense that they output picture. What they output is obviously not what's intended, but it's also different depending on the setting.

Also, the resolution setting doesn't seem to do anything. When changing resolution it does seem to 'refresh' the image (cycling black then back to video), but regardless of whatever I have it set to, it only outputs at 1080i50 according to the BMD Desktop Video Setup software.

I've attached four images - the outputs of 8-bit and 10-bit YUV, as captured in OBS, when OBS and the ATEM are set to both 4K and 1080p. Hopefully this mostly 'raw' pixel dump might help you troubleshoot what's going on.

8bit_1080p 10bit_1080p 8bit_4K 10bit_4K

For what it's worth, you do seem to be accurately obtaining the supported video modes for the specific Decklink card, as I see every resolution mode from 525i59.94 NTSC to 4K DCI 60p.

This is exactly what I got too, though with 1080p50 and a mixture of one Quad card and one 8K card

vassbo commented 1 month ago

Thank you @Yttrium-tYcLief I'll see if I'm able to do something about this, and post a new test build.

Yttrium-tYcLief commented 2 weeks ago

Hey, any word on a new test build? Happy to try it out whenever needed.

vassbo commented 2 weeks ago

@Yttrium-tYcLief Will let you know, had to prioritize some optimizations and bugfixes first.