Transparent WebM Black or Grey in Safari
Last updated: · Written by the RenderAlpha team
Facts checked against the sources below on November 9, 2026. Commands run on FFmpeg 9.0.2; playback tested in Safari 18.6, Firefox 153 and Chrome 152 on macOS 15.6.1.
If your transparent WebM looks right in Chrome but shows a box in Safari, the file is usually fine. MDN says Safari does not support alpha transparency in VP8 or VP9, the codecs a transparent WebM uses.
Short answer
Safari ignores the alpha channel of a VP9 WebM and shows the colors stored under the transparent pixels instead: grey in WebKit’s bug report, black if your encoder wrote black there. The file is not broken. In our test Safari 18.6 played an HEVC-with-alpha file transparently, so serve that to Safari and the WebM to other browsers.
What the sources say
Four primary sources cover this. We opened each one on November 9, 2026, and the table lists only what the pages literally say.
Two details matter for the fix. The WebKit report is about VP9 with transparency, it was still open (status NEW) when we checked, and it does not name a fixed version. Apple’s talks cover HEVC with alpha, which is a different codec path from VP9.
| Source | What it says |
|---|---|
| MDN web video codec guide | Safari does not support alpha transparency in VP8 or VP9 video. |
| WebKit bug 275908 | Reported June 26, 2024: “Plays back slowly, and with a grey background rather than transparent.” Status NEW, last modified October 29, 2026. |
| Apple, WWDC19 session 506 | HEVC video with alpha is supported in iOS 13, tvOS 13 and macOS Catalina, including in Safari on iOS 13 and macOS Catalina. |
| Apple, WWDC19 session 518 | Alpha channel video can be used anywhere video is used on the web, with no special syntax and no special MIME type. |
What we measured in Safari, Chrome and Firefox
We cut a 5 second, 1280×720 clip out of our own demo footage and saved it twice: as a VP9 WebM with alpha (1.0 MB) and as an HEVC-with-alpha .mov (2.3 MB). On November 9, 2026, on one Mac running macOS 15.6.1, we loaded both files in each browser and read back the top-left pixel of the first frame. That pixel sits in the transparent area, so alpha 0 means the browser kept the transparency and alpha 255 means it did not.
In Safari 18.6 the WebM came back opaque, with the color (118, 115, 104) from underneath the transparent area. That is Safari ignoring the alpha channel and showing whatever the file stores there, which is why people report grey or black depending on the file. Only the file’s own pixel values decide which.
| Browser (macOS 15.6.1) | VP9 WebM with alpha | HEVC with alpha (.mov) | File picked by the two-source tag below |
|---|---|---|---|
| Safari 18.6 | Not transparent (alpha 255) | Transparent (alpha 0) | HEVC, transparent |
| Firefox 153 | Transparent (alpha 0) | Not transparent (alpha 255) | WebM, transparent |
| Chrome 152 (Chromium in the Claude desktop app) | Transparent (alpha 0) | Transparent when loaded directly | WebM, transparent |
Check that the file itself is fine
Before you change anything, confirm the WebM really has an alpha channel. If it is transparent in Chrome or Firefox over a colored page, as in the table above, a Safari failure is not a bad export.
You can also read the file’s metadata. A VP9 WebM with alpha keeps the alpha plane separate, so the first command reports a normal pixel format plus an alpha_mode tag. The second command decodes the file with libvpx and shows the real format.
ffprobe -v error -select_streams v:0 -show_entries stream=pix_fmt:stream_tags=alpha_mode -of default=nw=1 clip.webm
ffmpeg -hide_banner -c:v libvpx-vp9 -i clip.webm -frames:v 1 -f null -Black or grey: which problem do you have?
People say “black”, but the causes are different and need different fixes. Use the symptom to pick the row.
| Symptom | Likely cause | What to do |
|---|---|---|
| Grey or black box in Safari, transparent in Chrome and Firefox | Safari ignores VP9 alpha (MDN, WebKit bug 275908) | Serve HEVC with alpha to Safari, see Fix 1 below. |
| Black box in every browser and player | The file has no alpha channel, for example an H.264 MP4 | Export again as WebM or ProRes 4444. See video formats that keep transparency and how to export with an alpha channel. |
| Black only in OBS | The source is not set up for alpha | Follow the OBS transparent video guide. |
Fix 1: give Safari an HEVC file with alpha
Apple’s sessions say HEVC with alpha works in Safari on iOS 13 and macOS Catalina and later, and our test above confirms it on Safari 18.6. Put the HEVC file first with a codecs type, and the WebM second. Browsers that cannot play the HEVC type skip it: in our test Firefox and Chrome moved on to the WebM, and Safari used the HEVC file.
You need a source that already has transparency, for example a transparent WebM or a ProRes 4444 file. On a Mac, FFmpeg can encode HEVC with alpha through Apple’s VideoToolbox. The -alpha_quality option appears in ffmpeg -h encoder=hevc_videotoolbox (range 0 to 1, default 0). The command below made the 2.3 MB HEVC file we tested.
ffmpeg -c:v libvpx-vp9 -i clip.webm -c:v hevc_videotoolbox -alpha_quality 0.75 -tag:v hvc1 clip-hevc.movThe HTML that served each browser the right file
This is the exact pattern we tested. Both files sit in one video element, HEVC first. Keep autoplay, muted, loop and playsinline so it plays on iPhone.
It worked in all three browsers on one Mac. We did not test iOS, Windows, Android, Edge, or desktop Chrome with hardware HEVC decoding, which may accept the HEVC type. If a browser picks the HEVC file and shows no transparency, switch to choosing the file with a script that checks for Safari.
<video autoplay muted loop playsinline>
<source src="clip-hevc.mov" type='video/mp4; codecs="hvc1"'>
<source src="clip.webm" type="video/webm">
</video>Fix 2: skip transparency if the page background is a flat color
If the video sits on a plain page background, you do not need an alpha channel at all. Export an MP4 on a solid color that matches the page and it plays the same everywhere, Safari included. The upload tool can export MP4 on a preset color, any color you pick, or your own image. For a transparent sticker or chat reaction, a transparent GIF avoids the VP9 problem, but it only has fully transparent or fully opaque pixels.
What we exported, and what we did not test
RenderAlpha exports transparent WebM, ProRes 4444 (clips up to 10 seconds), transparent GIF and MP4 on a color or image. It does not export HEVC with alpha, so use the steps above to make that file. See specs and limits for the numbers.
Our browser results come from one Mac and one pair of test files. Treat them as a starting point and test your own file on the devices your visitors use.
Frequently asked questions
Why is my transparent WebM grey or black in Safari?
Safari ignores the alpha channel of VP9 video, so it shows the colors the file stores under the transparent pixels. WebKit bug 275908 describes a grey background, and MDN lists Safari as not supporting alpha in VP9. In our test, Safari 18.6 returned an opaque pixel from the transparent area.
Is my WebM broken if it fails in Safari?
Usually not. If the same file is transparent in Chrome or Firefox, the alpha channel is there. Check it with the ffprobe command above, then serve Safari a different file.
Will re-exporting the WebM fix it?
No. Re-encoding keeps the same VP9 codec, and Safari’s limit is about the codec, not your settings. Change the file you serve to Safari instead.
What does Safari support instead?
HEVC video with alpha. Apple’s WWDC19 talks say Safari supports it on iOS 13 and macOS Catalina and later, and Safari 18.6 on macOS 15.6.1 returned a transparent pixel for our HEVC test file.
Does RenderAlpha export HEVC with alpha?
No. It exports transparent WebM, ProRes 4444, transparent GIF and MP4. Use the ffmpeg command above on the WebM or ProRes file to make the HEVC version, or read the format comparison.
Why does my transparent video look black everywhere?
Black in every browser usually means the file never had an alpha channel, for example an H.264 MP4. Re-export from the source as WebM or ProRes 4444. See how to make a transparent WebM.
Sources
Primary sources we checked. The date is when we last opened each page.
- MDN: Web video codec guide: Safari and alpha in VP8 and VP9 (Retrieved )
- WebKit bug 275908: VP9 with transparency plays back incorrectly: grey background, status NEW (Retrieved )
- Apple WWDC19 session 506: HEVC Video with Alpha: iOS 13, macOS Catalina (Retrieved )
- Apple WWDC19 session 518: What’s New for Web Developers: alpha video in the video element (Retrieved )