Convert TS to DVR — Free Online Tool

Convert MPEG-2 Transport Stream (TS) files to DVR format using H.264 video and AAC audio — ideal for archiving broadcast captures and live recordings into a format compatible with digital video recorder playback systems. This tool re-encodes your TS stream directly in your browser using FFmpeg.wasm, with no file uploads required.

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

MPEG-2 Transport Stream files typically carry H.264, H.265, or MPEG-2 video alongside AAC, AC-3, or MP3 audio, often with multiple audio tracks and embedded subtitles used in broadcast and live streaming contexts. Converting to DVR format requires re-encoding: the video is transcoded to H.264 using libx264 (a codec DVR systems reliably support), and the audio is transcoded to AAC at 128k bitrate. Critically, DVR format does not support multiple audio tracks, subtitles, or chapters — so if your TS file contains secondary language tracks or embedded closed captions, those will be dropped during conversion. Only the first (default) audio track is carried through. The result is a single-track, subtitle-free file optimized for playback and storage on DVR hardware.

What Each Flag Does

Flag What it does
ffmpeg Invokes the FFmpeg tool, which handles all demuxing, decoding, encoding, and muxing operations for this TS-to-DVR conversion entirely within your browser via WebAssembly.
-i input.ts Specifies the input MPEG-2 Transport Stream file. FFmpeg will automatically detect the TS container and parse its program map tables to identify the available video, audio, and subtitle streams.
-c:v libx264 Re-encodes the video stream using the libx264 H.264 encoder, which is the primary video codec supported by DVR format. This is necessary even if the source TS already contains H.264, because the DVR container requires a fresh encode to strip TS-specific stream metadata.
-c:a aac Transcodes the audio stream to AAC, regardless of whether the source TS carries AAC, AC-3, MP3, or another broadcast audio format. AAC is the default audio codec for DVR and offers good quality at the 128k bitrate used here.
-crf 23 Sets the Constant Rate Factor for H.264 encoding to 23, which is the default quality level balancing file size and visual fidelity. For broadcast TS content, this is a reasonable starting point; lower values (e.g., 18) yield higher quality DVR output at the cost of larger file size.
-b:a 128k Sets the AAC audio output bitrate to 128 kilobits per second. This is adequate for most broadcast speech and general audio content from TS recordings; increase to 192k or 256k if your source TS had high-quality AC-3 or FLAC audio you want to better preserve.
output.dvr Specifies the output filename with the .dvr extension, which tells FFmpeg to mux the re-encoded H.264 video and AAC audio into the DVR container format. Only the primary audio track is written; any additional tracks from the TS source are silently discarded.

Common Use Cases

  • Archive a recorded over-the-air broadcast captured as a TS file to DVR format for playback on a standalone DVR or media recorder device
  • Convert a live stream recording saved as a TS file from an HLS capture into DVR format for long-term surveillance footage storage
  • Prepare broadcast TV captures (e.g., from HDHomeRun or similar tuner cards) in TS format for compatibility with proprietary DVR playback software
  • Simplify a multi-track TS broadcast recording down to a single-audio-track DVR file before archiving to a NAS or DVR appliance
  • Convert security camera or CCTV footage initially recorded in TS container format into DVR format for integration with a dedicated surveillance storage system
  • Get the exact FFmpeg command to batch-convert large libraries of TS broadcast recordings (over 1GB) to DVR format on your local machine

Frequently Asked Questions

Yes, some quality loss is unavoidable because this conversion involves full re-encoding of both the video and audio streams. The video is re-encoded from its original TS codec (which could be H.264, H.265, or MPEG-2) into H.264 using a CRF value of 23, which is a good general-purpose quality level but is not lossless. DVR format only supports lossy encoding, so there is no lossless path for this conversion. If your source TS was already H.264, you can reduce quality loss by lowering the CRF value (e.g., to 18), at the cost of a larger output file.
They will not be carried over to the DVR output. DVR format supports only a single audio track and does not support subtitles or closed captions. The conversion will automatically select the default (first) audio track from your TS file and discard all others, including secondary language tracks or Dolby AC-3 broadcast audio. If preserving multiple audio tracks or subtitles is important, DVR is not the right target format for your use case.
Yes. Even though AC-3 is common in broadcast TS files, the conversion will transcode it to AAC at 128k bitrate, which is the only audio codec reliably supported by DVR format alongside MP3. AAC at 128k is a reasonable quality level for speech and general broadcast audio, though audiophiles may prefer to increase the bitrate to 192k or 256k by modifying the -b:a flag in the FFmpeg command.
To adjust video quality, change the -crf value: lower numbers produce higher quality and larger files (e.g., -crf 18 for near-lossless quality), while higher numbers reduce file size at the cost of quality (e.g., -crf 28 for smaller files). The valid range for DVR output is 0–51. To adjust audio quality, change the -b:a value to a higher bitrate like 192k or 256k for better fidelity, or 96k to reduce file size. For example: ffmpeg -i input.ts -c:v libx264 -c:a aac -crf 18 -b:a 192k output.dvr
Yes. On Linux or macOS, you can use a shell loop: for f in *.ts; do ffmpeg -i "$f" -c:v libx264 -c:a aac -crf 23 -b:a 128k "${f%.ts}.dvr"; done. On Windows Command Prompt, use: for %f in (*.ts) do ffmpeg -i "%f" -c:v libx264 -c:a aac -crf 23 -b:a 128k "%~nf.dvr". This is especially useful for large TS recordings over 1GB, which exceed the browser tool's file size limit.
TS files from broadcast sources often carry MPEG-2 video or H.265 (HEVC), which can be significantly larger or more compressed than the H.264 output respectively. If your TS used MPEG-2 video (common in older broadcast recordings), the H.264 re-encode at CRF 23 will likely produce a noticeably smaller DVR file. If your source was H.265/HEVC (which is more efficient than H.264), the DVR output will likely be larger since H.264 requires more bitrate to match the same visual quality. Additionally, TS containers include overhead for transport stream packetization and may carry multiple tracks, so the stripped-down single-track DVR file will often shed some of that container overhead.

Technical Notes

MPEG-2 Transport Streams are designed for robust transmission and broadcast delivery, which means they carry packetization overhead, PAT/PMT tables, PCR timing data, and often multiple program streams — none of which have equivalents in the DVR container. During this conversion, FFmpeg reads the TS demuxer, selects the primary video and audio streams, discards all subtitle streams (DVR does not support them), and re-encodes everything from scratch. The DVR container is a proprietary format with limited codec support — only libx264 and MJPEG for video, and AAC or MP3 for audio — which means that TS files carrying H.265, VP9, or AC-3 audio must all be transcoded rather than stream-copied. This makes the conversion computationally heavier and slower than a simple remux. The CRF 23 default for H.264 is appropriate for general broadcast content, but users converting high-motion sports footage or 1080i interlaced broadcast recordings may want to use a lower CRF (18–20) to avoid blocking artifacts. Note that interlaced TS content (1080i or 480i from broadcast sources) is not automatically deinterlaced by this command; for clean progressive output, adding -vf yadif to the FFmpeg command is recommended. Metadata such as program name, channel information, or broadcast timestamps embedded in the TS container will not be preserved in the DVR output.

Related Tools