Convert WTV to FLV — Free Online Tool
Convert WTV recorded TV files from Windows Media Center into FLV format, re-encoding the video with H.264 (libx264) and audio with AAC — producing a compact Flash Video file suitable for legacy web streaming pipelines. This is especially useful for archiving or republishing DVR recordings captured from digital broadcast.
to
FFmpeg Command
Copy this command to run the same conversion locally with FFmpeg on your desktop. Download FFmpeg
Drop your WTV file here
or click to browse
Free — no uploads, no signups. Your files never leave your browser.
Settings
Note: Browser-based encoding uses approximate quality targets. For precise CRF compression, copy the FFmpeg command above and run it on your desktop.
Estimated output:
Conversion Complete!
DownloadHow It Works
WTV files produced by Windows Vista/7 Media Center typically contain MPEG-2 or H.264 video alongside AC-3 or AAC audio, wrapped in a Microsoft-proprietary broadcast-oriented container. Because FLV does not share this container structure and has strict codec requirements, the conversion is a full transcode: the video stream is re-encoded to H.264 using libx264 with a CRF of 23, and the audio is re-encoded to AAC at 128k bitrate. The WTV container's broadcast metadata, subtitle tracks, and any secondary audio tracks (e.g., SAP or secondary language streams) are all discarded, since FLV supports none of these features. The result is a self-contained Flash Video file with a single video and single audio stream.
What Each Flag Does
| Flag | What it does |
|---|---|
ffmpeg
|
Invokes the FFmpeg binary — the open-source multimedia processing engine that powers this conversion. In the browser tool this runs as FFmpeg.wasm (a WebAssembly build), so no files leave your machine. |
-i input.wtv
|
Specifies the input file — a WTV file produced by Windows Media Center. FFmpeg reads the proprietary Microsoft broadcast container and demuxes its video, audio, subtitle, and metadata streams for processing. |
-c:v libx264
|
Re-encodes the video stream using the libx264 encoder, producing H.264 video compatible with the FLV container. This is a full transcode — the original broadcast video (often MPEG-2 or H.264) is decoded and re-compressed, not copied. |
-c:a aac
|
Re-encodes the audio to AAC using FFmpeg's native AAC encoder. The WTV source may contain AC-3 Dolby audio (common in ATSC broadcasts) or other formats; AAC is one of the two audio codecs FLV supports and provides good quality at typical broadcast bitrates. |
-crf 23
|
Sets the Constant Rate Factor for libx264 to 23, which is the default quality level. Lower values (e.g., 18) produce better quality at larger file sizes; higher values (e.g., 28) reduce file size with more visible compression artifacts — relevant for high-motion broadcast content like sports. |
-b:a 128k
|
Sets the AAC audio bitrate to 128 kilobits per second. This is adequate for typical broadcast speech and music audio from a WTV recording; raise it to 192k or 256k if the source contains high-quality stereo broadcast audio worth preserving more faithfully. |
output.flv
|
Defines the output filename and tells FFmpeg to write a Flash Video container. The .flv extension triggers FLV muxing, which enforces the format's single-track audio/video constraints and discards any WTV subtitle, chapter, or secondary audio streams. |
Common Use Cases
- Publishing recorded TV episodes or sports broadcasts from a Windows Media Center DVR to a legacy Flash-based video portal or CMS that requires FLV input.
- Archiving old WTV recordings into a smaller, more portable format for long-term storage on media servers that were configured around Flash Video workflows.
- Extracting a broadcast recording made with Windows 7 Media Center and delivering it to a client or editor whose workflow ingests FLV files.
- Re-encoding a WTV capture of a live television event into FLV so it can be embedded in an older website still using JW Player or Flowplayer configured for Flash Video.
- Converting a collection of WTV DVR recordings into a uniform FLV format for batch import into a legacy video management system or broadcast archive tool.
Frequently Asked Questions
No. FLV does not support subtitle or closed-caption tracks, so any subtitles embedded in the WTV file — including CEA-608/708 captions common in broadcast recordings — will be dropped during conversion. If you need to preserve captions, consider extracting them separately before conversion or choosing a different output format like MP4 or MKV that supports subtitle streams.
FLV supports only a single audio track, so only the default (first) audio stream from the WTV file will be encoded into the FLV output. Secondary audio tracks, including SAP broadcasts or alternate language streams often found in digital TV recordings, will be silently discarded. If preserving a specific non-default audio track is important, you would need to explicitly select it in the FFmpeg command using the '-map' flag before running the conversion.
Because the WTV source is itself a lossy broadcast recording (typically MPEG-2 or H.264), and the output re-encodes to H.264 at CRF 23, you are introducing a second generation of lossy compression. At CRF 23 the visual difference is usually subtle for standard-definition content, but high-motion broadcast footage like sports may show some additional compression artifacts. If quality is critical, lower the CRF value (e.g., to 18) to reduce quality loss at the cost of a larger output file.
To improve video quality, lower the CRF value: replace '-crf 23' with '-crf 18' for noticeably better quality (and a larger file). To reduce file size at the cost of some quality, raise it to '-crf 28' or higher. For audio, replace '-b:a 128k' with '-b:a 192k' or '-b:a 256k' for higher-fidelity AAC audio — useful if the source WTV recording contains high-quality broadcast audio. These changes work identically whether running the command locally or understanding what the browser tool is doing.
Yes. On Linux or macOS you can run: 'for f in *.wtv; do ffmpeg -i "$f" -c:v libx264 -c:a aac -crf 23 -b:a 128k "${f%.wtv}.flv"; done'. On Windows Command Prompt, use: 'for %f in (*.wtv) do ffmpeg -i "%f" -c:v libx264 -c:a aac -crf 23 -b:a 128k "%~nf.flv"'. This is particularly valuable for large WTV archives from a Media Center DVR, where the browser tool's 1GB file limit may not be sufficient for full-length recorded programmes.
FLV is a legacy format tied to Adobe Flash Player, which reached end-of-life in December 2020 and is no longer supported by modern browsers. If your goal is web streaming or long-term archival of your WTV recordings, MP4 (H.264 + AAC) is a far better choice today, offering near-universal compatibility without the Flash dependency. FLV output from this tool remains useful only for specific legacy systems — such as older streaming servers, CDNs, or video platforms — that were built around Flash Video workflows and still require FLV input.
Technical Notes
WTV is a proprietary Microsoft container format introduced with Windows Vista Media Center, designed specifically for storing digital broadcast recordings including ATSC, ClearQAM, and DVB streams. It supports rich broadcast metadata (programme guide info, ratings, channel data), multiple audio tracks (SAP, multilingual), and subtitle/caption data — none of which survive the conversion to FLV. FLV is a highly constrained container: it accepts only a single video and single audio stream, has no subtitle support, no chapter support, and is optimised for progressive HTTP delivery via Flash Player. The re-encode from WTV to FLV using libx264 and AAC is a generation loss transcode regardless of the source codec, because WTV's container structure cannot be remuxed directly into FLV. The default CRF 23 is a reasonable midpoint for broadcast-originated content but may be insufficient for high-bitrate HD recordings. Note also that very long WTV recordings (e.g., multi-hour films or sports events) may produce FLV files that exceed practical playback limits in some legacy Flash players, which had known issues with large file seeking. Processing files over 1GB is best handled using the displayed FFmpeg command locally rather than the browser-based tool.