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

Browser source alerts audio only until I change "page permissions" to any other option #6111

Open darthclide opened 2 years ago

darthclide commented 2 years ago

Operating System Info

Windows 10

Other OS

No response

OBS Studio Version

27.2.1

OBS Studio Version (Other)

No response

OBS Studio Log URL

https://obsproject.com/logs/tAYoQLtq-mt0REFF

OBS Studio Crash Log URL

No response

Expected Behavior

My webm alerts from both streamlabs and streamelements should play the video+audio. My emote wall should also display emotes flying around screen.

Current Behavior

Alerts play audio only, and emote wall shows no emotes.

Steps to Reproduce

  1. Send a test alert or send emotes in chat
  2. Hear audio, but no video or see no emotes on emote wall

Anything else we should know?

To fix this I go into page permissions and change it to any other option. Then the alert works correctly with both video and audio. And emote wall works correctly.

energizerfellow commented 2 years ago

You need to update or remove your plugins. You have multiple very outdated 3rd-party plugins including OBS Closed Captioning, StreamFX, and Advanced Scene Switcher. OBS Studio itself is also needing an update.

Also be aware that no public streaming service supports full-range YUV color.

darthclide commented 2 years ago

I am unsure how those plugins could matter when all it takes to fix this problem is changing the page permissions on the browser source. But I went ahead and deleted the plugins since I do not use them anymore.

This issue existed in the previous few updates, so I am unsure how updating will fix this particular problem but I will do so.

As for full range, I remember seeing a thread a long time ago saying that while full isn't properly supported, it helps to match any camera sources you are using in the scene?

darthclide commented 2 years ago

As expected, even after updating OBS, changing YUV to partial, and deleting those old plugins, a person subscribed tonight and the audio played with no video. As a test, I quickly went into the page permissions on that browser source and changed it from "No access to OBS" to "Read access to OBS status information" and the alert ended abruptly. Not sure if that means anything, but after I made that change I hit the redo button in my streamlabs dashboard and the alert came through correctly with video + audio.

WizardCM commented 2 years ago

My personal guess is that changing the Page Permissions setting specifically is unrelated - changing any setting other than resolution completely closes & reopens the webpage, like clicking the Refresh/Reload button. The reason why the alert sound cut off when you changed properties is because it refreshed the page to apply the new permissions.

What's most likely happening is that on first load, something is not rendering - either on the OBS side or the Streamlabs side, and any refresh of that particular browser source fixes it.

This could be caused by an error on the Streamlabs page itself. For example:

07:54:36.899: obs-browser: TypeError: Cannot read properties of undefined (reading '_modulesNamespaceMap') (source: https://streamlabs.com/mixed/assets/vendor/js/vendor.js?id=34494dd9444b153f650b:2)

Does the issue still occur if you disable Settings -> Advanced -> Enable browser source hardware acceleration?

darthclide commented 2 years ago

The problem occurs with streamelements as well, so it isn't related to streamlabs. I just restarted OBS with browser hardware acceleration disabled and it seems to have fixed it. But I am now suspicious that the message "Device Remove/Reset! Rebuilding all assets..." in the log implies OBS isn't recovering from GPU driver crashes.

I am unsure if it is related, but for about 6 months now whenever I am using OBS (even just sitting there idle with no recording or streaming) my computer will sometimes freeze for 4-5 seconds. Audio will play fine. But event viewer shows no nvidia driver problems. (I searched multiple nvidia keywords that are common to see in event viewer)

fiercekittenz commented 2 years ago

I am also experiencing this to a greater degree with GIFBot (the bot I write that heavily uses browsersource). Even with hardware acceleration turned off, it doesn't work. It's almost as if it's lagged out, frozen, and not doing what it's supposed to do. Something as simple as an HTML page with a setInterval(n) isn't spitting out logs.

Sometimes it will play the audio to an animation, but no video is visible. It will play if I open in a browser, but then OBS doesn't project the audio until several seconds later - even then, oftentimes cut short.

I tried to roll back to version 27.1.3, but the behavior persists.

Fenrirthviti commented 2 years ago

I tried to roll back to version 27.1.3, but the behavior persists.

The issue being discussed in this post is related to the browser source update between 27.1.3 and 27.2, so your issue is likely unrelated. I'd recommend checking through the support channels first, or using remote debugging through CEF to identify what might be going on.