Checking FLV files created or modified with third-party tools

Third-party tools are available to create and modify FLV files, but some of the tools create files that do not comply with the FLV standard. Common problems include bad timestamps in the FLV file, invalid onMetaData messages, bad message headers, and corrupted audio and video. The FLVCheck tool can be used to analyze FLV files before they are deployed on Adobe Media Server. In addition, the tool can also add or update metadata to reflect file duration correctly. The tool verifies that metadata is readable, specifies an accurate duration, and checks that the FLV file is seekable by Adobe Media Server. The tool supports unicode filenames.


The FLVCheck tool does not correct FLV file content corruption. The tool does fix metadata by scanning the Duration and Can Seek To End metadata fields. The tool can then merge the server metadata with the data present in the file.

Checking other video files

Adobe Media Server supports playback and recording of H.264-encoded video and HE-AAC-encoded audio within an MPEG-4–based container format. A subset of the MPEG-4 standards are supported. All MP4 files and Adobe F4V files are part of the supported subset.

For MPEG-4–based container formats, use the FLVCheck tool to verify that the server can play back your files.


The FLVCheck tool does not correct corrupted H.264-encoded files or make any other fixes to MP4/F4V files.

Check a video file with the FLVCheck tool

The FLVCheck tool is a command line program; the executable is named flvcheck.

  1. Open your operating system’s command prompt and change directories to RootInstall/tools.

  2. Use the following syntax to run the FLVCheck tool:

     flvcheck [-option] <file ...>

    For example, to check two files:

     flvcheck -f abc.flv ../test/123.flv

    The following table describes the command line options available.



    -f [ --file ] file ...

    Specifies the path to the video file(s) being checked. Relative paths may be used. (Avoid using the “\\xd3 character; try the “/” character instead.)

    -v [--verbose]

    Sets the verbose flag.

    -V [ --version ]

    Prints version information.

    -n [ --nobanner ]

    Turns off header.

    -h [ --help ]

    Provides a description of options and an example.

    -d [ --duration ]

    Specifies the margin of error, in seconds, that FLVCheck reports. (The default is 2 seconds.)

    When validating metadata, the absolute difference between metadata_duration and actual_duration is calculated and compared against the margin specified in this command. If the margin is exceeded, the server logs a warning that the metadata duration is incorrect. If the margin has not been exceeded, nothing will be logged.

    To get the exact duration, specify -d 0.

    -q [ --quiet ]

    Specifies that only the status code, not the text output, be returned. The --help option overrides this option.

    -w [ --warnings]

    Display warnings.

    -W [--warnings_as_errors]

    Treat warnings as errors.

    -s [ --fixvideostall ]

    Fix a stall in video playback (FLV only).

    -u [ --usage ]

    Displays an example and information about command-line parameters.

    -m [ --fixmeta ]

    (FLV files only) If a metadata tag is corrupted, creates a new copy of the original FLV file in the same directory as the original, with corrected metadata. (If the file contains no errors, a backup file is not created.) Only the Duration and Can Seek To End metadata fields are corrected.

  3. If the FLVCheck tool finds no errors in the FLV file, the status code returned is 0. If there are one or more errors, a positive number indicating the total number of invalid files found is returned. If a return code of -1 is returned, an invalid command-line parameter was specified.

    Errors and warnings are logged in a log file (stdout).

  4. (FLV files only) If an error is returned from an FLV file due to a metadata error, you can use the tool to try to correct the problem. Try the following:

    1. Use the -m option to try to fix the metadata in the file:

       flvcheck -m <file> [-quiet] [-help]
    2. Use the -d option to change the duration field margin of error. The duration field in the metadata may be inaccurate by a few seconds. For example, flvcheck -f abc.flv -d 5 would allow the metadata duration to be inaccurate +/- 5 seconds.

      Other types of errors cannot be fixed using the FLVCheck tool. MP4/F4V files cannot be fixed using the FLVCheck tool.

FLVCheck errors

If an error is found, the error is logged to the stdout file in the following format: Date, Time, ErrorNumber, ErrorMessage, and FileName. The possible error numbers, types of errors, and messages are as follows.

Error numbers

Error type

Error messages



Invalid file system path specified.



File not found.



Cannot open file.



File read error.

Adobe Media Server cannot read the file, indicating that the encoding of part or all of the file is not compatible with the codecs that are supported.



Cannot create corrected file.

This error occurs if you run the tool with the -m option set, but the tool cannot create a file with corrected metadata.



Invalid FLV signature.



Invalid FLV data offset.



Invalid FLV message footer.



Unrecognized message type.



Found backward timestamp.



Unparsable data message.



File does not contain a movie box.

This error occurs if the MP4 file is empty.



File does not contain any valid tracks.

This error could occur if the MP4 file contains audio or video encoded with unsupported codecs.



Too many tracks. Maximum allowed is 64.



Only one sample type allowed per track.



Box is too large.



Truncated box.

The reported length of a box is longer than the remaining length of the file. The file may have been truncated, or the reported box length may be invalid.



Duplicate box.



Invalid box version.



Invalid movie time scale.



Invalid number of data entries in box.



Invalid sample size.



Invalid chapter time.



Too many tag boxes. Max is 64.



File appears to be FLV with wrong extension.



Unsupported DRM scheme.



Error reading MP4 tables.



File contains unexpected movie fragments.



File contains out-of-order movie fragments.



Found negative CTTS Offset.

The MP4 standard stores the CTTS offset as an unsigned 32-bit value. The RTMP standard stores the CTTS offset as a 24-bit unsigned value. However, if a file has negative CTTS offsets, the value becomes very large when converted to unsigned 32-bit, and RTMP strips off 8 bits. This behavior may cause artifacts to be seen during playback.

FLVCheck warnings

Generally, warnings are informative and are not fatal errors; Adobe Media Server will ignore the error that caused the warning and continue to load and play back the video or audio file, but you may experience problems with playback. Warnings are logged to the stdout file in the following format: Date, Time, Warning Number, Warning Message, and File Name.

Warning number

Warning type




Metadata duration is missing or is incorrect.



canSeekToEnd is false.



Unrecognized box.



Found incomplete track.



Found duplicate video track. Ignoring...



Found duplicate audio track. Ignoring...



Found duplicate data track. Ignoring...



Track has unsupported sample type.

Adobe Media Server ignores (will not play back) tracks that are encoded with unsupported codecs.



Invalid video codec.

This warning indicates that a track has an invalid video codec. Adobe Media Server cannot play back the track.



Invalid audio codec.

This warning indicates that a track has an invalid audio codec. Adobe Media Server cannot play back the track.



Video may appear stalled due to lack of audio data.



File has unsupported metadata format.



Box has extraneous bytes at end.



Video messages found but video flag not set.



Audio messages found but audio flag not set.



Video flag set but no video messages found.



Audio flag set but no audio messages found.



File is truncated. Will only be partially playable.



Track contains unsupported edit list.



Missing FLV metadata.



Bad NellyMoser Frequency. Sample(s) skipped.



Invalid Track Extends Box.



Track contains unsupported sample flags.