Convert WMV to TS — Free Online Tool
Convert WMV files to MPEG-2 Transport Stream (TS) format by re-encoding the Microsoft-proprietary MSMPEG-4 video with H.264 (libx264) and transcoding WMA audio to AAC — producing a broadcast-compatible TS file ready for live streaming pipelines, HLS packaging, or broadcast ingest systems.
to
FFmpeg Command
Copy this command to run the same conversion locally with FFmpeg on your desktop. Download FFmpeg
Drop your WMV 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
WMV files use Microsoft's ASF container with MSMPEG-4 video and WMA (wmav2) audio — neither of which is natively supported in MPEG-2 Transport Stream. This means a full transcode is required: the video stream is decoded from MSMPEG-4 and re-encoded as H.264 using libx264 at CRF 23 (a visually near-lossless quality level), and the WMA audio is decoded and re-encoded as AAC at 128k. The output TS container wraps these streams in MPEG-2 Transport Stream packets, which are structured for real-time transmission, making the file compatible with broadcast systems, HLS segmenters, and streaming ingest tools that refuse ASF/WMV input.
What Each Flag Does
| Flag | What it does |
|---|---|
ffmpeg
|
Invokes the FFmpeg binary. In this browser tool, FFmpeg runs entirely as WebAssembly (FFmpeg.wasm) inside your browser — no data leaves your machine. The same command runs identically on a local FFmpeg desktop installation for files over 1GB. |
-i input.wmv
|
Specifies the input WMV file. FFmpeg automatically detects the ASF container and identifies the MSMPEG-4 video and WMA audio streams inside it — no additional input flags are needed to read WMV. |
-c:v libx264
|
Transcodes the video stream using the libx264 H.264 encoder, replacing the MSMPEG-4 codec from the WMV source. H.264 is required here because MSMPEG-4 is not a valid codec in the MPEG-2 Transport Stream container. |
-c:a aac
|
Transcodes the audio from WMA (wmav2) — the default codec in WMV files — to AAC using FFmpeg's native AAC encoder. AAC is one of the standard audio codecs in MPEG-2 Transport Stream and is required for HLS compatibility. |
-crf 23
|
Sets the H.264 Constant Rate Factor to 23, which is libx264's default and targets visually transparent quality for most video content. Lower values (e.g., 18) produce higher quality at the cost of a larger TS file; higher values (e.g., 28) reduce file size with more visible compression. |
-b:a 128k
|
Sets the AAC audio bitrate to 128 kilobits per second. This is a standard broadcast-compatible audio bitrate that balances file size and audio fidelity for the AAC codec — sufficient for speech and most music content in streaming contexts. |
output.ts
|
Specifies the output file. The '.ts' extension tells FFmpeg to use the MPEG-2 Transport Stream muxer, which packages the H.264 video and AAC audio into broadcast-standard TS packets suitable for live streaming, HLS segmentation, or broadcast playout. |
Common Use Cases
- Preparing archived WMV broadcast footage for ingest into an HLS streaming pipeline that requires TS-segmented input
- Converting WMV recordings from Windows Media Player or legacy capture hardware into TS files compatible with professional broadcast playout servers
- Packaging WMV training videos into TS format for upload to IPTV or OTT platforms that require MPEG-2 Transport Stream delivery
- Transcoding WMV corporate presentations into TS so they can be streamed live via tools like FFmpeg's built-in RTMP or UDP output without a container compatibility error
- Converting WMV files captured from older Windows-based screen recorders into TS for editing in broadcast-oriented NLE software that natively handles Transport Streams
- Re-encoding DRM-free WMV archival content to TS for long-term storage in broadcast archive systems that standardize on H.264-in-TS
Frequently Asked Questions
Yes — this conversion involves a full transcode, so there is generational quality loss. The original WMV was already lossy (MSMPEG-4 video, WMA audio), and re-encoding to H.264 and AAC introduces a second round of compression. However, the default CRF 23 setting for H.264 is considered visually transparent for most content, meaning the quality difference is rarely noticeable on standard video. If your WMV source was encoded at a very low bitrate to begin with, the H.264 output cannot recover detail that was already discarded.
Because MPEG-2 Transport Stream does not support MSMPEG-4 (Microsoft's proprietary MPEG-4 variant used in WMV). The TS container is standardized for broadcast and only natively carries codecs like H.264, H.265, MPEG-2 Video, and AAC audio. The WMV's video codec is incompatible with TS's packetization layer, so stream copying with '-c:v copy' would either fail or produce an unplayable file. A full decode-and-re-encode to H.264 is the correct approach.
No. DRM-protected WMV files use Microsoft's Windows Media DRM system tied to the ASF container, and this protection cannot be transferred to a TS file. More importantly, FFmpeg cannot decode DRM-protected WMV at all — it will error out on encrypted content. This tool only works with DRM-free WMV files. If your WMV plays freely in any media player without license prompts, it is DRM-free and will convert normally.
Change the '-crf 23' value to control H.264 quality. CRF (Constant Rate Factor) works on a scale where lower numbers mean higher quality and larger file sizes — CRF 18 is near-visually lossless, CRF 28 produces noticeably more compression artifacts. For archival-quality output from a WMV source, CRF 18-20 is recommended. For smaller files intended for streaming, CRF 25-28 is a reasonable tradeoff. You can also increase audio quality by changing '-b:a 128k' to '-b:a 192k' or '-b:a 256k' for richer AAC output.
Yes — TS with H.264 video and AAC audio is the exact format used as the segment container for HLS (HTTP Live Streaming). The output from this conversion can be directly segmented using FFmpeg's 'hls' muxer or tools like Apple's mediastreamsegmenter. This is one of the primary reasons to convert WMV to TS: WMV's ASF container is completely incompatible with HLS, while TS is the native HLS segment format as defined in RFC 8216.
Yes. On Linux or macOS, you can use a shell loop: 'for f in *.wmv; do ffmpeg -i "$f" -c:v libx264 -c:a aac -crf 23 -b:a 128k "${f%.wmv}.ts"; done'. On Windows Command Prompt, use: 'for %f in (*.wmv) do ffmpeg -i "%f" -c:v libx264 -c:a aac -crf 23 -b:a 128k "%~nf.ts"'. This is particularly useful for converting large batches of legacy WMV archive files to broadcast-ready TS, and it's why the command is displayed on this page — files over 1GB are better handled locally via the command line than in a browser.
Technical Notes
WMV uses the ASF (Advanced Systems Format) container, which requires the special '-f asf' flag when writing WMV with FFmpeg, but no special flags are needed on the input side when reading it. The MSMPEG-4v2/v3 codecs used in WMV are Microsoft forks of the MPEG-4 Part 2 standard that are not compatible with any standardized broadcast container. During this conversion, FFmpeg must fully decode the MSMPEG-4 bitstream before re-encoding to H.264, which is computationally more expensive than a remux. Metadata from the ASF container (title, author, copyright fields stored as ASF metadata objects) is generally not preserved in the TS output, as TS has limited metadata support compared to containers like MKV or MP4. WMV's support for multiple audio tracks is technically carried through, but only the default audio track will be transcoded unless additional '-map' flags are specified. The TS output supports subtitle streams, but WMV does not carry subtitles, so no subtitle data will appear in the output. File sizes will vary significantly depending on the original WMV's content complexity — highly compressed WMV files re-encoded at CRF 23 may actually grow in size if the source was encoded at a very low bitrate, because H.264 at CRF 23 targets visual quality rather than a target file size.