# Universal Video Converter > Convert video to MP4, WebM, MOV or MKV: resize, set quality and fps, or remux losslessly. Converts MP4, MOV, MKV, WebM, AVI and other videos to MP4 (H.264/AAC), WebM (VP9/Opus), MOV or MKV. Cap the resolution, choose the quality (CRF) and frame rate, and keep the audio as is when the target container supports it. Remux-only mode changes the container without re-encoding when the codecs fit — fast and lossless. Part of usefulweb.site (https://usefulweb.site/). Results are deterministic calculations from the inputs and the listed assumptions; the API returns exactly what the web page shows. ## Use it - Human interface: https://videoconverter.usefulweb.site/ (interactive tool at https://videoconverter.usefulweb.site/tool) - JSON API: POST https://videoconverter.usefulweb.site/api/v1/calculate with a JSON object of inputs (schema: https://videoconverter.usefulweb.site/api/v1/tool) - OpenAPI: https://videoconverter.usefulweb.site/openapi.json - MCP (Streamable HTTP): https://videoconverter.usefulweb.site/mcp - tool `video_converter` ## Inputs - file (file, required): Video file - MP4, MOV, MKV, WebM, AVI, MPEG-TS, WMV, FLV; max 250 MB and 20 minutes. Processed on our server in a private temporary folder that is deleted afterwards; the result can be downloaded for about 2 hours. - format (select): Output format - remux (boolean): Remux only: change the container without re-encoding (fails if the codecs do not fit the container) - quality (select): Quality - crf (integer): Custom CRF (optional) - Overrides the quality preset. Lower = better and larger. H.264: 0–51 (18–28 typical); VP9: 0–63 (24–40 typical). - maxHeight (select): Maximum resolution - Caps the short side (height for landscape, width for portrait). Never enlarges. - fps (select): Frame rate - audio (select): Audio ## Method - The container is detected from the file content and ffprobe reads codecs, resolution, frame rate, rotation and duration. - Remux mode copies the first video stream and all audio streams (-c copy) when the target container accepts the codecs (MP4/MOV: H.264, HEVC, AV1, VP9, MPEG-4 + AAC, MP3, AC-3, Opus, FLAC; WebM: VP8, VP9, AV1 + Opus, Vorbis; MKV: almost anything). Nothing is re-encoded, so quality is identical. - Re-encoding uses libx264 (preset veryfast, CRF, High profile, yuv420p) for MP4/MOV/MKV or libvpx-vp9 (constant quality CRF, cpu-used 5, row-mt) for WebM, with -threads 2 on our 2-vCPU server. Scaling keeps the aspect ratio with even dimensions and never enlarges; the frame rate is only ever reduced. - Audio is copied when the target container supports the codec, otherwise encoded as AAC 128 kbit/s (MP4/MOV/MKV) or Opus 96 kbit/s (WebM). Subtitles and data tracks are dropped. - Before encoding, the work is estimated from output pixels × frames; jobs that would exceed about 220 s of encoding are refused with a suggestion (lower resolution/fps, trim, or remux).