Extract Audio from 3GP to CAF — Free Online Tool

Extract audio from 3GP mobile video files and save it as a CAF (Core Audio Format) file using PCM 16-bit uncompressed audio — ideal for bringing low-bandwidth mobile recordings into Apple's professional audio ecosystem with maximum fidelity. The conversion strips the H.264 or AAC video container and re-encodes the audio stream as lossless PCM, giving you a clean, uncompressed source in a format natively supported across macOS and iOS.

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

3GP files typically carry AAC audio encoded at low bitrates (often 64k or below) optimized for 3G mobile networks. During this conversion, FFmpeg discards the video stream entirely using the -vn flag, then decodes the compressed AAC audio from the 3GP container and re-encodes it as PCM signed 16-bit little-endian audio (pcm_s16le) wrapped in Apple's CAF container. This is a lossy-to-lossless-container conversion: the AAC source audio is fully decoded to raw PCM, so the CAF file will be uncompressed and significantly larger than the original 3GP, but no additional lossy compression artifacts are introduced beyond what already existed in the source. CAF's architecture — unlike WAV or AIFF — supports files beyond the 4GB boundary, making it suitable for longer recordings.

What Each Flag Does

Flag What it does
ffmpeg Invokes the FFmpeg tool. In the browser-based version of this tool, FFmpeg runs entirely via WebAssembly (FFmpeg.wasm) inside your browser — no server processes your file. When running locally, this calls your desktop FFmpeg installation directly.
-i input.3gp Specifies the input file — a 3GP container, which is the mobile-optimized MPEG-4 variant used on 3G handsets. FFmpeg will detect the internal streams (typically H.264 video and AAC audio) automatically from this container.
-vn Disables video output entirely, instructing FFmpeg to ignore the H.264 (or MJPEG) video stream from the 3GP file. This is required because CAF is a pure audio container and cannot hold video — without this flag the command would fail.
-c:a pcm_s16le Sets the audio codec to PCM signed 16-bit little-endian, which is uncompressed CD-quality audio. This fully decodes the AAC audio from the 3GP source into raw PCM samples, producing a lossless-container representation of the decoded audio that Core Audio on macOS and iOS reads natively.
-b:a 128k Specifies a target audio bitrate of 128 kbps. For PCM codecs like pcm_s16le, this parameter has no practical effect — the actual bitrate of uncompressed PCM is determined by the sample rate and bit depth of the source — but it is included for consistency when switching to a compressed codec like AAC within CAF.
output.caf Defines the output filename and instructs FFmpeg to wrap the audio in Apple's Core Audio Format container. The .caf extension triggers CAF muxer selection, which supports the pcm_s16le codec and produces a file directly compatible with Logic Pro, GarageBand, Xcode audio asset pipelines, and Core Audio APIs on macOS and iOS.

Common Use Cases

  • Importing a voice memo or field recording captured on an older 3G-era mobile phone into Logic Pro, GarageBand, or another Apple DAW that natively reads CAF files
  • Archiving audio from 3GP video clips (e.g., old MMS videos or phone call recordings) into an uncompressed PCM format for long-term preservation inside Apple's ecosystem
  • Preparing 3GP-sourced audio for further processing in Core Audio-based workflows on macOS, where CAF is the preferred native container for AudioUnit plugins and system audio APIs
  • Extracting spoken-word audio from 3GP recordings to use as input for Apple's speech recognition or transcription tools, which expect Core Audio-compatible formats
  • Separating audio from 3GP video captured on legacy Nokia or Sony Ericsson devices for use in iOS app development audio asset pipelines that target CAF as the runtime format
  • Stripping and converting the audio track from 3GP conference or lecture recordings into PCM CAF files for uncompressed editing before final export

Frequently Asked Questions

No — the audio quality is bounded by the original 3GP source. 3GP files typically store AAC audio at very low bitrates (32k–96k) designed for 3G mobile bandwidth constraints, and those compression artifacts are already baked in. The conversion decodes the AAC to raw PCM and stores it uncompressed in CAF, which means no new lossy encoding is applied, but it also cannot recover detail that AAC discarded during the original mobile encoding. What you gain is an uncompressed container that is bit-for-bit faithful to the decoded source.
3GP uses AAC audio compression, which is very efficient — a 1-minute clip might occupy only a few hundred kilobytes. PCM 16-bit audio in CAF is completely uncompressed: 1 minute of stereo audio at 44.1 kHz takes roughly 10 MB. The size increase is purely structural — you are trading compressed encoded audio for raw samples. If file size is a concern, you can modify the FFmpeg command to use a compressed codec like AAC or FLAC inside the CAF container instead of pcm_s16le.
CAF does support AAC as one of its audio codecs, so in principle you could stream-copy the AAC audio from the 3GP file using -c:a copy and avoid any re-encoding. However, stream copying from a 3GP-packaged AAC to a CAF container can occasionally cause compatibility issues because the AAC profile and bitstream framing differ between mobile-optimized 3GP and Core Audio expectations. Re-encoding to pcm_s16le as this tool does is the safest and most universally compatible approach for Apple software.
To switch to a compressed codec like AAC inside CAF, replace '-c:a pcm_s16le' with '-c:a aac' and set a bitrate with '-b:a 128k' or higher — for example: ffmpeg -i input.3gp -vn -c:a aac -b:a 192k output.caf. To use lossless FLAC compression (which CAF also supports), use '-c:a flac'. The '-b:a 128k' flag in the default command only affects compressed codecs; for PCM it is effectively ignored since PCM bitrate is determined by sample rate and bit depth, not a bitrate target.
3GP files support a limited set of metadata atoms inherited from the MPEG-4 container specification, but the metadata models between 3GP and CAF are quite different. FFmpeg will attempt to map compatible tags, but fields specific to the 3GP mobile profile (such as location data or network operator tags) are unlikely to survive. Standard fields like title or creation date may be preserved. If metadata accuracy is important, verify the output with a tool like exiftool or afinfo (on macOS) after conversion.
Yes — on macOS or Linux you can loop over files in a shell: for f in *.3gp; do ffmpeg -i "$f" -vn -c:a pcm_s16le -b:a 128k "${f%.3gp}.caf"; done. On Windows Command Prompt, use: for %f in (*.3gp) do ffmpeg -i "%f" -vn -c:a pcm_s16le -b:a 128k "%~nf.caf". The browser-based tool processes one file at a time, but the displayed FFmpeg command is designed to be copied and run locally for bulk operations or files larger than 1GB.

Technical Notes

The default output codec pcm_s16le (PCM signed 16-bit little-endian) is the standard CD-quality uncompressed audio format and is natively understood by Core Audio, making CAF files produced this way compatible with every Apple platform from macOS 10.4 onward and iOS from its earliest audio APIs. The sample rate of the output will match whatever is present in the 3GP source — commonly 8 kHz or 16 kHz for voice recordings made on older handsets, or 44.1 kHz for more recent devices — so do not expect 44.1 kHz output if the source was encoded at 8 kHz. The -vn flag is essential here because 3GP video streams use H.264 with the special scale filter workaround (ensuring even pixel dimensions) that the input format requires — without -vn, FFmpeg would attempt to include the video, which CAF as an audio-only container cannot accept. CAF does not support multiple audio tracks, subtitles, or chapters, which aligns with the 3GP source's own single-track audio limitation, so no content is structurally lost from the source. One known edge case: very old 3GP files from early 2000s handsets may use AMR-NB (Adaptive Multi-Rate Narrowband) audio rather than AAC; if FFmpeg reports a codec error on your file, the source may use AMR, which requires the libvo-amrwbenc library — confirm your FFmpeg build includes it.

Related Tools