Extract Audio from 3GP to MP3 — Free Online Tool
Extract the audio track from a 3GP mobile video file and save it as an MP3, re-encoding the AAC audio stream using the LAME encoder at 128kbps. Ideal for pulling audio from old mobile phone recordings or MMS video clips where you only need the sound.
to
FFmpeg Command
Copy this command to run the same conversion locally with FFmpeg on your desktop. Download FFmpeg
Drop your 3GP 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
3GP files typically carry AAC audio, which cannot be placed directly into an MP3 container — MP3 is a raw audio format that only supports MPEG Layer III encoded data encoded by the LAME codec. This means the audio must be fully re-encoded (transcoded) from AAC to MP3. The video stream is discarded entirely using the -vn flag, so FFmpeg only decodes the AAC audio, passes it through the libmp3lame encoder at 128kbps, and writes the result into a standard MP3 file. Because 3GP was designed for 3G mobile networks with tight bandwidth constraints, its audio tracks are often recorded at low sample rates (8kHz or 16kHz) and low bitrates, so the output MP3 quality will be bounded by the quality of the original mobile recording rather than the encoding settings.
What Each Flag Does
| Flag | What it does |
|---|---|
ffmpeg
|
Invokes the FFmpeg command-line tool. In the browser-based version of this tool, the same command runs via FFmpeg.wasm compiled to WebAssembly, so your 3GP file never leaves your device. |
-i input.3gp
|
Specifies the input 3GP file. FFmpeg parses the MPEG-4 style container to locate both the video and audio streams inside the 3GP wrapper before any processing begins. |
-vn
|
Disables video output entirely, telling FFmpeg to ignore the video stream in the 3GP file. Since the goal is audio extraction, this prevents FFmpeg from attempting to encode or copy the video track into the MP3 output, which would be invalid anyway as MP3 cannot contain video. |
-c:a libmp3lame
|
Selects the LAME MP3 encoder to transcode the AAC audio from the 3GP file into MP3 format. This re-encode is mandatory because AAC-encoded audio cannot be placed directly into an MP3 bitstream — the two are fundamentally different codecs. |
-b:a 128k
|
Sets the MP3 output bitrate to 128kbps, which is the conventional standard for general-purpose MP3 audio. For typical 3GP mobile recordings — which were originally encoded at much lower bitrates —128kbps is more than sufficient to represent all the audio information present in the source. |
output.mp3
|
Defines the output filename and tells FFmpeg to write a raw MP3 bitstream with ID3 tags. The .mp3 extension signals FFmpeg to use the MP3 muxer, producing a file compatible with virtually every audio player, platform, and device in use today. |
Common Use Cases
- Pulling voice memos or spoken notes recorded on an old Nokia, Sony Ericsson, or early Android handset saved as .3gp files and converting them to MP3 for playback on any modern device or media player.
- Extracting the audio from a 3GP video clip received via MMS or Bluetooth from a feature phone so it can be archived, shared, or edited in an audio editor like Audacity.
- Recovering audio from old 3GP home videos stored on a memory card where the video quality is too low to be useful but the audio — a conversation, a performance, or ambient sound — is still valuable.
- Converting a collection of 3GP field recordings made on a budget mobile phone into MP3 files that can be imported into a podcast editing workflow.
- Stripping the audio from a 3GP ringtone or notification sound file to get a standalone MP3 that can be uploaded to a platform or used in a project.
- Extracting interview or lecture audio captured on a 3G-era phone for transcription using speech-to-text tools that require MP3 input.
Frequently Asked Questions
Yes, this is a lossy-to-lossy transcode — the AAC audio in the 3GP file is decoded to raw PCM and then re-encoded as MP3, which introduces a second generation of compression artifacts. However, because 3GP files from mobile phones are already recorded at very low bitrates (often 12–64kbps AAC), the perceptible quality difference introduced by the MP3 re-encode at 128kbps is usually minor. The dominant factor in the output quality is the quality of the original mobile recording, not the transcoding step.
MP3 is not a container format — it is a raw audio bitstream format that can only hold MPEG Layer III (MP3) encoded data. AAC is a completely different codec, so it is impossible to stream-copy AAC into an .mp3 file. The audio must be fully decoded and re-encoded using the LAME encoder. If you want to avoid re-encoding entirely, you could instead extract the AAC audio into an .m4a or .aac container using '-c:a copy', which would preserve the original audio unchanged.
Replace the '128k' value in '-b:a 128k' with your desired bitrate. For a smaller file with lower quality, use '96k' or '64k'. For slightly better quality, use '192k' or '320k'. Keep in mind that since the source audio from a 3GP file was often recorded at 64kbps AAC or lower, increasing the output bitrate above the source bitrate will not recover lost detail — it will just produce a larger file. A setting of '128k' is a reasonable ceiling for most 3GP sources.
3GP files store metadata in MPEG-4 style atoms (similar to MP4), while MP3 uses ID3 tags. FFmpeg will attempt to map compatible metadata fields — such as title, artist, and comment — from the 3GP container to ID3 tags in the output MP3. However, mobile-recorded 3GP files rarely contain rich metadata beyond basic creation timestamps, and those timestamps may not transfer cleanly. If preserving specific metadata matters, you can inspect and write ID3 tags manually after conversion using a tool like Mp3tag.
Yes. On Linux or macOS, you can run: for f in *.3gp; do ffmpeg -i "$f" -vn -c:a libmp3lame -b:a 128k "${f%.3gp}.mp3"; done. On Windows Command Prompt, use: for %f in (*.3gp) do ffmpeg -i "%f" -vn -c:a libmp3lame -b:a 128k "%~nf.mp3". These loops process each .3gp file in the current directory and produce a matching .mp3 file with the same base name.
Some 3GP files, particularly video-only clips or corrupted mobile recordings, contain no audio stream at all. If FFmpeg reports 'Output file does not contain any stream' or similar, it means the -vn flag discarded the video and there was nothing left to encode. You can verify whether your file has audio by running 'ffmpeg -i input.3gp' without any output argument and checking whether the output lists an audio stream alongside the video stream.
Technical Notes
3GP (3GPP TS 26.244) is a restricted profile of the MPEG-4 Part 12 container designed for 3G mobile networks. Its audio tracks are almost always AAC-LC encoded at low sample rates — commonly 8kHz for voice calls or 16kHz for better quality recordings — and at bitrates ranging from 12kbps to 64kbps. Because AAC is not a valid codec for the MP3 container format, stream copying is not possible, and a full decode-encode cycle via libmp3lame is required. The LAME encoder at 128kbps targets a 44.1kHz stereo output by default; if the source 3GP audio is mono at 8kHz, FFmpeg will upsample it automatically, though this does not add any fidelity. The resulting MP3 will carry ID3v2 tags and be compatible with essentially every media player, car stereo, streaming platform, and audio editing application. One limitation to be aware of: if the 3GP file uses AMR-NB or AMR-WB audio (common in very old feature phones), FFmpeg can still decode it to PCM for re-encoding to MP3, but the AMR codecs produce distinctly telephone-quality audio at 8kHz that will be audibly degraded regardless of the MP3 bitrate chosen.