Convert DVR to CAF — Free Online Tool

Convert DVR surveillance or broadcast recordings to Apple's Core Audio Format (CAF), extracting the AAC audio stream and re-encoding it as uncompressed PCM (pcm_s16le) for use in Apple development workflows, Logic Pro, or macOS audio pipelines. CAF's 64-bit file size support makes it ideal for archiving long DVR recordings without the 4GB ceiling of WAV or AIFF.

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

DVR files typically contain a video stream encoded with H.264 (libx264) and a compressed AAC audio track bundled in a proprietary container used by digital video recorders. This conversion strips the video entirely — CAF is an audio-only container — and decodes the AAC audio stream, then re-encodes it as 16-bit little-endian PCM (pcm_s16le) inside the CAF wrapper. This means the audio undergoes a decode-then-re-encode cycle: lossy AAC is decompressed to raw audio data, then stored as uncompressed PCM. There is a minor generation loss at the decode stage since AAC is lossy, but the PCM output itself introduces no further compression artifacts and is bit-perfect from that decoded point forward.

What Each Flag Does

Flag What it does
ffmpeg Invokes the FFmpeg tool, which handles demuxing the proprietary DVR container, decoding the AAC audio stream inside it, and encoding the output as PCM in a CAF file — all in a single pass.
-i input.dvr Specifies the input DVR file. FFmpeg will probe the file to identify the container format and detect the internal audio stream (typically AAC) and video stream (typically H.264) stored by the digital video recorder.
-c:a pcm_s16le Sets the audio codec for the output to 16-bit signed little-endian PCM. This decodes the lossy AAC audio from the DVR file into fully uncompressed audio data, which is the standard uncompressed format expected by Apple's Core Audio and Logic Pro workflows.
-b:a 128k Specifies a 128 kbps audio bitrate target. For pcm_s16le this parameter has no practical effect since PCM is uncompressed and its bitrate is fixed by sample rate and bit depth, but it is included for consistency with the tool's interface defaults.
output.caf Defines the output filename and tells FFmpeg to wrap the PCM audio stream in Apple's Core Audio Format container, producing a CAF file ready for use in Logic Pro, AVFoundation, Xcode audio pipelines, or macOS Core Audio applications.

Common Use Cases

  • Extracting clean, uncompressed audio from a DVR broadcast capture to import into Logic Pro or GarageBand for post-production editing on macOS
  • Archiving the audio track from long overnight surveillance DVR recordings into CAF format, which supports files exceeding 4GB — avoiding the size limits that would split the same content across multiple WAV files
  • Preparing DVR interview or deposition recordings for use in Apple's AVFoundation framework, which natively reads CAF files for iOS and macOS application development
  • Converting DVR-captured court or conference room recordings to PCM audio in CAF for transcription software that requires uncompressed input on Apple systems
  • Feeding DVR security footage audio into Core ML or speech recognition pipelines on macOS that expect CAF-wrapped PCM as the standard input format
  • Stripping compressed AAC audio from a DVR broadcast capture and losslessly storing the decoded signal as PCM in CAF before mastering or quality analysis

Frequently Asked Questions

There is a one-time quality loss at the decode stage because the source DVR's AAC audio is a lossy format — converting it to PCM requires decompressing that lossy data. However, once decoded, the PCM output stored in the CAF file is uncompressed and lossless, so no additional degradation occurs. If you re-encode back to AAC from this CAF file in the future, you will experience another generation of lossy compression, which is why keeping the PCM intermediate is advisable for editing workflows.
The CAF format supports AAC internally, but the default codec chosen here is pcm_s16le (16-bit signed little-endian PCM) because CAF is overwhelmingly used in Apple workflows — Logic Pro, Core Audio, AVFoundation — where uncompressed PCM is the expected format for editing, processing, and archiving. Extracting to raw PCM avoids any further lossy encoding and makes the file immediately compatible with audio editing tools without an additional decode step. If you specifically need CAF with AAC audio, you can modify the FFmpeg command to use -c:a aac.
Yes. CAF with pcm_s16le audio is natively supported by Apple's AVFoundation and Core Audio frameworks on both iOS and macOS. The format was designed by Apple specifically to address limitations of WAV and AIFF in its own ecosystem. You can load the resulting CAF file directly with AVAudioFile, AVPlayer, or Core Audio AudioFile APIs without any additional conversion.
The video stream is discarded entirely. CAF is a pure audio container and has no mechanism to store video data. The FFmpeg command targets only the audio stream (-c:a pcm_s16le) and writes it to the CAF output, leaving the H.264 or MJPEG video track behind. If you need to preserve the video, you would need a different output format such as MOV or MP4.
For PCM codecs like pcm_s16le, the -b:a bitrate flag has no meaningful effect — PCM bitrate is determined entirely by sample rate and bit depth, not a compression setting. If you switch to a compressed codec like AAC by changing the command to -c:a aac, then -b:a 192k would set the output bitrate to 192 kbps. For example: ffmpeg -i input.dvr -c:a aac -b:a 192k output.caf. You can also use -c:a flac for lossless compressed output within CAF, which reduces file size compared to PCM without any quality loss.
Yes. On macOS or Linux you can run a shell loop: for f in *.dvr; do ffmpeg -i "$f" -c:a pcm_s16le "${f%.dvr}.caf"; done. On Windows Command Prompt, use: for %f in (*.dvr) do ffmpeg -i "%f" -c:a pcm_s16le "%~nf.caf". This is especially useful for processing a batch of overnight surveillance recordings or captured broadcast segments stored as separate DVR files.

Technical Notes

DVR is a proprietary container format and its internal structure can vary significantly between manufacturers — some DVR systems use MPEG-PS or MPEG-TS internally, while others use custom wrappers. FFmpeg's DVR demuxer handles common variants, but highly proprietary formats from certain DVR hardware vendors may not demux correctly, in which case the audio extraction will fail or produce silence. The source audio is typically AAC at 128k, which means the decoded PCM will reflect any artifacts already present in that compressed stream. The output pcm_s16le codec produces a 16-bit, stereo, 44.1kHz (or source-rate) audio file; file sizes will be substantially larger than the original AAC — a one-hour DVR audio track at 44.1kHz stereo generates roughly 600MB as pcm_s16le versus approximately 56MB as 128k AAC. CAF's 64-bit chunk size header means there is no practical file size limit, making it superior to WAV for long-duration recordings. Metadata fields from the DVR container (timestamps, channel names, recorder IDs) are not mapped to CAF metadata tags by FFmpeg and will be lost in this conversion.

Related Tools