Convert WTV to Y4M — Free Online Tool

Convert WTV (Windows Media Center recorded TV) files to Y4M (YUV4MPEG2) uncompressed video for lossless frame-accurate processing. The video stream is decoded from its H.264 or MJPEG encoding in the WTV container and written as raw YUV pixel data, making it ideal for piping into tools like x264, FFmpeg filters, or video analysis software.

FFmpeg Command

Copy this command to run the same conversion locally with FFmpeg on your desktop. Download FFmpeg

Free — no uploads, no signups. Your files never leave your browser.

Estimated output:

Conversion Complete!

Download

How It Works

WTV files store broadcast TV recordings captured by Windows Vista/7/10 Media Center, typically encoding video with H.264 (libx264) or MJPEG and audio with AAC or MP3. During this conversion, FFmpeg demuxes the WTV container, fully decodes the compressed video stream back to raw YUV frames, and writes those frames sequentially into a Y4M file with the YUV4MPEG2 header format. Y4M carries no compression — every pixel value is stored explicitly — so the output file will be dramatically larger than the source WTV. Audio is dropped entirely, since Y4M has no audio track support. The result is a frame-accurate, lossless intermediate that other tools can read without needing to understand WTV's proprietary broadcast container structure.

What Each Flag Does

Flag What it does
ffmpeg Invokes the FFmpeg binary. In the browser-based tool, this runs via FFmpeg.wasm (WebAssembly), executing the same logic as desktop FFmpeg without uploading your WTV file to any server.
-i input.wtv Specifies the input WTV file. FFmpeg uses its WTV demuxer to parse the ASF-based container, reading the compressed H.264 or MJPEG video stream along with audio and metadata embedded by Windows Media Center at recording time.
-c:v rawvideo Instructs FFmpeg to encode the output video using the rawvideo codec — meaning decoded YUV frames are written directly to disk with no compression step. This is required for Y4M, which is by definition an uncompressed format, and ensures every pixel from the decoded WTV broadcast recording is preserved exactly.
output.y4m Specifies the output filename with the .y4m extension, which causes FFmpeg to use the yuv4mpegpipe muxer and prepend the YUV4MPEG2 header containing frame dimensions, frame rate, pixel format, and interlacing information read from the decoded WTV stream.

Common Use Cases

  • Feed decoded TV recordings into a lossless video processing pipeline (e.g., avisynth, vapoursynth, or x264 via stdin pipe) without intermediate transcoding artifacts
  • Perform frame-accurate analysis or quality metrics (PSNR, SSIM, VMAF) on recorded broadcast content by providing a fully uncompressed reference stream
  • Extract raw video frames from a WTV DVR recording for frame-by-frame inspection or computer vision workflows that cannot parse H.264 inside a WTV container
  • Pre-process a recorded TV show before re-encoding with a custom encoder chain that requires Y4M input, such as AV1 encoding with libaom or SVT-AV1 via pipe
  • Verify the integrity of a WTV recording by confirming FFmpeg can fully decode every frame into raw YUV without errors before archiving or re-encoding
  • Use the Y4M output as a lossless intermediate when compositing or color-grading recorded broadcast footage in tools that accept Y4M but not WTV

Frequently Asked Questions

WTV files store video compressed with codecs like H.264 or MJPEG, which can achieve compression ratios of 50:1 or more. Y4M is completely uncompressed — every YUV sample for every pixel of every frame is stored as raw bytes. A one-hour HD broadcast recording that is 6–8 GB as a WTV file can easily expand to 200–400 GB as a Y4M file. This is expected and intentional; Y4M's purpose is lossless intermediate storage, not long-term archiving.
The Y4M output is a lossless decode of whatever was stored in the WTV file. No additional quality is lost during the conversion — every pixel is reconstructed exactly as the WTV decoder produces it. However, the WTV recording itself was originally encoded with lossy compression (H.264 or MJPEG) when the TV broadcast was captured, so that original lossy generation loss is already present. Y4M simply preserves that decoded state perfectly with no further degradation.
Y4M is a video-only format with no support for audio tracks, subtitles, chapters, or metadata. All of these streams — including AAC or MP3 audio, closed captions, EPG metadata, and multiple audio tracks that WTV supports — are discarded during conversion. If you need to preserve audio alongside the lossless video, consider converting to a format like NUT or a raw pipe workflow where audio can be handled separately.
Yes — this is one of Y4M's primary use cases. You can replace the output filename with a pipe using FFmpeg's pipe protocol or shell piping. For example: ffmpeg -i input.wtv -c:v rawvideo -f yuv4mpegpipe - | x264 --demuxer y4m -o output.mkv -. This avoids writing hundreds of gigabytes to disk and is the standard workflow for high-quality re-encoding of broadcast recordings.
You can add a -pix_fmt flag before the output filename to control the YUV chroma subsampling written into the Y4M file. For example, ffmpeg -i input.wtv -c:v rawvideo -pix_fmt yuv444p output.y4m. The default will match what the WTV decoder produces, typically yuv420p for H.264-encoded broadcast content. Some downstream tools require a specific pixel format, so check your target application's Y4M requirements before changing this.
Yes, on the command line you can loop over files using a shell script. On Linux or macOS: for f in *.wtv; do ffmpeg -i "$f" -c:v rawvideo "${f%.wtv}.y4m"; done. On Windows Command Prompt: for %f in (*.wtv) do ffmpeg -i "%f" -c:v rawvideo "%~nf.y4m". Be aware that batch-converting multiple HD recordings will consume an enormous amount of disk space given Y4M's uncompressed nature, so ensure you have sufficient storage before running a batch job.

Technical Notes

WTV is a proprietary Microsoft container introduced in Windows Vista Media Center, built on the Advanced Systems Format (ASF) base. It stores broadcast TV recordings with rich metadata including EPG information, channel data, and copy-protection flags. FFmpeg's WTV demuxer handles the container well but may occasionally struggle with recordings that have encryption or DRM applied by cable providers — unencrypted over-the-air recordings are the most reliably handled. The Y4M (YUV4MPEG2) format stores a plain-text header describing frame dimensions, frame rate, pixel format, and interlacing, followed by raw frame data. Interlaced broadcast content captured in WTV (common with ATSC and DVB recordings) will be preserved as interlaced fields in the Y4M output unless you add a deinterlace filter. The -c:v rawvideo codec instruction tells FFmpeg to write decoded frames directly without any re-compression. No video quality parameters apply since rawvideo involves no encoding step. File sizes should be estimated as: width × height × bytes-per-pixel × frame-rate × duration-in-seconds, which for 1080i broadcast content works out to roughly 3–4 GB per minute of footage.

Related Tools