Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Need to update to use QT6 to work in OBS 28 #745

Closed
paulpv opened this issue Aug 4, 2022 · 150 comments
Closed

Need to update to use QT6 to work in OBS 28 #745

paulpv opened this issue Aug 4, 2022 · 150 comments

Comments

@paulpv
Copy link
Member

paulpv commented Aug 4, 2022

OBS 28 Beta 1 is officially released
https://github.com/obsproject/obs-studio/releases/tag/28.0.0-beta1

28.0: Updating to Qt 6
As of May 2020, version 5 of the Qt user interface toolkit ceased public development and is no longer being updated. Since then, our need for a more up-to-date version has been increasing as time goes by. With version 28.0, we felt it was important for us to update our user interface toolkit to the latest version; not just to gain access to the latest features, but also for the latest bug fixes and improved support for newer operating systems and architectures such as Windows 11 and Apple Silicon. Unfortunately, this also means that certain plugins that depend on version 5 of Qt will no longer work when you upgrade to version 28.0 and will need to be updated.

During this beta period of OBS 28.0, many of those plugins which rely on Qt version 5 may not yet be updated yet, and we'll be working with third-party plugin developers in order to get them updated before the final release deploys.

Additionally, Qt 6 has dropped support for Windows 7 & 8, macOS 10.13 & 10.14, Ubuntu 18.04 and all 32-bit operating systems. As such, OBS will no longer be supported on these platforms.

For more details, please refer to our Discussion Post: obsproject/obs-studio#6481.

So, this awesome plugin that I use all of the time needs to be updated.

NDI 5.5 SDK also released just a few days ago:
https://www.ndi.tv/sdk/

So, it may be a great time to just refresh this bad boy to also fully support NDI|HX or any other newer NDI relevant features!
Maybe setting NDI group id, etc...

@Palakis Interested? I'll be looking in to this either way...

@fgolman
Copy link

fgolman commented Aug 4, 2022

+1 especially on updating NDI!

@tt2468
Copy link
Member

tt2468 commented Aug 5, 2022

I know it's been a while since I've touched the rewrite branch. I'm slating to update the CMake there and flesh out the rest of the rewrite by the time 28 releases for real.

@JeffKnight
Copy link

Yes, I use this to have our Proclaim software for screens at church to pass to the OBS stream. I don't want to have to tell people "don't hit update" when they stream services... all it takes is 1 person to be "too helpful" and the thing breaks, so please update!

@bpmacedo
Copy link

+1!!! Thx 4 the support

@krystofkrticka
Copy link

Well this was faster than I was expecting OBS 28, already got first release candidate version.

@tt2468
Copy link
Member

tt2468 commented Aug 20, 2022

I know it's been a while since I've touched the rewrite branch. I'm slating to update the CMake there and flesh out the rest of the rewrite by the time 28 releases for real.

20220819_214507.JPG

@bpmacedo
Copy link

I know it's been a while since I've touched the rewrite branch. I'm slating to update the CMake there and flesh out the rest of the rewrite by the time 28 releases for real.

Great!!! Thank you!

Screenshot_2022-08-20-01-59-58-818_com android chrome~2

@tt2468
Copy link
Member

tt2468 commented Aug 20, 2022

Hoping to get in a lot of functionality while I'm at it, including aux output capabilities.

@nacalai
Copy link

nacalai commented Aug 21, 2022

+1 on this :) Hoping a brand new plugin with some new neat features. Official release of v28 is closing real fast

@Riotline
Copy link

Hoping to get in a lot of functionality while I'm at it, including aux output capabilities.

@tt2468
Don't know if this would be the right issue thread to add some issues from the rewrite branch but just noticed that NDI output with more than a mono audio channel causes those additional channels to be distorted.

Can confirm that this only occurred through the obs-ndi plugin and not from NDI as I verified the output was fine through the studio monitor ndi tool.

2022-08-26.14-32-14.mp4

@paulpv
Copy link
Member Author

paulpv commented Aug 26, 2022

@tt2468 Love seeing and watching the progress! :) If there is anything that I or anyone can do to help, please post here or PM pvhaus#7593 on Discord.

@paulpv
Copy link
Member Author

paulpv commented Aug 27, 2022

@Riotline Can you open a separate issue on what you are seeing?
Please include as much detail as you can think to help debug the issue.

Is it from the standard global NDI output, or is that from a filter on a specific source?
If a filter, Dedicated NDI™ output (Audio Only) or Dedicated NDI Output?
What OS?

I use the standard global NDI output as well as a Dedicated NDI™ output (Audio Only) all of the time on Windows 10 and have ever seen this.

@PatchworkPirate
Copy link

Also huge +1 and support on the rewrite to bring in NDI 5.5 as well as OBS 28 support. I use this in broadcast production workflows from time to time and it's an absolute lifesaver!

@GibStorm
Copy link

GibStorm commented Sep 1, 2022

OBS 28 is now final. Really need NDI to work with it :)

@Riotline
Copy link

Riotline commented Sep 1, 2022

OBS 28 is now final. Really need NDI to work with it :)

If you really need it now, you can download the rewrite from the rewrite branch's action artifacts. Note will be little support and many bugs. It is currently still being changed but should be progressing.

@nacalai
Copy link

nacalai commented Sep 1, 2022

Hoping to get in a lot of functionality while I'm at it, including aux output capabilities.

Any timeline? :) We'd love to upgrade to v28 in our production, but is 100% dependent on NDI so just waiting for that. No pressure, just eager :D

@GibStorm
Copy link

GibStorm commented Sep 1, 2022

I don't really see the installer I need under the rewrite branch...?

@tt2468
Copy link
Member

tt2468 commented Sep 1, 2022

Still been making progress privately. Will flesh out implementation for program and preview output and fix a few bugs and post an alpha release to tie people over in the short-term.

@GibStorm
Copy link

GibStorm commented Sep 1, 2022

Still been making progress privately. Will flesh out implementation for program and preview output and fix a few bugs and post an alpha release to tie people over in the short-term.

Awesome, thanks.

@paulpv
Copy link
Member Author

paulpv commented Sep 1, 2022

@tt2468 Let us know if you need any help!

@tt2468
Copy link
Member

tt2468 commented Sep 2, 2022

A much better alpha build is now available: https://github.com/Palakis/obs-ndi/actions/runs/2977380826

The only thing it's currently technically missing is the NDI filter. I have some mixed thoughts on it, so I might as well ask the audience.

The NDI filter is a bit of a hack of OBS. It puts a notable strain on the main render thread, and generally does a lot of bad things that can cause problems to propagate to other parts of OBS. This mainly comes as a result of video sending.

My idea is to implement the aux outputs system, allowing you to manage a list of aux outputs via a centralized UI. You select your input/scene, then select an optional audio track to use. There is not an effective way to get the raw, unprocessed feed of an OBS source right now that also includes correct timing information. The closest thing we have is audio tracks. I personally feel this functionality would help people more than it would hurt.

With that in mind, I'm interested to hear any notable use-cases where this would not be an effective replacement. With adequate reason, I could reimplement the NDI filter, but I would very likely only add audio output, and skip video output altogether.

@Riotline
Copy link

Riotline commented Sep 2, 2022

My idea is to implement the aux outputs system, allowing you to manage a list of aux outputs via a centralized UI.

@tt2468 afaik, OBS 28 includes the PR for ability to have additional video mixes/buses. This could be used for the filter replacement and reduce main render thread strain. I believe they, as an initial implementation, made virtual camera an adjustable video mix

@tt2468
Copy link
Member

tt2468 commented Sep 2, 2022

@Riotline Correct, that is what the preview output in the alpha release above is taking advantage of. It only provides that functionality for video, not audio.

@timokorkalainen
Copy link

timokorkalainen commented Sep 2, 2022

Audio tracks would be perfect for my use cases and in fact something I've been hoping for.

Separate aux outputs (instead of filters all over the place) also clears up the output options, so all in all sounds a very good approach.

Huge thanks for all your hard work.

@Riotline
Copy link

Riotline commented Sep 2, 2022

@Riotline Correct, that is what the preview output in the alpha release above is taking advantage of. It only provides that functionality for video, not audio.

@tt2468 is audio not supported with the aux outputs? One use case that I personally would sorely adore is to be able to create mix-minus-esque video/audio mix for hosts and transmit it back to them. This would also allow for more applications to see a better reason to implement NDI-in. (Ie teams, zoom)

@DerThaller
Copy link

DerThaller commented Sep 2, 2022

A much better alpha build is now available: https://github.com/Palakis/obs-ndi/actions/runs/2977380826

The only thing it's currently technically missing is the NDI filter. I have some mixed thoughts on it, so I might as well ask the audience.

The NDI filter is a bit of a hack of OBS. It puts a notable strain on the main render thread, and generally does a lot of bad things that can cause problems to propagate to other parts of OBS. This mainly comes as a result of video sending.

My idea is to implement the aux outputs system, allowing you to manage a list of aux outputs via a centralized UI. You select your input/scene, then select an optional audio track to use. There is not an effective way to get the raw, unprocessed feed of an OBS source right now that also includes correct timing information. The closest thing we have is audio tracks. I personally feel this functionality would help people more than it would hurt.

With that in mind, I'm interested to hear any notable use-cases where this would not be an effective replacement. With adequate reason, I could reimplement the NDI filter, but I would very likely only add audio output, and skip video output altogether.

Hey, how can i Download it? There is no Package or am i just Blind?

Never Mind, my Browser did not Highlitet the Link XD

@fgolman
Copy link

fgolman commented Sep 2, 2022 via email

@nacalai
Copy link

nacalai commented Oct 26, 2022

A headsup. NDI-plugin for v28 does exist;

So, this is the techincally the dev branch for NDI 5. I thought I had to wait until there's been proper development of the ndi 5 version of this plugin before I could ever think to upgrade to obs v28 to be able to use NDI at all.

There is a v28-version of the NDI plugin (4.9) working just fine with ndi output, inputs, etc as it had in v27. I was randomly browsing the obs-ndi on obsproject website, where it clearly in big red text says that there exists a v28 version which is here: https://github.com/dev47apps/obs-ndi/releases

Just a small heads up for people who still want to use NDI in full production without having to wait for this ndi 5 rewrite (which of course will be amazing, I am sure).

@McCraic
Copy link

McCraic commented Oct 26, 2022 via email

@trbutler
Copy link

trbutler commented Oct 27, 2022

I haven't tried either of them yet, but there are two Mac-compatible forks for the 4.9.x plugin: https://github.com/ddrboxman/obs-ndi/ and https://github.com/kilinbox/obs-ndi/ . The former from @DDRBoxman shows up as a pull request on this repository, too. They look promising, but I'm not entirely clear on how they differ from each other or if they are ready for "production environments."

@tt2468
Copy link
Member

tt2468 commented Oct 27, 2022

The DDRBoxman binaries are recommended to be used right now. Trying to get around to making an official release using them.

@Zacharybinx34
Copy link

The DDRBoxman binaries are recommended to be used right now. Trying to get around to making an official release using them.

What's the difference? And what do you mean "trying to get around making an official release using them?"

Thanks!

@schrauger
Copy link

A much better alpha build is now available: https://github.com/Palakis/obs-ndi/actions/runs/2977380826

The only thing it's currently technically missing is the NDI filter. I have some mixed thoughts on it, so I might as well ask the audience.

The NDI filter is a bit of a hack of OBS. It puts a notable strain on the main render thread, and generally does a lot of bad things that can cause problems to propagate to other parts of OBS. This mainly comes as a result of video sending.

My idea is to implement the aux outputs system, allowing you to manage a list of aux outputs via a centralized UI. You select your input/scene, then select an optional audio track to use. There is not an effective way to get the raw, unprocessed feed of an OBS source right now that also includes correct timing information. The closest thing we have is audio tracks. I personally feel this functionality would help people more than it would hurt.

With that in mind, I'm interested to hear any notable use-cases where this would not be an effective replacement. With adequate reason, I could reimplement the NDI filter, but I would very likely only add audio output, and skip video output altogether.

Note to anyone who wants to download these packages: You have to login to a GitHub account in order to have clickable links. If you view that page as an anonymous user, the Artifacts section doesn't have links to download the packages. Once logged into GitHub, they'll become links.

@terjenm
Copy link

terjenm commented Nov 1, 2022

Hi

Not sure if this is the right place, but seems like this thread has become a general OBS 28 NDI plugin issue thread, so I take my chances and add to this thread.

I have tried https://github.com/Palakis/obs-ndi/actions/runs/2977380826 (downloaded todays build) and https://github.com/dev47apps/obs-ndi/releases (for a few weeks)

Both seems to be stable in my setup.

However, I see a 200-300 ms lag between what OBS shows on the screen and what NDI tools 5 Video Monitor see on a different computer. Same switch, no CPU problem on either computer. Tried this in 2 different setups.

If I output on a decklink card and capture through an elgato camlink 4k, I see 40-100ms delay in comparison.

I am not 100% sure, but I think the delay between OBS and NDI Video Monitor was close to nothing (sub 1 frame at 60 fps) before I upgraded to OBS 28. (currently on OBS 28.1, but similar issue on earlier releases). That is, I believe going from OBS 27 to a client computer with NDI Tools had less latency than decklink -> camlink, but I may be dreaming. I am pretty sure the lag was not as much as it is now however.

The flow here is

  • "ipad showing stopwatch with hundreds of a second resolution"

  • Sony a7 camera connected to PC with elgato camlink 4k. 1080p/60fps.

  • Windows 11 PC with a 16 core/32 thread I9 9960x CPU, RTX 3090, OBS 28. 1080p/60fp canvas
    Stats view on OBS shows 4% CPU, 0 frames missed or skipped, 1.5-1.7ms average time to render frame.

  • M1 macbook pro with cabled ethernet

    • If I view output from OBS NDI with NDI video monitor 250-300ms delay (it is actually not 100% stable between tries)
    • If I use camlink 4k and grab output from a decklink card on the PC instead, 40-100ms vs. OBS screen.
      CPU is 75% idle.
      No indication of slowness from high load anywhere, lots of resources.
  • I record the OBS screen and macbook screen with an iphone in slow motion video recording mode and check differences in the clock shown on the screens.

Any ideas for tuning of settings/optimizations/etc that can be done or are we potentially looking at a bug of some sort?

@terjenm
Copy link

terjenm commented Nov 1, 2022

Hi

Not sure if this is the right place, but seems like this thread has become a general OBS 28 NDI plugin issue thread, so I take my chances and add to this thread.

I have tried https://github.com/Palakis/obs-ndi/actions/runs/2977380826 (downloaded todays build) and https://github.com/dev47apps/obs-ndi/releases (for a few weeks)

Both seems to be stable in my setup.

However, I see a 200-300 ms lag between what OBS shows on the screen and what NDI tools 5 Video Monitor see on a different computer. Same switch, no CPU problem on either computer. Tried this in 2 different setups.

After a bit more testing and digging in my own memory banks, I realized I am both dreaming and not.
NDI tools video monitor (at least on mac, but probably on windows too) adds a lot of latency.

I rolled back to a clean OBS 27 install with NDI, nothing else.
Using NDI Virtual input and zoom, I got ~40ms latency on the remote computer
Using NDI Video Monitor, 200ms latency.

OBS 28 setup seems to be 1-2 frames extra latency to that so it seems to be a tiny bit slower.
Main confusion for me is however the NDI Video Monitor. Not sure if that has gotten slower or I always tested using some app on top of Virtual Input (same app as NDI webcam if you are on windows)

Out of curiosity, I also tried the new ios/osx ventura "iphone as a webcam" functionality.
Over wifi it has about the same latency to zoom display as OSB has on the windows computer with a camlink USB adapter.

Camlink also adds about 40-60ms latency so very similar to the NDI implementation in OBS 27 and when using a birddog flex In (hdmi -> NDI) converter. This was my other mis-memorized point. The birddog flex actually has a tiny bit less (0-1 frame) lower latency than the camlink USB adapter if used as a input source for OBS 27 (I did not test on OBS 28 yet)

Still curious if there may be ways to reduce the latency more somehow?
I would think from a performance perspective, there is no reason a computer on a fixed ethernet cable could not achieve even better latency?

@APz
Copy link

APz commented Dec 10, 2022

Are the binaries for the alpha build still available somewhere? They appear to have expired in Github.

@jaitaiwan
Copy link

jaitaiwan commented Dec 11, 2022

I noticed that it's expired too. I'm going to see if I can do my own workflow run to get the artifacts. If so I'll edit this comment and post the links until Palakis is able to update it.

UPDATE:
Here's the release files I generated, make sure you check to see if there's been a new tag of the rewrite branch before you look at mine in case I forget about this in the next couple months: https://github.com/jaitaiwan/obs-ndi/releases/tag/pre-1

@Zacharybinx34
Copy link

I noticed that it's expired too. I'm going to see if I can do my own workflow run to get the artifacts. If so I'll edit this comment and post the links until Palakis is able to update it.

UPDATE: Here's the release files I generated, make sure you check to see if there's been a new tag of the rewrite branch before you look at mine in case I forget about this in the next couple months: https://github.com/jaitaiwan/obs-ndi/releases/tag/pre-1

I wouldn't count on it. Last I heard he hit a dead end and had given up on the project.

@APz
Copy link

APz commented Dec 11, 2022

@jaitaiwan Thank you, that did the trick. I never got the 4.x series of the plugin to get multiple camera streams to sync up well enough, in my early tests the NDI5 version did exactly that right out of the box. My setup has 3 cameras and it looks a bit demented when there's non-uniform lag between them.

@jaitaiwan
Copy link

I noticed that it's expired too. I'm going to see if I can do my own workflow run to get the artifacts. If so I'll edit this comment and post the links until Palakis is able to update it.
UPDATE: Here's the release files I generated, make sure you check to see if there's been a new tag of the rewrite branch before you look at mine in case I forget about this in the next couple months: https://github.com/jaitaiwan/obs-ndi/releases/tag/pre-1

I wouldn't count on it. Last I heard he hit a dead end and had given up on the project.

I hope not, the plugin as it stands has been working flawlessly for me in 28.0.1 with NDI 5.5.

@terjenm
Copy link

terjenm commented Dec 11, 2022

The current version seems to work quite well?

I have not seen any issues except that it sometimes takes quite a bit of time before the stream "shows up".
Once the stream is active, its been quite stable for me, although I suspect there is 1-2 frames more lag than before.

Could it simply be released to make life easier for everybody?

@APz
Copy link

APz commented Dec 11, 2022

I hope not, the plugin as it stands has been working flawlessly for me in 28.0.1 with NDI 5.5.

@jaitaiwan Just out of curiosity, is this forked from the exact spot where the alpha that was been recommended had been compiled? I'm debugging what's the difference between that and the Mac version of the previous one. With the same cameras, the Mac version has normal sound, this one has garbled and clicking, but that effect only goes into the stream audio output. I'm wondering if it's an issue with the encoder or something related.

@jaitaiwan
Copy link

Sorry for the late reply @APz, it's forked from the last commit on the rewrite branch. For future reference you can actually find the answer to your question using https://github.com/Palakis/obs-ndi/network

I'm not sure why you'd have garbled and clicking issues

@MUSE-iC
Copy link

MUSE-iC commented Jan 16, 2023

So is the rewrite/update still in the works?

@timokorkalainen
Copy link

NDI is such an important part of the OBS ecosystem for any more complex production, that one would hope for an official support by the project or by NewTek themselves. Hoping for the best!

@getify
Copy link

getify commented Jan 21, 2023

OBS 29 is out now... is that going to help or further complicate this effort?

@nacalai
Copy link

nacalai commented Jan 21, 2023

@MUSE-iC @timokorkalainen @getify - Just to clear any confusion. A rewrite is in the works. But the normal usual plugin has been compatible with obs v28+ a long time, using this link: https://github.com/DDRBoxman/obs-ndi/releases/tag/4.10.1

Excited for a future rewrite though!

Edit: (updated wrong link).

@paulpv
Copy link
Member Author

paulpv commented Jan 21, 2023

@nacalai NO!
Do NOT share or use that https://github.com/Palakis/obs-ndi/releases/tag/dummy-tag-4.10.0 4.10.0 release link!
That is the version that has the bug that this whole issue is about.

Use this version instead:
https://github.com/DDRBoxman/obs-ndi/releases/tag/4.10.1

In @tt2468 's own words, this repo's 4.10.0 release IS DDRBoxman's code and binary.
Since 4.10.0, DDRBoxman patched his to fix this issue and released it in his repo as 4.10.1.
This official repo has not been updated with the patch (even though this one line change has been in PR #755 since 2022/08/30 waiting to be merged).
Use DDRBoxman's 4.10.1 release.

@paulpv
Copy link
Member Author

paulpv commented Jan 21, 2023

@getify

OBS 29 is out now... is that going to help or further complicate this effort?

No

@paulpv
Copy link
Member Author

paulpv commented Jan 21, 2023

My bad. My reaction was because I thought I was replying to #785
It still stands that you should not be using this repo's 4.10.0.
You should be using DDRBoxman's 4.10.1.

@paulpv
Copy link
Member Author

paulpv commented Jan 21, 2023

FYI, I detail the confusion of these builds at #785 (comment)

@nacalai
Copy link

nacalai commented Jan 21, 2023

@paulpv Right, I am normally pretty into what happens in this github page but the audio distortion one have gone past my head. That totally explains some audio crackling issues we've been having. Going to download that build on all our machines. Thanks for pointing that out. Totally agree this should've been added to this build a long time ago. You seem like a proper man to add to the team indeed.

Sorry to add confusion! Will edit my original comment.

@paulpv
Copy link
Member Author

paulpv commented Feb 28, 2023

Try this in the latest develop branch 4.11.0-RC tagged version that is due to officially release once approved: #849

@paulpv
Copy link
Member Author

paulpv commented Mar 1, 2023

This seems fixed in 4.11.0-RC; Closing.
Feel free to comment if you test and disagree.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests