Convert 3GPP to FLV — Free Online Tool
Convert 3GPP mobile video files to FLV (Flash Video) format using H.264 video and AAC audio encoding — ideal for republishing legacy mobile footage to Flash-based players and older web platforms. Since both formats share H.264 codec support, this tool re-encodes for FLV container compatibility while upgrading the audio bitrate from 3GPP's mobile-optimized defaults.
to
FFmpeg Command
Copy this command to run the same conversion locally with FFmpeg on your desktop. Download FFmpeg
Drop your 3GPP 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
3GPP files typically carry H.264 video and AAC audio encoded at low bitrates optimized for 3G mobile networks. During this conversion, the video stream is re-encoded using libx264 with a CRF 23 quality setting, and the audio is re-encoded as AAC at 128k — nearly double the 64k default common in 3GPP files. The output is wrapped in an FLV container, Adobe's Flash Video format, which organizes the bitstream differently from 3GPP's MPEG-4 Part 12 container structure. The 3GPP-specific '-movflags +faststart' optimization (used for mobile streaming) is dropped, as FLV handles its own index structure. The result is a file ready for Flash-based players, video hosting pipelines, or legacy web embeds.
What Each Flag Does
| Flag | What it does |
|---|---|
ffmpeg
|
Invokes the FFmpeg multimedia processing tool. This is the same engine running in your browser via WebAssembly (FFmpeg.wasm) — the command shown is identical to what you would run on your local desktop for files over 1GB. |
-i input.3gp
|
Specifies the input 3GPP file. FFmpeg reads the MPEG-4 Part 12 container, demuxes the H.264 video and AAC (or AMR) audio streams, and makes them available for re-encoding into FLV. |
-c:v libx264
|
Re-encodes the video stream using the libx264 H.264 encoder. This produces an H.264 bitstream correctly framed for FLV's AVC tag structure, replacing the original 3GPP-packaged H.264 stream which may have been encoded at mobile Baseline Profile constraints. |
-c:a aac
|
Re-encodes the audio using FFmpeg's native AAC encoder. This handles cases where the 3GPP source used AMR-NB or low-bitrate AAC, producing a clean AAC stream compatible with FLV's audio model at the higher 128k bitrate specified. |
-crf 23
|
Sets the Constant Rate Factor for libx264 to 23, a visually good quality level that balances file size and fidelity. Because 3GPP sources were originally encoded at low mobile bitrates, this CRF targets a quality ceiling that may exceed the source — further lowering the CRF will increase file size without recovering lost detail. |
-b:a 128k
|
Sets the output AAC audio bitrate to 128 kilobits per second — typically double the 64k default found in 3GPP mobile files. This meaningfully improves audio clarity for voice recordings and ambient sound captured on mobile devices before re-packaging into FLV. |
output.flv
|
Specifies the output filename and triggers FLV container muxing. FFmpeg wraps the re-encoded H.264 video and AAC audio into Adobe's tag-based FLV structure, without the -movflags +faststart optimization used in 3GPP, since FLV manages its own index differently. |
Common Use Cases
- Republishing old mobile phone video clips to a legacy Flash-based video portal or CMS that only accepts FLV uploads
- Preparing 3GPP footage captured on early-2000s or feature phones for playback in Flash-based kiosk or presentation systems
- Converting a library of 3G-era mobile recordings into FLV for archival ingest into older media asset management systems that predate MP4 support
- Feeding 3GPP clips into a legacy Flash video encoding pipeline where the upstream tool expects FLV as its input container
- Upscaling the audio quality of a 3GPP recording — moving from the 64k mobile default to 128k AAC — while repackaging for web delivery via a Flash player
- Creating FLV versions of 3GPP instructional or field-recorded videos for use in older eLearning platforms built on Flash
Frequently Asked Questions
Yes, some generation loss is unavoidable because both the video and audio streams are re-encoded rather than copied. The 3GPP video is decoded and then re-encoded by libx264 at CRF 23, which is a visually good quality setting but not lossless. However, the audio often sounds slightly better in the output because the AAC bitrate increases from 3GPP's typical 64k to 128k in the FLV — a meaningful improvement for voice and ambient audio captured on mobile devices.
While both 3GPP and FLV can carry H.264 video, the container structures differ significantly — 3GPP is based on the MPEG-4 Part 12 box/atom format, whereas FLV uses Adobe's own tag-based structure with different metadata framing. Stream copying (-c:v copy) can sometimes work but risks compatibility issues with FLV players due to differing NAL unit packaging and timing metadata. Re-encoding ensures a clean, fully FLV-compliant output that Flash players can reliably seek and decode.
No. 3GPP was purpose-built for 3G mobile streaming and includes features like the RTSP-compatible hint track and the -movflags +faststart optimization for progressive download on constrained networks. FLV's streaming model is tied to Adobe's RTMP protocol and Flash Player, and it lacks the low-bitrate mobile delivery optimizations 3GPP was designed around. The FLV output from this conversion is suited for web or kiosk playback, not mobile streaming.
Generally, no. 3GPP files can embed mobile-specific metadata atoms — including recording timestamps, device identifiers, and sometimes GPS coordinates — in their MPEG-4 container. FLV's metadata model is much simpler, supporting only basic onMetaData tags like duration and frame rate. The FFmpeg command as written does not explicitly map 3GPP metadata to FLV, so most mobile-specific metadata will be dropped during conversion.
Adjust the -crf value in the command. Lower CRF values produce higher quality at the cost of larger file sizes — for example, '-crf 18' is near-visually lossless and results in a much larger FLV, while '-crf 28' compresses more aggressively for smaller files with some quality reduction. Since the original 3GPP source was already encoded at a mobile-optimized bitrate, going below CRF 20 is unlikely to recover detail that was already discarded in the source, so CRF 23 is generally a sensible default for this format pair.
Yes. On Linux or macOS, you can use a shell loop: 'for f in *.3gp; do ffmpeg -i "$f" -c:v libx264 -c:a aac -crf 23 -b:a 128k "${f%.3gp}.flv"; done'. On Windows Command Prompt, use: 'for %f in (*.3gp) do ffmpeg -i "%f" -c:v libx264 -c:a aac -crf 23 -b:a 128k "%~nf.flv"'. This is especially useful for converting a library of old mobile recordings, and the browser-based tool on this page handles files up to 1GB if you need to process files individually.
Technical Notes
3GPP (file extension .3gp) is a subset of the MPEG-4 Part 12 container format, restricted to codecs and bitrates practical for 3G mobile networks — video is almost always H.264 Baseline Profile at low resolutions (176x144 QCIF or 320x240 QCIF+), and audio is typically AAC-LC or AMR-NB at 64k or lower. FLV, by contrast, was designed for broadband Flash Player delivery and expects H.264 in an AVC1 codec tag with specific NALU framing aligned to Adobe's FLV tag structure. The libx264 encoder targets High Profile by default, which is fine for FLV but would have been incompatible with the original 3GPP mobile target. Note that FLV does not support subtitles, chapters, or multiple audio tracks — matching 3GPP's limitations in this regard. File sizes will typically increase versus the source 3GPP because the 3GPP was originally compressed aggressively for mobile bandwidth, and CRF 23 with 128k AAC targets a higher quality level than the original mobile encoding. FLV support in browsers has been end-of-life since Adobe Flash Player was discontinued in 2020; the resulting files are best used with standalone players like VLC, legacy Flash-based applications, or media servers that handle FLV natively.