Muting a video should not re-encode the picture, so this one copies it
Removing the sound from a video sounds like an edit, and most tools treat it as one: they decode every frame, drop the audio, and encode the picture again. That costs as long as the video plays, and it costs quality, because an encoder never gives back exactly the pixels it was handed. Neither cost buys anything, since the picture is not being changed. A video file keeps its streams separately, the pictures in one and the sound in another, interleaved in a container, and removing the sound only needs the picture stream written into a new container without the sound stream beside it. So that is all this tool does. The compressed video is copied packet by packet, and the output holds exactly the same encoded frames as the input, which is why a two hour recording is done in the time it takes to read the file rather than the time it takes to watch it.
That was checked rather than assumed. For an MP4, a MOV and a WebM, a checksum of every video packet in the muted file matches the checksum of every video packet in the original, and the muted file has no audio stream at all. Not a silent one: none. Some tools leave a track of silence behind, which players still show as a soundtrack and some platforms still process as one.
Copying has one condition that encoding does not, and it decides what the output file is. A container can only hold the codecs it was designed for. VP9 video, which is what a WebM from a browser or a screen recorder usually carries, belongs in a WebM, and putting it into an MP4 either fails or produces a file that some players refuse. So the muted video keeps the container the original came in: an MP4 stays an MP4, a MOV stays a MOV, a WebM stays a WebM. Anything the tool does not recognise is written as Matroska, the one common container that accepts practically any codec, because a file that plays in fewer places is better than a job that fails outright. MP4 and MOV outputs also have their index moved to the start, so they can begin playing before they have finished downloading.
Before any of that, the file is asked what it contains. The engine prints a table of streams when it opens a file, and the tool reads it before building the command. A file with no picture, an audio file with a video extension for example, has nothing to mute and is refused with a message that says so, instead of failing inside the engine with an error nobody can act on. The video engine is the same one the other video tools use, about 30 MB on the first run and cached afterwards, and like them it runs entirely in the browser tab, so the video is never uploaded.