Convert 3GP to FLV — Free Online Tool

Convert 3GP mobile video files to FLV (Flash Video) format using H.264 video and AAC audio — both encoded with high compatibility in mind. This tool re-encodes your 3GP content entirely in the browser using FFmpeg.wasm, producing FLV files suited for legacy Flash-based video players and web streaming workflows.

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 are designed for 3G mobile networks and typically contain H.264 or MPEG-4 video alongside AAC or AMR audio in a lightweight container. FLV (Flash Video) uses a different container structure originally designed for Adobe Flash Player delivery. Because AMR audio — common in 3GP recordings — is not supported in FLV, the audio stream must be transcoded to AAC or MP3. The video stream, even if already H.264, must also be remuxed into the FLV container and is re-encoded here using libx264 to ensure compatibility and apply the selected quality settings. The result is an FLV file with H.264 video and AAC audio, playable in legacy Flash-based players and compatible with older RTMP streaming infrastructure.

What Each Flag Does

Flag What it does
ffmpeg Invokes the FFmpeg binary — in this browser-based tool, that is FFmpeg.wasm running via WebAssembly entirely within your browser, with no server upload required.
-i input.3gp Specifies the input file in 3GP format. FFmpeg reads the 3GP container and demuxes the video and audio streams for processing, handling the ISOBMFF-derived structure that 3GP uses.
-c:v libx264 Re-encodes the video stream using the libx264 H.264 encoder, which is required to properly wrap video inside the FLV container with the AVC codec tag that Flash Player expects.
-c:a aac Encodes the audio stream to AAC, which is necessary because 3GP files commonly contain AMR audio that the FLV container cannot carry — AAC is a valid and well-supported audio codec within FLV.
-crf 23 Sets the Constant Rate Factor for the libx264 encoder to 23 (the default), balancing file size and visual quality for the re-encoded H.264 video stream going into the FLV output.
-b:a 128k Sets the AAC audio bitrate to 128 kilobits per second, which is a significant step up from the 64k typically used in 3GP mobile audio and provides noticeably cleaner audio in the FLV output.
output.flv Defines the output filename with the .flv extension, which tells FFmpeg to mux the encoded H.264 video and AAC audio into the Adobe Flash Video container format.

Common Use Cases

  • Uploading a 3GP video recorded on an older mobile phone to a legacy Flash-based video platform or CMS that only accepts FLV input
  • Preparing 3GP footage for use in older Flash-era video editing timelines or Adobe Flash Professional projects that require FLV source files
  • Converting mobile-shot 3GP clips for playback in legacy kiosk or digital signage systems built around Flash Player
  • Archiving 3GP videos from early-2000s feature phones into FLV format as part of a historically consistent Flash-era media archive
  • Re-encoding 3GP content for delivery over RTMP streams to legacy media servers that require FLV-wrapped H.264 video
  • Generating FLV files from 3GP source material to embed in older HTML pages still using the classic Flash video embed workflow

Frequently Asked Questions

Yes, some quality loss is unavoidable because this conversion involves full re-encoding of both the video and audio streams — neither is simply copied. The 3GP source is already lossy, so re-encoding introduces a second generation of compression. Using a lower CRF value (such as 18 instead of the default 23) will preserve more detail at the cost of a larger file size. For most mobile-origin 3GP footage, which was already captured at modest resolutions and bitrates, the quality difference at default settings is typically acceptable.
FLV supports H.264 video (via the libx264 codec) and AAC or MP3 audio, which overlaps with common 3GP video codecs. However, 3GP files often contain AMR-NB or AMR-WB audio tracks recorded on mobile devices, and AMR audio is not supported inside an FLV container. This means the audio must always be transcoded — typically to AAC — during this conversion. The tool handles this automatically by targeting AAC as the output audio codec.
3GP containers are specifically engineered for minimal file size on constrained mobile networks, often using very low bitrates that sacrifice quality for small footprint. FLV, by contrast, defaults to higher audio bitrates (128k in this tool versus 3GP's typical 64k or lower), and the re-encoded H.264 video may target a higher quality level than the source. If file size is a concern, you can increase the CRF value (e.g., to 28 or 30) and reduce the audio bitrate to 64k to produce a more compact FLV output.
Flash Player was officially discontinued by Adobe at the end of 2020, so FLV is no longer supported in modern browsers natively. However, FLV and the underlying RTMP protocol remain in active use in legacy broadcasting systems, some RTMP ingest endpoints (like certain live streaming servers), archival workflows, and older enterprise video platforms that were never migrated away from Flash infrastructure. Converting 3GP to FLV today is a niche but real need in those specific contexts.
The CRF value controls video quality in the libx264 encoder. In the command 'ffmpeg -i input.3gp -c:v libx264 -c:a aac -crf 23 -b:a 128k output.flv', replace '23' with a lower number like '18' for higher quality (larger file) or a higher number like '30' for smaller file size with more compression. The CRF scale runs from 0 (lossless) to 51 (worst quality), and values between 18 and 28 cover the practical range for most content. You can also adjust '-b:a 128k' to a value like '64k' or '192k' to control audio bitrate independently.
The single-file command shown on this page can be extended for batch processing on the command line using a shell loop. On Linux or macOS, you can run: '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"'. The browser-based tool processes one file at a time, so the desktop FFmpeg command is the recommended approach for bulk conversions.

Technical Notes

The 3GP container inherits from the MP4/ISOBMFF family and shares structural DNA with MP4, but uses a narrower codec profile set targeting mobile hardware decoders. FLV, while also capable of carrying H.264 video (using the AVC codec tag), uses a proprietary Adobe-defined container structure that is not ISO-based. Because of this fundamental container difference, a simple remux is not possible — the bitstream must be re-wrapped and the codec headers reformatted. Notably, AMR audio (very common in voice-recorded 3GP files from feature phones) has no mapping in the FLV spec and will always require transcoding to AAC or MP3. Metadata such as GPS coordinates, device information, and creation timestamps stored in 3GP atoms are not carried over to FLV, which has a much more limited metadata model. FLV also does not support subtitles, chapters, or multiple audio tracks, which aligns with 3GP's own limitations in this tool's configuration. The libx264 encoder used here produces a Baseline or Main profile H.264 stream by default, which maximizes compatibility with older Flash Player versions that had profile restrictions.

Related Tools