obsproject / obs-studio

OBS Studio - Free and open source software for live streaming and screen recording
https://obsproject.com
GNU General Public License v2.0
59.83k stars 7.93k forks source link

Using a hotkey to stream does not prompt for confirmation #8818

Open Alienarea7 opened 1 year ago

Alienarea7 commented 1 year ago

Operating System Info

Windows 10

Other OS

No response

OBS Studio Version

29.0.2

OBS Studio Version (Other)

No response

OBS Studio Log URL

https://obsproject.com/logs/MAeUdtYNQ4NTlXQW

OBS Studio Crash Log URL

No response

Expected Behavior

When using a hotkey, to start the stream, when the option is checked to pop up a window to confirm starting a stream, the window should pop up.

Current Behavior

The window doesnt pop up when done so with a hotkey, but does pop out if stream started manually

Steps to Reproduce

  1. Start OBS
  2. Go to general settings and check the box "Show confirmation dialog when starting streams"
  3. Go to Hotkeys and set up a hotkey to start a stream
  4. Apply the settings and quit the settings
  5. Press the Hotkey
  6. Look as nothing popsup and can expose you in the matter of minutes.

Anything else we should know?

The OBS Discord helped me resolve another Issue I didnt know how to fix, kudos to them.

MattyFresh68 commented 1 year ago

This same behavior occurs with other popup dialogs as well. "Enable bandwidth test" for streaming to twitch, when manually starting the stream within obs results in a dialog box. When using a hotkey or remote method such as websocket, this dialog does not pop up. This specific instance can be very frustrating as one might think they are actually live as they aren't getting the usual bandwidth test dialog box.

https://user-images.githubusercontent.com/66339760/235299411-774137ec-5706-4cd6-889d-55d876867e8f.mp4

gxalpha commented 1 year ago

I won't close this issue outright to give people the opportunity to potentially weigh in on the comment above regarding bandwidth test mode, but the original issue is expected behavior.

See https://github.com/obsproject/obs-studio/issues/6385#issuecomment-1475487712:

Hotkeys not prompting is intentional, as hotkeys are meant to be used when OBS isn't in focus in the first place, so showing a confirmation to a user when they are, say, in a fullscreen game, is counterintuitive. Hotkeys are explicitly set and pressed, and should be made something that won't be accidentally pressed, rather than relying on a confirmation.

zoey-on-github commented 1 year ago

I say this as someone who likes the no confirmation with hotkeys and has confirmations for streams disabled. There have been a few times when I was streaming and I acidentally ended the stream because I assigned a hotkey to the same function as my obs stream hotkey without thinking about it(jetbrains, for one, has "open settings" applied to ctrl-alt-s, which is what i use for ending/starting streams, so I changed settings in the middle of a programming stream and didn't notice i had stopped streaming for like 30 min.)

it would be a bit nice if we could get just a notification that's like "hey, you've stopped streaming" or "hey, you've started streaming" to avoid accidents like that

Warchamp7 commented 1 year ago

I'm gonna have to disagree with Fenrir on this topic. If a user has enabled a confirmation when starting streams or recordings, we should always show that. That said, hotkeys bypassing the confirmation was a deliberate choice due to users particularly in single monitor setups trying to start streams or recordings with a game in focus, and not seeing the confirmation.

As such, my proposed fix is to convert the confirmation checkboxes to dropdowns with the following options

Stream start confirmation:

We should ensure that user's existing choice for the checkbox gets migrated to the new structure. In the case of the not focus and Always options, this should also apply to third party integrations and plugins, such as StreamDeck and websocket calls.

MattyFresh68 commented 1 year ago

I do like warchamps idea. I'd vote for that.

notr1ch commented 1 year ago

I'm not sure I like the idea of the confirmation being attached to things outside of the button press. What happens if an API client makes a start streaming request, would we show confirmation then too?

SuslikV commented 1 year ago

Decide finally why you need confirmation prompt:

  1. Fool protection ("Wow! What this button do?.....")
  2. Accident protection ("Damn. Thick fingers.....")
SuslikV commented 1 year ago

I never seen that the user who started the stream didn't look for the feedback. "Am I really online? One-two, one-two!.."

Warchamp7 commented 1 year ago

I'm not sure I like the idea of the confirmation being attached to things outside of the button press. What happens if an API client makes a start streaming request, would we show confirmation then too?

Short answer is yes.

If the user has asked for a warning confirmation when starting an output, we should show it. Always. Giving better granularity to what 'Always' encompasses though is the improvement to be made here.

I never seen that the user who started the stream didn't look for the feedback. "Am I really online? One-two, one-two!.."

As noted above, many users have set a hotkey and expected it to "just work" without validating and had the confirmation enabled, which is why we made hotkeys bypass it after users 'lost' recordings in single monitor setups and came to us angry. I think that was the wrong solution, and we should instead give better granularity to the confirmation.

notr1ch commented 1 year ago

I don't think there's a good way to get consistent behavior here when OBS itself is just a frontend to libobs and exists alongside multiple other interfaces (plugins) to libobs. A 3rd party plugin could start an output directly without bothering to call the frontend functions. Imagine a plugin like multi-RTMP which has its own outputs, should the OBS option apply there? If yes, then how would that work when the plugin has its own private outputs?