Convert FLV to 3GP — Free Online Tool

Convert FLV (Flash Video) files to 3GP format, optimized for 3G mobile phones and low-bandwidth environments. This tool re-encodes your FLV's H.264 or FLV video stream and AAC/MP3 audio into a mobile-ready 3GP container using libx264 and AAC, running entirely in your browser with no file uploads.

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

FLV is an Adobe Flash container that typically carries H.264 video and AAC or MP3 audio, originally designed for browser-based Flash Player streaming. Converting to 3GP involves fully re-encoding both streams: the video is encoded with libx264 using CRF 23 (a perceptual quality target), and the audio is transcoded to AAC at 64kbps — a lower bitrate than FLV defaults, intentionally chosen for 3GP's mobile and low-bandwidth design goals. A special scaling filter (scale=trunc(iw/2)*2:trunc(ih/2)*2) is applied to ensure the output dimensions are divisible by 2, which H.264 in the 3GP container requires. The result is a significantly smaller file suited for mobile playback and transmission over constrained 3G networks.

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 FFmpeg.wasm/WebAssembly) and on your local desktop installation.
-i input.flv Specifies the input file, an FLV (Flash Video) container. FFmpeg reads the video and audio streams from this file — typically H.264 video and AAC or MP3 audio in modern FLV files.
-c:v libx264 Sets the video encoder to libx264, which produces H.264-encoded video compatible with the 3GP container's video requirements and playable on 3G mobile devices.
-c:a aac Encodes the audio stream as AAC (Advanced Audio Coding), the standard audio codec for 3GP files and the most broadly supported audio format on 3G-capable mobile devices.
-crf 23 Sets the Constant Rate Factor for the H.264 encoder to 23, a perceptual quality target that balances file size and visual fidelity. Lower values (e.g., 18) produce higher quality at larger sizes; higher values (e.g., 30–35) reduce file size at the cost of visible compression artifacts — important when targeting low-storage mobile devices.
-b:a 64k Sets the AAC audio bitrate to 64kbps, reflecting 3GP's mobile-optimized, low-bandwidth design philosophy. This is lower than a typical FLV audio bitrate (often 128kbps) and is sized for transmission over 3G networks and storage on constrained mobile devices.
-vf scale=trunc(iw/2)*2:trunc(ih/2)*2 Applies a video filter that rounds the output width and height down to the nearest even integer. H.264 encoding inside the 3GP container requires dimensions divisible by 2; this filter silently corrects any odd-dimension FLV source without otherwise changing the resolution.
output.3gp Specifies the output filename and triggers FFmpeg to use the 3GP container format. The .3gp extension tells FFmpeg to mux the encoded H.264 video and AAC audio into a 3GP-compliant file suitable for mobile playback.

Common Use Cases

  • Repurposing archived Flash-era video content (FLV files from pre-2020 websites) for playback on older Android or feature phones that support 3GP but not Flash
  • Sharing short video clips over MMS or mobile messaging apps on devices or networks with strict file size limits where 3GP's low-bitrate output is a requirement
  • Converting FLV recordings from legacy screen-capture or webcam tools into a format compatible with 3G-era mobile video players and editors
  • Reducing the storage footprint of FLV video collections by transcoding to 3GP's compact, low-bitrate format for archiving on limited-capacity mobile devices
  • Preparing video content for distribution through mobile platforms or SMS gateways in regions where 3G bandwidth is the primary connectivity standard
  • Getting the correct FFmpeg command to batch-convert large libraries of FLV files to 3GP locally, beyond the browser tool's 1GB per-file limit

Frequently Asked Questions

Yes, some quality reduction is expected and inherent to this conversion. FLV files often carry high-quality H.264 video at relatively high bitrates, while 3GP is designed for mobile delivery at much lower bitrates. The CRF 23 setting preserves reasonable visual quality, but the audio is downsampled to 64kbps AAC — noticeably lower than a typical FLV's 128kbps audio. For dialogue-heavy content the result is acceptable; for music-heavy FLVs you may want to increase the audio bitrate in the FFmpeg command.
The scale filter (scale=trunc(iw/2)*2:trunc(ih/2)*2) does not change your video's intended resolution — it only corrects dimensions that are odd numbers. H.264 encoding inside a 3GP container requires that both width and height be divisible by 2. If your FLV has an unusual resolution like 1279x719, the filter rounds each dimension down to the nearest even number (1278x718). For standard resolutions like 1280x720, the filter has no visible effect.
Both FLV and 3GP support AAC and MP3 audio, so codec-level compatibility exists. However, because FLV's audio bitrate defaults are typically higher than what is appropriate for 3GP's mobile-optimized use case, the audio is still re-encoded at 64kbps AAC rather than stream-copied. If your FLV already contains 64kbps AAC audio, you could modify the FFmpeg command to use -c:a copy to skip audio re-encoding entirely, saving time and avoiding a second generation of lossy compression.
3GP playback on modern Android devices is generally supported natively, but iOS and most desktop media players (Windows Media Player, QuickTime) have limited or no built-in 3GP support. VLC will play 3GP files on any platform. If your goal is mobile playback on current iOS or Android devices, MP4 is a more universally compatible target format. 3GP is best suited for legacy mobile devices, MMS sharing, or platforms that explicitly require the format.
The FFmpeg command displayed on this page is exactly what you need. Install FFmpeg on your system (available free at ffmpeg.org), then run: ffmpeg -i input.flv -c:v libx264 -c:a aac -crf 23 -b:a 64k -vf scale=trunc(iw/2)*2:trunc(ih/2)*2 output.3gp. Replace input.flv and output.3gp with your actual filenames. For batch processing an entire folder on Linux or macOS, you can wrap this in a shell loop: for f in *.flv; do ffmpeg -i "$f" -c:v libx264 -c:a aac -crf 23 -b:a 64k -vf scale=trunc(iw/2)*2:trunc(ih/2)*2 "${f%.flv}.3gp"; done
To improve video quality, lower the CRF value (e.g., change -crf 23 to -crf 18); to reduce file size at the cost of quality, raise it (e.g., -crf 30). CRF 18 is considered near-visually-lossless for H.264, while CRF 35+ produces noticeably blocky output. For audio, replace -b:a 64k with a higher value like -b:a 96k or -b:a 128k if audio fidelity matters — though be aware that 3GP files at high audio bitrates may not play correctly on older 3G devices that expect very low-bitrate streams.

Technical Notes

FLV was designed as a streaming container for the Adobe Flash ecosystem and has been largely deprecated since Flash's end-of-life in December 2020; many FLV files in the wild carry H.264 video (referred to internally as AVC) and AAC audio, making them technically close in codec terms to MP4. The 3GP container, defined by the 3rd Generation Partnership Project (3GPP), is a constrained profile of the MPEG-4 Part 12 container — essentially a restricted variant of MP4 optimized for mobile. Because both formats use H.264 and AAC, there is no codec mismatch, but re-encoding is still performed to apply 3GP-appropriate bitrate constraints and the mandatory even-dimension correction. Neither FLV nor 3GP supports transparency, subtitle tracks, chapter markers, or multiple audio tracks, so none of those features are lost in this specific conversion. Metadata (title, author, etc.) embedded in the FLV may not be preserved in the 3GP output, as FLV uses proprietary AMF-based metadata structures that do not map directly to the 3GP/MP4 atom model. File sizes will typically be smaller than the source FLV, primarily due to the lower audio bitrate target (64kbps vs. the FLV default of 128kbps) and any resolution corrections applied by the scale filter.

Related Tools