Extract Audio from DVR to AMR — Free Online Tool
Extract audio from DVR recordings and convert it to AMR format using the libopencore_amrnb codec — a speech-optimized, low-bitrate format ideal for archiving voice content from surveillance or broadcast captures. This tool runs entirely in your browser with no file uploads required.
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 typically contain video encoded with libx264 and audio encoded with AAC. During this conversion, the video stream is completely discarded using the -vn flag, and the AAC audio is decoded and re-encoded into AMR-NB (Adaptive Multi-Rate Narrowband) using the libopencore_amrnb codec at 12,200 bps — the highest quality mode available in the AMR-NB standard. AMR-NB was designed specifically for speech intelligibility at very low bitrates, so while it excels at preserving voice audio, music or complex ambient sound from DVR recordings will lose significant fidelity. The output is a raw .amr file containing a single mono audio track, since AMR-NB is inherently a mono format.
What Each Flag Does
| Flag | What it does |
|---|---|
ffmpeg
|
Invokes the FFmpeg program, the open-source multimedia processing engine that powers this conversion both in the browser (via WebAssembly) and on the desktop command line. |
-i input.dvr
|
Specifies the input DVR file. FFmpeg will probe the file to detect its container structure and the encoded streams inside — typically a libx264 video track and an AAC audio track in a DVR recording. |
-vn
|
Disables video output entirely, instructing FFmpeg to ignore the libx264 video stream from the DVR file. Only the audio stream is passed forward for processing, which is the core behavior of an audio extraction tool. |
-c:a libopencore_amrnb
|
Selects the libopencore_amrnb encoder to transcode the DVR's AAC audio into AMR-NB (Adaptive Multi-Rate Narrowband), the standard codec used in mobile telephony and speech-optimized audio applications. |
-b:a 12200
|
Sets the AMR-NB encoding bitrate to 12,200 bits per second, which is the highest quality mode defined by the AMR-NB standard and provides the best speech intelligibility from the extracted DVR audio. |
output.amr
|
Defines the output filename with the .amr extension, producing a raw AMR bitstream file — a headerless, mono, 8kHz speech audio file compatible with mobile devices and telephony systems that support AMR playback. |
Common Use Cases
- Extracting spoken announcements or intercom audio from surveillance DVR footage for transcription or evidence archiving
- Pulling voice recordings from broadcast-captured DVR content to create compact, mobile-compatible audio clips
- Converting DVR-recorded interview or deposition footage into AMR audio for storage on older mobile devices or telephony systems that natively support AMR playback
- Archiving voice channels from security camera recordings in a space-efficient format when video is no longer needed
- Preparing speech extracted from DVR surveillance footage for upload to voice recognition or transcription APIs that accept AMR input
- Creating lightweight audio logs from DVR recordings for distribution over low-bandwidth mobile networks
Frequently Asked Questions
Likely not. AMR-NB at 12,200 bps is engineered specifically for human speech frequencies (roughly 300–3,400 Hz) and uses codebook-based speech modeling that actively discards audio information outside that range. Music, ambient noise, or non-speech content from DVR recordings will sound noticeably degraded, tinny, or muffled. If your DVR audio contains anything other than speech, a format like MP3 or AAC would be a far more appropriate target.
AMR-NB (libopencore_amrnb) is a mono-only codec — it does not support stereo or multi-channel audio. FFmpeg will automatically downmix any stereo or multi-channel audio from the DVR source to a single mono channel during encoding. For surveillance and telephony use cases this is typically acceptable, but if stereo separation matters, AMR is not the right output format.
Replace the 12200 value in '-b:a 12200' with any of the AMR-NB standard bitrate modes: 4750, 5150, 5900, 6700, 7400, 7950, or 10200 (bps). Note that unlike MP3 or AAC, AMR-NB does not accept arbitrary bitrates — it only accepts these specific values defined by the AMR standard. Using 12200 (the default here) gives the best speech quality; dropping to 4750 produces the smallest file but noticeably reduced intelligibility.
Yes. On Linux or macOS you can use a shell loop: 'for f in *.dvr; do ffmpeg -i "$f" -vn -c:a libopencore_amrnb -b:a 12200 "${f%.dvr}.amr"; done'. On Windows Command Prompt: 'for %f in (*.dvr) do ffmpeg -i "%f" -vn -c:a libopencore_amrnb -b:a 12200 "%~nf.amr"'. Make sure FFmpeg is compiled with libopencore_amrnb support, as it is not always included in default builds.
Yes. libopencore_amrnb is an external library that must be compiled into FFmpeg — it is not included in all pre-built FFmpeg distributions due to patent licensing considerations. If you run the command locally and see 'Unknown encoder libopencore_amrnb', download a version of FFmpeg built with AMR support, such as official builds from ffmpeg.org or packages from third-party providers like BtbN's GitHub releases. The browser-based version of this tool already includes the necessary codec support.
Significantly smaller, for two reasons: the video stream is entirely removed, and the remaining audio is encoded at only 12,200 bps. A one-hour DVR file that might be 2–4 GB will produce an AMR audio file of roughly 5–6 MB. This makes AMR extraction particularly useful when you need to archive or transmit only the speech content from long DVR surveillance recordings without carrying the video payload.
Technical Notes
DVR files store audio as AAC at typically 128k bitrate, which means the conversion to AMR-NB involves a full lossy-to-lossy transcode — the AAC audio is fully decoded to PCM and then re-encoded by libopencore_amrnb. This generational quality loss is unavoidable and is most audible on non-speech content. AMR-NB enforces a fixed 8,000 Hz sample rate regardless of the source DVR audio's sample rate; FFmpeg handles the resampling automatically. The output .amr file uses the MIME magic header '#!AMR' and is a raw AMR bitstream, not wrapped in a container, which means it carries no metadata (no title, timestamps, or channel information from the original DVR recording). If you need AMR-WB (wideband, 16,000 Hz sample rate) instead of AMR-NB for better speech quality, substitute '-c:a libopencore_amrwb' and use one of the AMR-WB bitrate modes (6600, 8850, 12650, 14250, 15850, 18250, 19850, 23050, or 23850 bps), though AMR-WB support is even less common in FFmpeg builds.