Discord screen share not working on Mac: split the symptom first
Screen sharing that fails on a Mac almost always turns out to be one of two unrelated faults sharing a single description. Either the viewer gets a black rectangle, or the picture arrives fine and the sound does not. The fixes have nothing in common, so applying one to the other produces no change and burns an evening. Sorting the symptom takes about ten seconds and cuts the search space in half.
Ask the viewer one question before touching any setting
Ask whether they can see the picture at all. If they can, the macOS permission layer is already satisfied and there is no point opening System Settings. The remaining suspects are the operating system version and the container the session was started from. If they cannot see anything, permission is the first place to look and version questions are premature.
This split matters because the two faults live in different systems. A black screen is macOS refusing to hand pixels to an application. Missing audio is a capability boundary published by Discord, enforced by which client is in use and which macOS release is installed. No amount of toggling in Privacy settings adds audio capture to a client that does not offer it.
A third symptom deserves its own bucket. The share starts, the picture arrives, and it stutters or lags several seconds behind. That is neither permission nor version. It is load and bandwidth, and it gets handled separately near the end of this article.
Missing audio is decided by the macOS release
Sharing application and game audio has a floor, and Discord states it plainly.
Sharing audio from applications and games is supported on macOS 13 and above. Source: support.discord.com
Below macOS 13 there is no setting that produces shared audio, and the same help article recommends upgrading for exactly that reason. Anyone on a long-lived Mac who has been chasing this for months can settle it in one step by checking About This Mac from the Apple menu.
The second boundary is the client itself. Discord's documentation states that audio can be captured by the Windows desktop client, the macOS desktop client, the Chrome browser, and mobile clients, and that audio sharing is unavailable on Linux. Read that as a list of containers rather than a list of platforms. A Safari tab and a Firefox tab are outside it. Someone streaming from Safari with perfect video and no sound is seeing the documented behaviour, not a bug.
Screen recording permission belongs to an application, not a service
When the picture itself never appears, the destination is System Settings. Discord's own voice and video troubleshooting puts this first in its screen share section, telling users to check that Discord has permission to access the screen in system settings.
Apple's user guide describes the location and the operation. Open System Settings from the Apple menu, click Privacy & Security in the sidebar, then click Screen & System Audio Recording. Each listed application has a toggle, and permission can be granted for both screen and audio or for audio alone. If the application is missing from the list entirely, the guide notes that the button below the list adds it. The full walkthrough is on Apple's support page.
The detail that trips people is the unit of permission. The system grants access to an application bundle, not to a website or a service. Two ways of opening the same site are two separate rows in that list, and a grant to one does not carry to the other. This is why the fault so often appears immediately after a change rather than out of nowhere.
The container changes, so the grant has to change with it
Consider the sequence that produces most of these reports. Someone used the desktop client for a year, switched to the browser, and screen sharing stopped. Or someone moved from Chrome to a different browser and got a black rectangle on the first attempt. In both cases nothing broke. The session simply started from a container that had never been granted screen recording.
In the browser case, permission is held by the browser as a whole. Forty tabs are still one row in System Settings. When a site is pulled out into its own standalone application, that application becomes its own row, which is why a one-time approval prompt appears the first time it tries to capture the screen. Neither arrangement is better in the abstract, but they behave differently and the difference is visible in that list.
The practical rule follows from this. When screen sharing stops working, the first question is what changed recently. A new browser, a rebuilt app, a fresh macOS install. Any of those explains the symptom without anything being broken. If genuinely nothing changed on the user's side, a recent operating system update becomes the next suspect worth checking against the same list.
Containers side by side
| Container | Video share | Audio capture | Row in Screen Recording list |
|---|---|---|---|
| macOS desktop client | Yes | Yes, on macOS 13 or later | The Discord app |
| Chrome tab | Yes | Yes | Chrome |
| Safari tab | Yes | No | Safari |
| Firefox tab | Yes | No | Firefox |
| Standalone window built on a Chromium browser | Yes | Yes | That window's app |
The right-hand column is the part most guides leave out. Approval attaches to the container, and running one service from three containers means three separate decisions to keep track of. Choosing one container for streaming and granting only that one keeps future troubleshooting to a single place.
There is a second reason the column is useful. A grant made months ago stays in place even after the application it points at has been deleted and replaced, so the list can contain stale entries that look correct and do nothing. Scrolling through it occasionally and removing rows that no longer correspond to anything installed keeps the list readable, which matters when a fault has to be diagnosed under time pressure during a call.
The audio column narrows the field on its own. Sharing sound from a browser means a Chromium based browser. That is a property of the client, not a preference, so it gets settled when the container is chosen rather than during the call.
Browser sessions have a second permission layer
Running in a browser adds checks that do not exist for the installed client. Discord's troubleshooting guide lists them separately: confirm the browser and its version are compatible, then confirm the browser has been given microphone and camera access, with links to the official guides for Safari, Chrome, and Firefox.
These two layers stack. macOS can be granting screen recording to the browser while the browser withholds microphone access from the site, and the result is a working picture with a dead microphone. The reverse also happens. Every site permission can be green while the browser is absent from the macOS list, producing a black screen with working voice. Checking both, rather than assuming one covers the other, is what closes these cases.
There is also a reset path when settings have been changed too many times to reason about. Under Voice & Video settings, the Debugging tab offers a reset of voice and video settings. When input and output device choices have become tangled, returning to a known state and rebuilding is faster than continuing to guess.
When the picture still will not appear
With permission granted and the container understood, Discord's remaining steps run in a deliberate order. Update device drivers and the operating system. Disable hardware acceleration under the Video tab in Voice & Video settings. Lower the screen share quality and frame rate. Confirm the connection is stable enough, since screen sharing needs sustained bandwidth rather than the occasional burst a voice call uses.
Hardware acceleration is worth trying early among these, because it hands video processing to the graphics stack and is a known source of black output on some configurations. If turning it off fixes the share, permission and bandwidth are both eliminated as causes in one move. Lowering quality sits later in the list because it reduces load rather than identifying a cause.
Note also what should not be tried early. Reinstalling the client sits low in the published order for a good reason: it changes several variables at once and destroys the evidence needed to name the cause. A fresh install that appears to fix the problem often only resets a permission prompt, which means the same fault returns after the next change.
Bandwidth explains the stuttering bucket from earlier. A connection that carries voice comfortably can collapse the moment a screen share starts. If the picture is fine for a minute and then freezes repeatedly, that pattern points at the connection rather than at anything in System Settings.
The other end of the call counts too
Every step so far assumes the fault sits on the sharing machine. Sometimes it does not. A viewer on an outdated browser, or on a connection that cannot sustain the incoming stream, will report a black or frozen picture while the sender's client shows a healthy live stream.
The question that separates these cases is whether everyone in the channel is affected or only some people. If a single viewer sees nothing while four others watch normally, the sending Mac is fine and the investigation belongs on the other side. If nobody can see anything, the local checks in this article apply.
There is a related habit worth adopting. Keeping the desktop client, a browser tab, and a standalone window all signed in at once makes every future fault harder to reason about, because the behaviour then depends on which one the share was started from. Picking one container for streaming, granting permission to that one, and using the others only for reading messages removes an entire class of confusion. The next time something fails, there is exactly one row in System Settings to check and one client version to confirm.
What none of this fixes
Two limits sit outside the Mac entirely. Voice channels carry Connect, Speak, and Video permissions assigned by role, and without the right ones the share never starts regardless of local configuration. A failure confined to one server almost always lands here, and only an administrator can resolve it.
The other is a viewer cap. Discord documents that any number of users can share in a voice call but only 50 users can watch an individual screen share. In a large server, reports that some people cannot see the stream may simply be that ceiling.
What to change first
Ask the viewer whether the picture is visible, then check either the Screen & System Audio Recording list or the macOS version, but not both at once. Once the fault is identified, pick one container for streaming and keep it, and if that container should be a standalone window rather than a tab, Kagemusha builds one around a Chromium browser already installed, with the Supported services list and the Guide covering what carries over.
Frequently asked questions
Why do viewers only see a black screen when sharing from a Mac?
macOS has not granted screen recording to the application in use. Open System Settings, go to Privacy & Security, then Screen & System Audio Recording, and turn on the entry for the client or browser being used. If it is not listed at all, add it with the button below the list.
The video works but nobody hears the game audio. What is wrong?
Two things gate audio. Application and game audio sharing requires macOS 13 or later, and audio capture is documented as available in the Windows desktop client, the macOS desktop client, the Chrome browser, and mobile clients. A Safari or Firefox session will not carry sound no matter how it is configured.
Screen share stopped working right after switching browsers. Did something break?
Nothing broke. Screen recording permission is granted per application, so a different browser starts with no grant at all. Adding the new browser to the Screen & System Audio Recording list restores the previous behaviour.
Sharing works everywhere except one server. Why?
That points at channel permissions rather than the Mac. Connect, Speak, and Video are assigned by role in each voice channel, and a missing one prevents the share from starting. A server administrator has to adjust the role, since no local setting can override it.