Trim DVR — Free Online Tool
Trim DVR recordings with frame-accurate cuts, extracting specific segments from surveillance footage or captured broadcast content without re-encoding. Uses stream copy mode to preserve the original H.264 or MJPEG video and AAC or MP3 audio exactly as recorded, making cuts nearly instantaneous regardless of clip length.
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
This tool trims your DVR file by seeking to the specified start point and copying the video and audio streams directly into a new DVR output — no re-encoding occurs. Because DVR files typically store H.264 video and AAC audio (the default codecs for this format), FFmpeg can extract any time segment using the '-c copy' flag, which passes the compressed stream data through unchanged. The actual cut points will snap to the nearest keyframe boundary in the H.264 stream, meaning the start of the output clip may begin a few frames earlier or later than the exact timestamp you specify — this is a fundamental characteristic of keyframe-based video codecs. No quality is lost in this process since the encoded bitstream is copied byte-for-byte.
What Each Flag Does
| Flag | What it does |
|---|---|
ffmpeg
|
Invokes the FFmpeg binary — in the browser this runs via FFmpeg.wasm compiled to WebAssembly. On your desktop, this is the ffmpeg executable you install locally. |
-i input.dvr
|
Specifies the input DVR file. FFmpeg will detect the container structure and identify the video codec (H.264 or MJPEG) and audio codec (AAC or MP3) present in the recording. |
-ss 00:00:00
|
Sets the trim start point in HH:MM:SS format. Placed after '-i', this performs output-side seeking, which is slower but more accurate — FFmpeg reads from the beginning to this point before starting to copy, ensuring the output starts at the correct location in the DVR stream. |
-to 00:00:10
|
Sets the trim end point in HH:MM:SS format, stopping the output at 10 seconds into the original recording. This works together with '-ss' to define the exact window of the DVR file you want to retain. |
-c copy
|
Copies both the video stream (H.264 or MJPEG) and audio stream (AAC or MP3) from the input DVR to the output DVR without re-encoding. This preserves the original recording quality exactly and makes the operation nearly instantaneous even for large DVR files. |
output.dvr
|
Specifies the output file in DVR format. The trimmed segment will be written as a new DVR file containing only the frames between your specified start and end points, suitable for playback on DVR-compatible software or further review. |
Common Use Cases
- Extract a specific 10-minute window from an overnight DVR surveillance recording to document an incident without sharing the full multi-hour file
- Clip a particular broadcast segment captured to DVR for archiving or review, such as isolating a news segment or sporting event highlight
- Remove dead time from the beginning or end of a DVR recording before sharing with law enforcement or insurance investigators
- Isolate a loop of motion-triggered footage from a longer continuous DVR capture for use as evidence or review
- Reduce a multi-hour DVR recording file size by extracting only the relevant portion before transferring it off a recorder with limited storage
- Create a short reference clip from a DVR-captured broadcast for timestamped documentation or compliance records
Frequently Asked Questions
No. Because the tool uses '-c copy', the H.264 or MJPEG video stream and AAC or MP3 audio stream are extracted without re-encoding. Every pixel in every frame of the retained segment is identical to the original recording. The only caveat is that the cut points snap to keyframe boundaries in the H.264 stream, which may shift your in or out point by a fraction of a second.
DVR files using H.264 video only place full-frame keyframes at intervals — often every 1–5 seconds depending on how the recorder was configured. When using '-c copy' mode, FFmpeg must begin the output at the nearest preceding keyframe rather than an arbitrary frame. This means your trim may start slightly before your requested time. If you need frame-exact cuts, the output would need to be re-encoded, which this tool avoids to preserve quality and speed.
DVR is a loosely standardized proprietary format and different manufacturers implement it differently — some use H.264 video with AAC audio, others use MJPEG with MP3. This tool supports both codec combinations. However, if your recorder uses a highly proprietary or encrypted DVR variant, FFmpeg may not be able to read the file at all, and you may need to export to a more standard format using the recorder's software first.
In the command 'ffmpeg -i input.dvr -ss 00:00:00 -to 00:00:10 -c copy output.dvr', replace '00:00:00' after '-ss' with your desired start time and '00:00:10' after '-to' with your desired end time, both in HH:MM:SS format. You can also use '-t' instead of '-to' if you want to specify a duration rather than an end timestamp — for example, '-t 00:05:00' would extract five minutes starting from the '-ss' point.
Yes. On the command line, you can wrap the FFmpeg command in a shell loop. On Linux or macOS, use: 'for f in *.dvr; do ffmpeg -i "$f" -ss 00:00:00 -to 00:00:10 -c copy "trimmed_$f"; done'. On Windows PowerShell, use: 'Get-ChildItem *.dvr | ForEach-Object { ffmpeg -i $_.Name -ss 00:00:00 -to 00:00:10 -c copy ("trimmed_" + $_.Name) }'. This is especially useful for processing large collections of surveillance clips from the same time window.
It depends on how your specific DVR manufacturer embeds timestamps. If timestamps are stored as standard container metadata, FFmpeg's copy mode will carry them into the output file, but the start timestamp may no longer match the actual recording time of the new clip's first frame. If timestamps are burned into the video image itself (as on-screen overlays), they are part of the video data and will be preserved exactly as they appear in the original recording.
Technical Notes
DVR files rely on either H.264 (libx264) or MJPEG as their video codec, with AAC or MP3 audio. When trimming with '-c copy', no CRF or audio bitrate parameters apply — the existing encoded data is reused as-is, so the quality settings in the tool interface only matter if you were re-encoding, which this trim operation does not do. MJPEG-based DVR recordings are actually all-keyframe video, meaning frame-exact cuts are possible without the keyframe alignment issue that affects H.264 streams. If your DVR file uses MJPEG video, your trim will be precise to the frame. DVR containers do not support subtitles, chapters, or multiple audio tracks, so none of these elements need to be considered during the trim. File sizes will be approximately proportional to the duration retained — a 10% trim of a 1-hour file yields roughly a 6-minute output at the same bitrate. Processing is done entirely in your browser via FFmpeg.wasm, so no footage from security cameras or captured broadcasts is ever transmitted to a server.