AntonyCorbett / OnlyT

Meeting Timer
MIT License
113 stars 46 forks source link

OBS interoperation #383

Open AntonyCorbett opened 4 years ago

AntonyCorbett commented 4 years ago

Make OnlyT more interoperable with OBS and other streaming / switching systems.

Currently, OnlyT renders its clock/timer to a display device. OBS can only consume the OnlyT timer by taking the display device as a scource (you need a physical monitor or ghost device). If we can optionally specify that the timer "monitor" is actually a regular window rather than a display device this would allow OBS users to capture the window - a more flexible approach. There may be other options besides output to a window.

See also #234

vangquan commented 4 years ago

I use spacedesk (HTML5 viewer) feature to create a virtual display then use OBS to capture this virtual display and route it to Zoom via OBS-Virtual Webcam plugin. But when I do this Only T show the clock as fullscreen. image

vangquan commented 4 years ago

If I do the same but using Duet (instead of spacedesk) and an iOS device to create the virtual display. OnlyT act normally. image

ColinAAvey commented 4 years ago

We have found the screen share option in Zoom works well on a desktop with two monitors, if a bit clunky for the operator. We have also found it best to use a separate machine connected to the conference for the sole purpose of media and muting and unmuting participants is best.

“Share Computer Sound” and “Optimize Screen Sharing for Video Clip” should both be selected for video”. The host also assigns this machine as a co-host. For still images in a talk etc. the host can allow another to screen share, but again we just use the media machine, this time without selecting “Share Computer Sound” and “Optimize Screen Sharing for Video Clip”. The speaker audio the still available. I hope this helps.

AntonyCorbett commented 4 years ago

@vangquan The latest pre-release allows you to specify "windowed" output for timer and countdown. Please take a look and let me know how you get on.

KovalevArtem commented 4 years ago

For convenience in the settings, you can realize the ability to set the window size using presets 858 x 480, 1280 x 720, 1920 x 1080 (480p, 720p, 1080p) as well as manually.

Add the setting that the window will appear in the upper left or lower right, or in the last used place.

KovalevArtem commented 4 years ago

image Is it possible to get a high-quality picture in OBS using a small timer window?

AntonyCorbett commented 4 years ago

@KovalevArtem not ATM

vangquan commented 4 years ago

Thanks you so much. I think this is a great update.

SteveBowie commented 4 years ago

We have found the screen share option in Zoom works well on a desktop with two monitors, if a bit clunky for the operator. (snip)>

Agreed, however: The Branch is currently recommending multiple co-hosts, and delegating various chores to each. Some who may be asked to handle media playback only have a single screen, and I've been trying to find a way to handle this seamlessly with OnlyM. I thought I'd be able to start playback and immediately pause, use a Zoom hotkey to toggle Zoom's screen Share on, and resume playback - but there are two issues with this:

First, in this state OnlyM has focus, so Zoom doesn't get the (Share) hotkey. Second, even if it did, I can't find way to re-start video playback without Alt-tabbing the OnlyM lister to the front, with unknown impact on Zoom's screenshare, always presuming I could find a way to enable it.

Some are using VLC as a workaround, starting it's video output and pausing it, enabling Zoom's Share feature, then re-starting play- but a) I really don't like VLC (overkill for our needs). Adding a (user configurable?) start/stop hotkey to OnlyM would get us part way there, but I'm still flummoxed on toggling Zoom's screen Share after starting OnlyM's video output.

vangquan commented 4 years ago

To make it easy and feel like at the Kingdom Hall, I think we can have:

SteveBowie commented 4 years ago
  • A PC with a Zoom account for JW Library/JW Library Sign Language (and OnlyM if you want to). One brother has to control this computer. (etc.)>

So, if I follow correctly, you're suggesting one unit/bro to run media, sharing his screen fulltime, another to selectively broadcast that output using Spotlight? I'm not actually sure Spotlight works with shared-screen, but it might well do so - interesting idea.

To share JW Library fullscreen output using a single monitor, you need to share the non-fullscreen window first (otherwise Zoom doesn't 'see' it), pause playback, then go full screen and resume play. (You need to all of this each time you change video clips.) It's not impossible, of course, but pretty clunky compared to the two screen workflow.

Looks like we're going to working with Zoom for months. I'd still like to find a friendly single monitor solution - i.e., one with many less steps each time to make the process error prone (especially with multiple helpers and varied equipment).

For the moment, I'm going to stick with the two monitor workflow, but I'd love to find a good single screen OnlyM approach.

AntonyCorbett commented 4 years ago

@SteveBowie The best approach would be for OnlyX apps to provide an NDI output which would be seen by Zoom or OBS as a camera,

SteveBowie commented 4 years ago

(Blush) I can't believe that, of all people, I didn't think of that! (Zoom doesn't support NDI sources directly, but NDI Virtual Input takes any NDI source and presents it as a webcam to Zoom, Hangouts or what have you.) I'm going to give that a try using NDI Scan converter.

BTW, Anthony, we just released the NDI SDK 4.5 update this morning, so if you feel inspired, you've got the latest-greatest version to work with. And of course, if you need any help out of the ordinary you've only to ask.

SteveBowie commented 4 years ago

Well, good news - that seems to work just fine. :)

For example, I can assign NDI Scan Converter to grab my (single monitor) desktop, assign Zoom's video source to NDI Virtual Input, and launch a video from either OnlyM or JW Library. (In the latter, I need to add the step of enabling fullscreen mode).

If OnlyM had a native NDI output option, I could do this without Scan Converter, which would be nice and might offer other workflow benefits.

p.s., this suggests a possibly better 2 monitor workflow, as well, simply using your app of choice to render fullscreen output to the second monitor, and assigning that surface as the 'camera' for Zoom. (NDI VM's taskbar icon would let you switch seamlessly back and forth to your webcam, too, if you need to be on camera.)

KovalevArtem commented 4 years ago

Friends, I think OnlyM should be discussed in another thread. https://github.com/AntonyCorbett/OnlyM/issues/323

SteveBowie commented 4 years ago

Sorry, I was directed here from another conversation re: Zoom.

KovalevArtem commented 4 years ago

Sorry, I was directed here from another conversation re: Zoom.

It seems to me that not everyone uses all the programs at once. Someone uses only OnlyT, and someone only uses OnlyM. Therefore, it is more rational to discuss here only OnlyT, and there are OnlyM. But I do not insist 😊. I am very happy to discuss such a set of programs!

SteveBowie commented 4 years ago

But I do not insist 😊. **I am very happy to discuss such a set of programs!

I'm a rare visitor, and do not wish to breach standard practice or etiquette, but 'll be quite now, thanks.

AntonyCorbett commented 4 years ago

@KovalevArtem @SteveBowie Thanks for comments. Unfortunately, we don't have a single place to discuss issues that may be common to all OnlyX applications, so I'm happy to continue this here.

AntonyCorbett commented 4 years ago

The native NDI output would provide a better quality image compared to capturing a small window.

KovalevArtem commented 4 years ago

The native NDI output would provide a better quality image compared to capturing a small window.

In addition, the use of this method leads not to display this window on the desktop or otdelno monitor? And transfer the image immediately to OBS. That would be very convenient ...

SteveBowie commented 4 years ago

The native NDI output would provide a better quality image compared to capturing a small window.

Indeed. Just for clarity, though - although the current versions of NDI Scan Converter do allow you to designate an RoI, unlike some earlier versions the last few do not support grabbing a specific application's window (by application name). At one point this worked even when the app was minimized, which was handy. but no more I'm afraid. So I'm grabbing the full desktop display.

... not to gainsay direct NDI support, which would be really handy for many reasons no doubt, but just to avoid any confusion.

vangquan commented 4 years ago

To brothers who would like to use OBS Studio to OBS Virtual Cam to Zoom solution, Zoom 4.6.8 will block OBS Virtual Cam via dllsafecheck feature. Going back to Zoom 4.6.7 to make them work again.

https://github.com/CatxFish/obs-virtual-cam/issues/78#issuecomment-603482332

KovalevArtem commented 4 years ago

BTW, Anthony, we just released the NDI SDK 4.5 update this morning

Are you directly working on NDI SDK?

SteveBowie commented 4 years ago

Are you directly working on NDI SDK?

Only indirectly; not as a developer (as NewTek's UX Manager at the time of its birth, I was involved with it from a very early point).

AntonyCorbett commented 4 years ago

The latest pre-release of OnlyM includes the ability to have it display in a window. This may be of some use when used in a broadcast setting. See OnlyM Settings => Display => Windowed

KovalevArtem commented 4 years ago

Is it possible to add a setting that allows using one window and not two different ones? image P.S. We are looking forward to (if possible) integration with NDI.

KovalevArtem commented 4 years ago

image At what maximum resolution did you manage to broadcast OnlyX in ZOOM? 640x360 for watches, such a resolution is suitable. But for something more, for example, for OnlyM - it's too little ...

I use: OBS 25.0.4 (64bit) OBS-VirtualCam 2.0.4 ZOOM 4.6.12

706mix commented 4 years ago

To brothers who would like to use OBS Studio to OBS Virtual Cam to Zoom solution, Zoom 4.6.8 will block OBS Virtual Cam via dllsafecheck feature. Going back to Zoom 4.6.7 to make them work again.

CatxFish/obs-virtual-cam#78 (comment)

Just to confirm the latest Zoom Windows client is not affected by this issue.

We displayed OnlyT in a Zoom participant thumbnail with OBS VirtualCam during our midweek meeting this week and it worked really well. 😁

Working with: Windows 10 Zoom client 5.0.1 OBS Studio 25.0.8 64bit OBS VirtualCam 2.0.4 or 2.0.5

706mix commented 4 years ago

Thanks for all your hard work brothers, especially @AntonyCorbett

We have made a couple of useful videos to assist our local brothers with downloading and setting up OnlyT and OnlyM for Zoom meetings with a single screen laptop or PC.

I'm happy to share the videos so other congregations can benefit as well - would it be okay to share links to the videos here?

AntonyCorbett commented 4 years ago

@706mix yes, sure - that sounds useful

706mix commented 4 years ago

Display a countdown timer (OnlyT) in a Zoom meeting https://drive.google.com/file/d/1dJQVvBe40Gdlv3mriPo9rkf5o_4C5nxr/view?usp=drivesdk

Display media from JW Library and OnlyM in a Zoom meeting with a single screen laptop or PC https://drive.google.com/file/d/1Jthmkwo5B6U70byECzqfX1j2HPdrAleQ/view?usp=drivesdk

Caltor commented 3 years ago

Sorry I'm late to the discussion, but I just wanted to add that with OnlyM if you enable the setting for "Blank Item" you can share this first of all then just press the play button on the video once you have started sharing. I find this gives a more smooth experience and you don't have to play the "quickly press start/pause/switch to zoom/share/switch to onlyM/play" game with the video.

Chipperchap commented 3 years ago

For some time we have been using OnlyT with OBS + Virtual Cam as a separate participant in ZOOM. Please excuse my ignorance, but is it not possible to have OnlyT provide its own 'virtual camera' output for ZOOM to 'see' and use? It would eliminate the need for OBS.

AntonyCorbett commented 3 years ago

For some time we have been using OnlyT with OBS + Virtual Cam as a separate participant in ZOOM. Please excuse my ignorance, but is it not possible to have OnlyT provide its own 'virtual camera' output for ZOOM to 'see' and use? It would eliminate the need for OBS.

It would be considerable work to implement and support/maintain a DirectX solution in the application itself. As discussed above, probably the best way forward would be to provide an NDI source.

KovalevArtem commented 3 years ago

@Chipperchap If it turns out to integrate NDI into OnlyT, then NDI Webcam Input (previously Virtual Input) should be enough to transfer the image to ZOOM - this is an application from the NDI Tools package. That is, the use of OBS will be optional. Well, NDI Webcam Input, of course, consumes a lot less resources than OBS.

By the way, NDI 5 was recently released...

SteveBowie commented 3 years ago

I've been using NDI to supply media and my own camera to Zoom for congregation meetings since the beginning of the pandemic, initially using NDI Virtual Input, and - since its name change - NDI Webcam Input.

Lately, I tend to use Zoom's native screen sharing for media more often than in earlier times. I find it quite competent if you're running a two monitor setup and can use a full size screen for playback, given the quite respectable cooperation between OnlyM and JW Library.

Of course it would be a lovely thing if the 'Only' tools were to support NDI output, and not just for use with NDI Webcam Input. Having ready access to all of your various a/v sources as NDI channels across your LAN offers endless possibilities. For example, our monitors at the Hall (main auditorium, second school, library, foyer and meeting room) are all connected via NDI, which lets me modify what each one displays independently remotely using our main laptop or my iPad. This is quite useful when multiple languages are in use simultaneously, for example.

richfrantz commented 3 years ago

Some things like onlyT and onlyV never made the transition to Zoom in my congregation. OnlyM for visiting speakers and CO and JWL have worked just fine. You're needs may be different, but do you REALLY need the added complexity? Your call.


From: Chipperchap @.> Sent: Sunday, August 8, 2021 2:39 AM To: AntonyCorbett/OnlyT @.> Cc: Subscribed @.***> Subject: Re: [AntonyCorbett/OnlyT] OBS interoperation (#383)

For some time we have been using OnlyT with OBS + Virtual Cam as a separate participant in ZOOM. Please excuse my ignorance, but is it not possible to have OnlyT provide its own 'virtual camera' output for ZOOM to 'see' and use? It would eliminate the need for OBS.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHubhttps://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FAntonyCorbett%2FOnlyT%2Fissues%2F383%23issuecomment-894770597&data=04%7C01%7C%7Cf22277f5b48f43c685f608d95a5079f3%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637640123952959267%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=5j2ueMru7rBmixoGmpl5PJYADXRimx%2Bk57cGpzFgPhQ%3D&reserved=0, or unsubscribehttps://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAINW6PLMDEG36XANWLPIMCLT3ZGGTANCNFSM4LG6JH6A&data=04%7C01%7C%7Cf22277f5b48f43c685f608d95a5079f3%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637640123952969223%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=ktRmqdxXaYCKGyvU1tty3RxOgN3iwmr%2ByETqMT9agNw%3D&reserved=0. Triage notifications on the go with GitHub Mobile for iOShttps://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fapps.apple.com%2Fapp%2Fapple-store%2Fid1477376905%3Fct%3Dnotification-email%26mt%3D8%26pt%3D524675&data=04%7C01%7C%7Cf22277f5b48f43c685f608d95a5079f3%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637640123952969223%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=a0IDNmN09hxP%2BWpL5yPr%2FVFL%2FCbRolXdP9dAh43Nr6g%3D&reserved=0 or Androidhttps://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fplay.google.com%2Fstore%2Fapps%2Fdetails%3Fid%3Dcom.github.android%26utm_campaign%3Dnotification-email&data=04%7C01%7C%7Cf22277f5b48f43c685f608d95a5079f3%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637640123952979181%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=AQD7axNUX4klS5RgL8PxrhrRlxCXtM2g8ZBoltpaBnE%3D&reserved=0.

SteveBowie commented 3 years ago

Early on, it was quite often necessary to supplement JW Library with content from the Event Media page, but eventually that was much less often required. In consequence, I also only use OnlyM as needed now and, rarely, OnlyV.

I agree with the value of avoiding complexity, though. This is why I find NDI Webcam Input so convenient. Adding NDI output to OnlyM would reduce complexity still further, eliminating the need to use NDI Screen Capture to feed NDI Webcam Input.

Chipperchap commented 3 years ago

Hi @AntonyCorbett Recently you mentioned about tidying up this thread (which I seee you have done) as the topics were getting away from OnlyT and more into problems playing media through ZOOM. For those interested I have created today a temporary and very basic blog for discussing issues around that topic based on local experiences. It is found here: https://zoommediaforjw.blogspot.com

AntonyCorbett commented 3 years ago

@SteveBowie NDI development in the .NET environment would be vastly improved by NuGet support and a ready-made library for netstandard or net5.

SteveBowie commented 3 years ago

I'll happily pass your suggestions along, thanks. As you can imagine, there is never any shortage of development work underway, so I can't offer a comment on the likelihood. Still, I talk with pretty much everyone involved in preparing the SDK just about daily, so if I receive any feedback I can pass along, I will post it here.

AntonyCorbett commented 3 years ago

@SteveBowie Thanks - I've posted a small question regarding redistribution on the DevHub.

Further observations regarding the SDK from a .NET perspective below:

The C# examples use NDILibDotNet2 which provides an abstraction from the Processing.NDI.Lib runtime

NDILibDotNet2 is supplied in source form only, so it must be built by the developer. I assume we are then free to redistribute it. However, this is not clear from the documentation. It is also unclear whether NDILibDotNet2 (including source) can be included in an open source project (including Finder.cs, Router.cs, etc).

The NDILibDotNet2 project targets .NET Framework 4.5, so most developers will need to convert this to "netstandard2.0" or "net5.0-windows" before they can use it in new projects. And if the project is open-source, the question of whether the converted assembly can be included in the project is important - we'd rather not have to maintain a private project to include its deliverables in a public one. This adds a little friction to the .NET dev experience.

Ideally it would be good to see a NuGet package multi-targeting .NET Standard 2 (netstandard2.0) to provide support for .NET Framework projects, and .NET 5 (net5.0-windows) for new projects.

Taking it a step further, could NDILibDotNet2 be made open source as this would allow developers to fix some of the minor bugs that it contains (e.g. in NdiSendContainer), benefiting the community?

SteveBowie commented 3 years ago

Thanks, Anthony. I'm really not familiar with this level of detail, of course, but will pass your notes along.

I wasn't sure which resource you were referring to as the "DevHub". I don't see a recent post in the relevant NewTek forum (https://forums.newtek.com/forums/ndi-developer-zone.363/), but perhaps I overlooked it. (I'm glad I looked, anyway, as it seems there are some broken links in the SDK docs.)

May I just mention, too, that questions, requests and support matters can also be referred directly to the NDI dev team using sdk@ndi.tv.

AntonyCorbett commented 3 years ago

@SteveBowie The post was to "NDI Plus DevHub Community" - the link for support that is given in the NDI SDK Documentation:

https://www.ndi.tv/ndiplusdevhub

The link you give is for the forums which state "This forum is for communication between third-party NDI developers, and is not monitored for SDK support purposes"

SteveBowie commented 3 years ago

Interesting, thanks. Curiously, when I CTRL-click the relevant link in the SDK .docx file, it 404's, whereas if I cut and paste the URL it works. I'll need to fix this, but first - coffee!

For various reasons, the NewTek-hosted 'public' forums are presented as user forums (I wrote that sub-forum tag line), but the key developers do frequent it, albeit often stealthily. :)

CoMMyz commented 3 years ago

To all brothers out there. If you would like to use the same machine/pc to be the host for the meetings and also control the timer you can employ the "Google Chrome" trick that I had come up with. Just enter a secondary zoom session with name "Timer" using your google chrome browser and when asked just click the link below that says "Join using your browser". Once inside select the OBS Cam from the video menu and click to disable video of participants option to reduce CPU and bandwidth consumption.

This way you can have your typical zoom application as a host controlling the meeting and using the same pc the timer. The chrome browser can be minimized including obs - just make sure you do not minimize the OnlyT window as that will freeze the timer until you restore it.

Make sure you have a decent i7 CPU to be able to handle this.

OishiiCha commented 3 years ago

To all brothers out there. If you would like to use the same machine/pc to be the host for the meetings and also control the timer you can employ the "Google Chrome" trick that I had come up with. Just enter a secondary zoom session with name "Timer" using your google chrome browser and when asked just click the link below that says "Join using your browser". Once inside select the OBS Cam from the video menu and click to disable video of participants option to reduce CPU and bandwidth consumption.

This way you can have your typical zoom application as a host controlling the meeting and using the same pc the timer. The chrome browser can be minimized including obs - just make sure you do not minimize the OnlyT window as that will freeze the timer until you restore it.

Make sure you have a decent i7 CPU to be able to handle this.

I agree, you can use https://pwa.zoom.us/wc/join/ + meeting ID (this will automatically join the online version and skip the join online prompt) (also easy to implement into a python script) Also would recommend a Xeon CPU (at least 8 threads) as they tend to be cheaper for an older model

AntonyCorbett commented 1 year ago

@SteveBowie @KovalevArtem NDI support is available in the latest pre-release of OnlyT.

SteveBowie commented 1 year ago

Interesting, I'll give that a try. Thanks for letting me know. :)

We've upgraded our gear since returning to in person meetings, and at present we simply send OnlyM and JW Library output to a second monitor, using NDI Screen Capture to send that monitor to our various KH displays and to share in Zoom as appropriate.

Our platform camera has NDI output, too, which we send to Zoom via NDI Webcam, and which we also supply to the elder's meeting room with a picture-in-picture overlay showing the feed from the auditorium monitors. (The two NDI apps are set to autorun in the background on bootup, and just work, so the whole setup is pretty trouble free, if we don't talk about the occasional Windows update. :p

Recent versions of NDI Webcam provide 4 virtual cameras, which offers some other possibilities, although rather than messing about with changing Zoom cameras in the menu I'd be tempted to use NDI Router as an ersatz video switcher. The visual interface might be a little less fussy than swapping camera sources in Zoom. If we ever get to a point where OnlyM and JW Library both support NDI output that's likely what I'll do, and say goodbye to screen-sharing in Zoom.