Trim FLV — Free Online Tool
Trim an FLV file to a specific start and end point, outputting a new FLV file with the same libx264 video and AAC audio streams copied without re-encoding. This is ideal for cutting clips from Flash Video files used in legacy web streaming workflows while preserving the original codec quality exactly.
to
FFmpeg Command
Copy this command to run the same conversion locally with FFmpeg on your desktop. Download FFmpeg
Drop your FLV 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
This tool uses FFmpeg's stream copy mode (-c copy) to extract a time segment from an FLV container without decoding or re-encoding any data. The libx264 video stream and AAC audio stream are lifted directly from the source file and written into a new FLV container spanning only the requested time range. Because no re-encoding occurs, there is no quality loss and the operation completes very quickly regardless of file size. One important nuance with stream copy trimming: FFmpeg must seek to the nearest keyframe before your specified start point, so the actual trim may begin a fraction of a second earlier than requested if no keyframe falls exactly on that timestamp. The output FLV retains the same codec configuration, bitrate, and quality characteristics as the original segment.
What Each Flag Does
| Flag | What it does |
|---|---|
ffmpeg
|
Invokes the FFmpeg binary. This is the entry point for all FFmpeg operations, including this FLV-to-FLV stream copy trim. |
-i input.flv
|
Specifies the input Flash Video file. FFmpeg reads the FLV container and identifies the available video (libx264 or FLV codec) and audio (AAC) streams for processing. |
-ss 00:00:00
|
Sets the trim start time to the beginning of the file in this default example. When placed after -i, this performs an accurate (but potentially keyframe-snapped) seek within the FLV stream rather than a fast container-level seek. |
-to 00:00:10
|
Sets the trim end point to 10 seconds into the FLV file. The output will contain only the content between the -ss start time and this timestamp. This is an absolute timestamp, not a duration. |
-c copy
|
Instructs FFmpeg to copy both the libx264 video stream and the AAC audio stream from the input FLV directly into the output FLV without any re-encoding, preserving original quality and making the operation near-instantaneous. |
output.flv
|
Defines the output file as an FLV container. FFmpeg writes the copied video and audio streams into a new Flash Video file covering only the trimmed time range. |
Common Use Cases
- Extract a specific highlight or moment from a recorded Flash-based live stream or webinar captured as an FLV file
- Remove dead air, countdowns, or post-stream chat from legacy FLV recordings before archiving or re-uploading
- Cut a short demo clip from a longer FLV screen recording to embed in a Flash-era web page or legacy CMS
- Trim an FLV file down to a specific scene before converting it to a modern format, reducing the re-encoding workload
- Isolate individual segments from multi-segment FLV video files downloaded from older video hosting platforms
- Prepare a short FLV clip for use with legacy Flash Player-based video players that still exist in enterprise intranet environments
Frequently Asked Questions
No. Because the command uses -c copy, neither the libx264 video stream nor the AAC audio stream is decoded or re-encoded. The raw compressed data from the original FLV is written directly into the new output file. Quality loss in video trimming only occurs when re-encoding is involved, which this workflow deliberately avoids.
This is a known behavior of stream copy trimming in FFmpeg. Video streams are divided into keyframes (full frames) and inter-frames (delta frames). When you specify a start time with -ss, FFmpeg must seek to the nearest preceding keyframe to ensure the video is decodable from that point. If your chosen start time falls on an inter-frame, the trim will begin slightly earlier at the last keyframe. For precise frame-accurate cuts, re-encoding would be required instead of stream copy.
Modify the values after -ss (start time) and -to (end time) using the format HH:MM:SS or HH:MM:SS.mmm for millisecond precision. For example, to trim from 1 minute 30 seconds to 2 minutes 45 seconds, use -ss 00:01:30 -to 00:02:45. Alternatively, you can replace -to with -t followed by a duration value, such as -t 75 to capture 75 seconds from the start point.
Yes, the -c copy flag is codec-agnostic — it copies whatever video stream is present in the FLV container without caring about the specific codec. If your FLV uses the legacy FLV1 (Sorenson Spark) or FLV4 (VP6) video codec, the stream copy will still work correctly. The output FLV will contain the same legacy codec. Note that our tool defaults to libx264 for re-encoding scenarios, but trimming with stream copy bypasses re-encoding entirely.
Yes. The AAC audio stream is copied byte-for-byte from the original FLV, so its sample rate, channel configuration, and bitrate remain unchanged. Audio/video sync is maintained because both streams are cut from the same seek point. However, if the source FLV has any pre-existing audio sync issues, those will also be preserved in the output since no re-muxing correction is applied.
Yes. On Linux or macOS you can use a shell loop: for f in *.flv; do ffmpeg -i "$f" -ss 00:00:00 -to 00:00:10 -c copy "trimmed_$f"; done. On Windows Command Prompt, use: for %f in (*.flv) do ffmpeg -i "%f" -ss 00:00:00 -to 00:00:10 -c copy "trimmed_%f". Adjust the -ss and -to values to your desired range. This is especially useful for processing large collections of FLV recordings that exceed the 1GB browser limit.
Technical Notes
FLV (Flash Video) is a container format that typically wraps libx264 or legacy Sorenson/VP6 video with AAC or MP3 audio. When trimming with stream copy, FFmpeg writes the output FLV with a new header but does not update certain metadata fields such as total duration in the FLV metadata tag (onMetaData) — some players may display an incorrect duration until the file is played through or re-muxed. The FLV format does not support subtitles, chapters, or multiple audio tracks, so none of those are a concern during trimming. FLV files produced with libx264 and AAC are broadly playable in most modern media players (VLC, MPC-HC) even though browser-native Flash support is obsolete. The CRF and audio bitrate settings listed in the format specification are relevant only if re-encoding is performed; stream copy trimming ignores quality parameters entirely. If you need frame-accurate trimming rather than keyframe-aligned trimming, remove -c copy and specify explicit codec flags such as -c:v libx264 -crf 23 -c:a aac -b:a 128k, accepting a re-encode penalty.