A how-to for colorists
How to show color grading work online without compression
Send one file, untouched, and prove what arrived.
A grade lives in shadow gradation, in grain structure and in the soft bloom around a highlight. Those are the first three things a rate-limited re-encode spends its way out of. A before and after is worse still: two halves, re-encoded by different amounts, judged against each other. This page is the practical build, from how you cut the comparison to how you check what the client actually received.
Video hosting for filmmakers · 5 GB free · Paid plans from USD 9/month
Updated September 2026
The short answer
Put both halves in one file,
and let nothing re-encode it.
A before and after is not a video. It is a controlled comparison, and a re-encode is an uncontrolled variable applied to both halves in different amounts. Whatever the client concludes from a re-encoded comparison, they did not conclude it about your grade.
The reason is mechanical rather than rhetorical. A rate-limited encoder allocates bits according to what is in each frame. An ungraded log shot is flat, low in contrast and cheap to encode. A graded shot with crushed blacks, a bloomed highlight and grain running through the whole frame is expensive. Feed both to the same ladder under the same ceiling and the expensive half is the half that gets approximated away. The delta the viewer sees is your work plus an encoder’s opinion, and there is no way to separate the two after the fact.
So the first decision is the host, and it is a binary one: either the platform re-encodes your upload into renditions, or it stores your file and serves those bytes. Everything else on this page, the way you cut the comparison, the codec you finish to, the checks you run, only matters once that step is off the table.
0
Encodes on our side
The player is handed the stored object. There is no encode step at upload or at playback.
50 GB
Per file ceiling
The only published limit on an upload here. No bitrate ceiling and no resolution ceiling exists.
4:2:0
Chroma the Windows HEVC decoder names
The only chroma format in the only primary document that names one. 4:2:2 is absent from it.
35 to 45
Mbps YouTube asks for at 4K
Its own recommended upload range at 2160p standard frame rate, before its ladder re-encodes the file.
What goes first
A ceiling takes the shadow falloff,
the grain and the halation.
These three are not a random list. They are the three most bit-hungry things a graded frame can contain, which is exactly why they are the three that come back wrong.
Shadow gradation. A lifted black, a slow roll into a night exterior, a face held two stops down. The information there is small differences between adjacent dark values, and coarse quantization is the act of throwing away small differences. The result is banding across the falloff you spent the longest shaping, and it shows up on the client’s screen and not on yours.
Grain. Grain is high-frequency noise across the entire frame, which defeats the frame-to-frame prediction every modern codec depends on. An encoder under a ceiling has two options: spend real bits everywhere at once, or smooth it. It smooths it. A film-grain emulation you tuned to a specific texture arrives as a soft wash, and the client tells you the look feels digital.
Halation. The bloom around a hot highlight is a wide, smooth, low-contrast gradient with a colored edge, sitting next to the brightest thing in the frame. That is the same expensive case as a sky, made harder by the neighbouring contrast. It is also the part of a look a client notices without having a word for it, so when it flattens they report the image as ordinary rather than as compressed.
10-bit master
1,024 shades per channel. The night sky falls off smoothly, the way the camera saw it.
Crushed to 8-bit, then starved
256 shades, and aggressive quantization spends even fewer on dark areas. The falloff turns into visible bands.
Illustration rendered by your browser, exaggerated for visibility. The mechanism is real: fewer code values plus coarse quantization equals banding.
Building the comparison
One timeline, one export,
not two uploads.
A before and after built as two separate uploads is two encodes on a platform that re-encodes, and two playback sessions everywhere else. Neither of those is a controlled comparison. Put both halves through exactly one path.
Build the comparison in the timeline
Nest the ungraded and graded versions of the same shot and move a wipe across the boundary, or hold a split screen for a few seconds before opening it out. A wipe is the stronger tool because the viewer sees both versions of the same pixels rather than two different regions of the frame, so composition cannot be mistaken for grade.
Include the shots that can fail
The comparison should contain a slow falloff into near-black, a wide area of smooth gradation and, if the show carries grain, a grainy shot. A reel that opens on a locked-off interview in even light looks correct everywhere and proves nothing about the delivery.
Export once, at the quality you want judged
One master export of the finished comparison. Do not pre-shrink it for the web, and do not export the two halves separately and cut them together in a second pass, which re-encodes one half twice. Our own guidance in the upload panel is MP4 or MOV with H.264, HEVC or AV1 at 80 to 100 Mbps for compatibility, and that is a recommendation of ours, not a limit we enforce.
Label the halves on screen
A small persistent card reading before and after, on the correct side of the wipe, costs nothing and prevents the single most common piece of feedback noise: a client who liked the wrong half and told you so with confidence.
The case for keeping an A then B cut as well
The codec decision
Finish to the codec the client’s machine decodes,
not the one your suite prefers.
Once nothing re-encodes the file, the only remaining question is whether the viewer’s browser can decode it. That question is answered by vendor documentation, and the documentation is thinner than the internet suggests.
Edge quotes from the Microsoft Edge video playback troubleshooting article; profile, chroma and resolution facts from the Media Foundation H.265 decoder specification; the 4:2:0 chroma line from YouTube's recommended upload encoding settings. All fetched 7 September 2026. The shades-per-channel row is arithmetic: 8-bit gives 256 code values per channel, 10-bit gives 1,024.
Two numbers from that specification are worth carrying into a delivery decision. The documented maximum resolution for that decoder is 4096 by 2304 pixels, which fits UHD at 3840 by 2160 and DCI 4K at 4096 by 2160 and nothing larger. And hardware acceleration is guaranteed only to 1920 by 1088; above that the documentation says decoding uses DXVA if the hardware supports it and software otherwise. A client reporting that your 4K reel stutters while the fan runs is usually describing a software decode, not a bad file.
On 10-bit 4:2:2 specifically, the discipline is to say what is written down. Nobody documents 10-bit 4:2:2 HEVC decode in a video element, in either direction. Apple documents HEVC 10-bit 4:2:2 as an encoding capability added in Compressor 4.6.1 on Apple silicon Macs running macOS Monterey 12.3 or later, which is a statement about producing the format and not about a browser reading it. The full reading of every vendor document is in HEVC 10-bit 4:2:2 browser playback.
Our side of it
We never re-encode,
so the comparison stays a comparison.
The file is served as uploaded
There is no encode step at upload and none at playback. A 10-bit export stays 10-bit, a 4:2:2 export stays 4:2:2, grain stays grain. Nothing is normalized on the way in, which is the whole product and also the reason the decode question belongs entirely to the viewer's browser.
No ceiling to negotiate against
There is no delivery bitrate figure to publish here, because no delivery encoder exists to have one. The only limit on a file is its size, 50 GB per upload. Storage is the only meter: there are no bandwidth caps, no per-view charge, and external client viewers never need a paid seat.
The download is the same object
Turn on downloads for a single film and the viewer gets the stored file with an attachment header added, byte-identical to your export. Leave it off and no download link is ever generated. It is per film, on every plan.
The player is the same on every plan
No platform logo, no watermark, no ads, no suggested videos and no end screen, on the free plan exactly as on the paid ones. The only logo it can display is one you upload yourself, which matters when the reel is the pitch.
For showing the work rather than sending it to one client, the portfolio page is built from the films already in your library. Tag one Hero and it runs full width, tag two Featured and they sit side by side, everything else lands three across, in the order you choose. It lives at your own address, yourname.uncompressed.io, and you can drop text, images, buttons and a contact form between the rows. Autoplay is off by default; when you turn it on it applies only to Hero cards, muted, one at a time. The longer version of that setup is in video portfolio hosting.
The cost of this shape of host, stated plainly, because it is real. With no ladder there is no lower rung, so a viewer on a thin connection buffers instead of quietly sliding to a softer version of your grade. For a public showreel aimed at an unknown audience on unknown devices, an adaptive platform is the better engineering and you should use one. For a before and after going to people whose judgement of the picture is the point, buffering for ten seconds and then seeing the actual image is the better failure mode.
Grade for where it will be seen
A reel that lives in a browser
is a different deliverable from a theatre pass.
Removing the re-encode does not remove the viewing environment, so choose the environment before you finish the export. A reel that will be opened on laptops in offices is watched in a bright room, on a panel that is probably brighter and cooler than your reference, by someone who will not dim the lights. A pass that reads beautifully at 100 nits in a dark suite can read as murky there, and the client will describe your careful shadow work as underexposed.
The practical answer is not to compromise the grade. It is to make the version you send match the room it is going to. Keep the reference pass for the deliverable and the archive, and build the web reel with a slightly lifted floor if the audience is unknown, checking it on a normal consumer laptop before it goes out. Say which one the viewer has, in one line next to the link. A colorist who states the intent removes an argument that would otherwise arrive as a note.
The same logic applies to the split screen. If the ungraded side is log, tell the viewer it is log rather than letting them read it as a failed grade. If it has a transform applied, say which. A comparison with a stated method is evidence. A comparison without one is a picture of two videos.
Verification
Check what the client actually received,
rather than what the platform claims.
Any host can say the words. These four checks settle it with evidence in about ten minutes, on whichever platform you are using today, including this one.
Save the file the page served
Turn on the per-film download and save it, or save it from the client's machine. On a host that stores and serves your master, that file should start with an identical file size to your export. On a platform that re-encodes, the stream and the download are different objects and the download may not be offered at all.
Read the average bitrate off the saved file
Divide the file size by the duration, or read it in any media information utility. That single number tells you whether what was delivered is your export or a rendition. If your export left the suite at a high rate and the delivered file works out to a small fraction of it, a ladder answered the question for you.
Compare a frame at an agreed timecode
Pick a timecode inside the worst-case shot, export that frame from your own timeline, and have the client pause there and send a screen grab. Banding across a falloff and the loss of grain structure are both visible at a glance. Be clear about what this catches: encode loss, not display accuracy.
Ask for the machine, not the verdict
Ask which browser and whether it is a Mac or a PC, and whether playback was smooth, stuttering, black with audio, or refused to start. Those answers explain almost every result, and they are worth writing down, because the same client will review on the same machine next time.
The honest limit
No web player is a grading reference,
including ours.
Say this before the link goes out
Read together, the whole method is short. Build the comparison as one file so the halves are treated identically. Finish to a codec the receiving machine documents, and keep 4:2:2 for the download rather than the review link. Host it where nothing re-encodes it. Verify the delivered file rather than the marketing. Then reserve the calibrated room for the one session that decides the show. The neighbouring answer page, video hosting for colorists, covers the hosting side of that in more depth, including the published delivery ceilings on the platforms that do re-encode.
Questions
Frequently asked
How do I show color grading work online without compression?
Cut the before and after into a single file, export it once at the quality you want judged, and host it somewhere that performs no transcode, so the bytes the viewer receives are the bytes you exported. On uncompressed.io the player is handed the stored object directly and there is no encode step anywhere in the path. Then verify the result rather than trusting it: turn on the per-film download, save what the page served, and compare the file size against your export.
Should the before and after be one file or two uploads?
One file. Two uploads are two separate encodes on any platform that re-encodes, and even on a platform that does not, they are two playback sessions on a viewer's machine, at different moments, with different buffering. A single file puts both halves through exactly one path, so any difference the viewer sees is a difference you made in the grade.
Is a split screen or a wipe more honest than an A then B cut?
Yes, for judging the work, because the eye compares side by side far better than it compares across a cut. A wipe is the stronger of the two: it moves the boundary across the same shot, so the viewer sees the ungraded and graded versions of the same pixels rather than two different regions of the frame. Keep an A then B cut for the parts of the work a split screen cannot show, such as a look that changes the framing energy of the whole sequence.
Can I upload a 10-bit 4:2:2 export?
You can, and it is stored and served untouched, because nothing on our side re-encodes it. Whether a given browser decodes 10-bit 4:2:2 HEVC in a video element is not documented by any vendor, in either direction. The only primary document that names chroma formats for HEVC playback is the Windows Media Foundation decoder specification, and it lists 4:2:0 only. So treat 4:2:2 as a file to hand over rather than a review link, or test the exact file on the exact machine first.
Can the client download the graded file itself?
Yes. Every film carries an allow-download switch. When it is on, the watch page issues a signed download of the same stored object the player streams, with only an attachment header added, so what the viewer saves is byte-identical to what you uploaded. It is per film, so one reel can be downloadable while the rest of the library stays view-only, and there is no tier gate on it.
Is a web player good enough to sign off a grade?
No, and ours is not either. A browser on an unknown panel, in an unknown room, with unknown color handling is a communication tool, not a reference. Removing the re-encode removes the one variable a host controls, which is worth doing, and it leaves calibration, ambient light and display space untouched. When another colorist or a supervising DP has to judge the work, send the file for calibrated local playback or sit in a proper room.
Show the grade you actually made
uncompressed.io stores your export and streams those exact bytes. No transcode, no rendition ladder, no bitrate ceiling, and a per-film switch that hands the viewer the file itself.
Sources
- 1.Microsoft Learn: H.265 / HEVC video decoder (Media Foundation), format constraints, profiles, chroma formats, resolution limits and the DXVA guarantee (fetched 7 September 2026)
- 2.Microsoft Learn: fix Microsoft Edge video playback problems, the codec support table (fetched 7 September 2026)
- 3.YouTube Help: recommended upload encoding settings, High Profile, 4:2:0 chroma subsampling and the SDR bitrate table (fetched 7 September 2026)
- 4.Apple Support: Compressor 4.6.1 release notes, HEVC 10-bit 4:2:2 encoding on Apple silicon (fetched 7 September 2026)
