Convert DVR to TS — Free Online Tool
Convert DVR recordings to MPEG-2 Transport Stream (TS) format, re-encoding the H.264 video and AAC audio into a broadcast-ready container that supports live streaming, HLS delivery, and multiple audio tracks. TS is the standard container for over-the-air broadcast and HTTP Live Streaming, making this conversion ideal for repurposing surveillance or captured TV footage for professional distribution.
to
FFmpeg Command
Copy this command to run the same conversion locally with FFmpeg on your desktop. Download FFmpeg
Drop your DVR 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
DVR files store proprietary-wrapped H.264 video and AAC audio captured from television broadcasts or surveillance systems. During this conversion, FFmpeg decodes the DVR container and re-encodes the video stream using libx264 with a CRF of 23 (a perceptually balanced quality setting) and the audio using the AAC codec at 128k bitrate. Because the output codec choices (libx264 + AAC) match the most common codecs found inside DVR files, the re-encoding pass primarily standardizes the container structure into the MPEG-2 Transport Stream format — a packetized, error-resilient stream designed for broadcast transmission and compatible with HLS segmenters, set-top boxes, and broadcast playout systems. The TS container adds program-specific information (PAT/PMT tables) that allow decoders to identify and synchronize audio and video streams independently, which is a key structural difference from the proprietary DVR wrapper.
What Each Flag Does
| Flag | What it does |
|---|---|
ffmpeg
|
Invokes the FFmpeg tool, which handles all demuxing, decoding, re-encoding, and muxing operations in this DVR-to-TS conversion pipeline entirely within the browser via WebAssembly. |
-i input.dvr
|
Specifies the input DVR file. FFmpeg probes the file to detect the proprietary DVR container structure and identifies the internal H.264 video and AAC audio streams for decoding. |
-c:v libx264
|
Re-encodes the video stream using the libx264 encoder, producing H.264/AVC video wrapped in the TS container — the same codec used in the DVR source, but now structured with TS packetization for broadcast and HLS compatibility. |
-c:a aac
|
Encodes the audio stream as AAC, matching the most common audio codec found in DVR recordings and satisfying the AAC audio requirement for HLS-compatible TS streams. |
-crf 23
|
Sets the Constant Rate Factor for the libx264 video encode to 23, which is the libx264 default and provides a good balance between file size and perceptual quality for re-encoding DVR surveillance or broadcast capture footage. |
-b:a 128k
|
Sets the AAC audio bitrate to 128 kilobits per second, which is sufficient for broadcast speech and standard television audio content typically found in DVR recordings. |
output.ts
|
Specifies the output filename with the .ts extension, which signals FFmpeg to mux the re-encoded H.264 and AAC streams into an MPEG-2 Transport Stream container with the standard 188-byte packet structure. |
Common Use Cases
- Ingesting surveillance DVR footage into a broadcast playout or IPTV system that requires TS-wrapped streams for program scheduling
- Preparing captured television recordings from a DVR for HLS streaming by converting to TS, which ffmpeg or tools like ffmpeg-based HLS segmenters can then slice into .ts segments with an .m3u8 manifest
- Archiving DVR security footage into a standardized, non-proprietary TS format that any professional video tool can open without needing manufacturer-specific software
- Feeding DVR-captured content into a broadcast encoder or multiplexer that accepts MPEG-2 TS as its input format for satellite or cable distribution
- Converting DVR recordings to TS so they can be played on set-top boxes, smart TVs, and media servers like Plex or Emby that have strong native TS support
- Re-wrapping DVR footage into TS format to enable multiple audio track support for dubbing or multilingual distribution, a feature the original DVR container does not support
Frequently Asked Questions
Yes, this conversion involves a full re-encode of the video stream, which introduces generational quality loss. The default CRF value of 23 with libx264 produces visually good results for most DVR source material, but it is not lossless. If your DVR source was already heavily compressed (as most surveillance and broadcast capture footage is), the quality difference at CRF 23 is typically imperceptible for standard viewing. To minimize loss, lower the CRF value — for example, use -crf 18 in the FFmpeg command for near-lossless quality at the cost of a larger file.
MPEG-2 Transport Stream (TS) is specifically designed for broadcast and streaming environments where error resilience and real-time delivery matter. Unlike MP4, which stores its index (moov atom) at the end of the file and can be unplayable if interrupted, TS is a packetized format that remains valid even if the stream is cut off mid-file. For DVR footage destined for IPTV, HLS streaming, or broadcast playout, TS is the correct container choice. MP4 is better suited for download-and-play scenarios.
The MPEG-2 TS container does support subtitles, but the DVR input format does not carry subtitle tracks. This means no subtitle data will be transferred during conversion — there is simply no subtitle stream in the DVR source to include. If you need subtitles in the TS output, you would need to add an external subtitle file using FFmpeg's -i flag for a second input and map it explicitly using -map flags alongside a subtitle codec like -c:s dvbsub or -c:s mov_text depending on your player requirements.
The TS file produced by this conversion is HLS-compatible because it uses libx264 video and AAC audio — the codecs required by the HLS specification. However, a single TS file is not an HLS stream by itself. To create a proper HLS output, you would need to segment the TS into chunks and generate an .m3u8 playlist, which can be done by adding the -f hls flag and -hls_time options to the FFmpeg command. The TS output from this tool is a useful intermediate step before HLS segmentation.
To adjust video quality, change the -crf value in the command: lower numbers mean higher quality and larger files (0 is mathematically lossless, 18 is visually near-lossless, 28 is noticeably compressed). To adjust audio quality, change the -b:a value — for example, replace 128k with 192k or 256k for better audio fidelity. A practical high-quality command for archiving DVR surveillance footage would be: ffmpeg -i input.dvr -c:v libx264 -c:a aac -crf 18 -b:a 192k output.ts.
Yes. On Linux or macOS, you can wrap the command in a shell loop: for f in *.dvr; do ffmpeg -i "$f" -c:v libx264 -c:a aac -crf 23 -b:a 128k "${f%.dvr}.ts"; done. On Windows Command Prompt, use: for %f in (*.dvr) do ffmpeg -i "%f" -c:v libx264 -c:a aac -crf 23 -b:a 128k "%~nf.ts". The browser-based tool processes one file at a time, but the displayed FFmpeg command is designed to run locally on your desktop for batch workflows involving large collections of DVR recordings.
Technical Notes
DVR is a proprietary container format with no standardized specification — the internal codec packing varies by manufacturer (common variants use H.264/AVC video with AAC or MP3 audio). FFmpeg handles many DVR variants through format probing, but exotic or encrypted DVR files from certain security camera brands may fail to demux correctly. The MPEG-2 TS output uses a fixed packetization of 188-byte packets with PAT and PMT tables, enabling independent synchronization of audio and video — this is a significant structural improvement over the DVR wrapper for broadcast use. Because both input and output use libx264 and AAC, the re-encode does not introduce a codec change, only a container change plus a quality normalization pass. Metadata such as recording timestamps embedded in proprietary DVR headers will not be transferred to the TS output, as TS has no equivalent metadata field for custom DVR tags. The TS container supports multiple audio tracks (unlike DVR), so if you have a multi-track source you can map additional audio streams using -map flags. File sizes for TS output will typically be comparable to or slightly larger than the DVR source at CRF 23, as TS has mild packetization overhead and the re-encode targets a consistent quality level rather than a fixed bitrate.