FLV structure in brief
An FLV file is a 9-byte header followed by a sequence of tags. Each tag has a type (8 = audio, 9 = video, 18 = script data), a 24-bit data size and a timestamp in milliseconds. The first script tag is usually onMetaData, an AMF0 object with duration, width, height, frame rate and codec IDs.
Typical uses
- Debug RTMP and live-stream recordings: look for timestamps that jump backward, gaps, or audio and video drifting apart
- Measure the keyframe interval from video tags marked as keyframes
- Check that onMetaData matches the actual stream (duration, resolution, codec)
- Identify the video codec: H.264 (AVC), HEVC, VP6, Sorenson H.263 and others
Frequently asked questions
- Are my video files uploaded?
- No. MP4 and FLV files are read and parsed inside your browser tab with JavaScript and WebAssembly; the file never leaves your device. The only thing that goes through the VideoZ server is an HLS playlist URL, which is fetched by a small proxy because browsers block cross-origin playlist requests.
- Can it open very large FLV files?
- Yes. Parsing is plain TypeScript with no WebAssembly, and the tag list is paginated, so files with millions of tags stay responsive.
- What is onMetaData?
- onMetaData is an AMF0-encoded script tag the encoder writes at the start of an FLV, describing duration, dimensions, frame rate, bitrates and codecs.