4 new revisions:
Revision: 95cf143167b2
Author: Marc Noirot <
marc....@gmail.com>
Date: Sun Apr 22 12:42:13 2012
Log: Moved man files to the man directory.
http://code.google.com/p/flvmeta/source/detail?r=95cf143167b2
Revision: 6cd37f4d6d7c
Author: Marc Noirot <
marc....@gmail.com>
Date: Sun Apr 22 12:43:26 2012
Log: Updated reference to flvmeta.1.
http://code.google.com/p/flvmeta/source/detail?r=6cd37f4d6d7c
Revision: d92860cd5945
Author: Marc Noirot <
marc....@gmail.com>
Date: Sun Apr 22 13:09:32 2012
Log: Allowed distribution of the man page.
http://code.google.com/p/flvmeta/source/detail?r=d92860cd5945
Revision: 01b5fd68adce
Author: Marc Noirot <
marc....@gmail.com>
Date: Mon Apr 23 06:57:23 2012
Log: Added automated building of flvmeta's man page using pandoc.
http://code.google.com/p/flvmeta/source/detail?r=01b5fd68adce
==============================================================================
Revision: 95cf143167b2
Author: Marc Noirot <
marc....@gmail.com>
Date: Sun Apr 22 12:42:13 2012
Log: Moved man files to the man directory.
http://code.google.com/p/flvmeta/source/detail?r=95cf143167b2
Added:
/man/flvmeta.1
/man/
flvmeta.1.md
Deleted:
/man/1/flvmeta.1
/man/1/
flvmeta.1.md
=======================================
--- /dev/null
+++ /man/flvmeta.1 Sun Apr 22 12:42:13 2012
@@ -0,0 +1,392 @@
+.TH flvmeta 1 "April 2012" "flvmeta user manual"
+.SH NAME
+.PP
+flvmeta - manipulate or extract metadata in Adobe Flash Video files
+.SH SYNOPSIS
+.PP
+\f[B]flvmeta\f[] \f[I]INPUT_FILE\f[]
+.PD 0
+.P
+.PD
+\f[B]flvmeta\f[] \f[I]INPUT_FILE\f[] \f[I]OUTPUT_FILE\f[]
+.PD 0
+.P
+.PD
+\f[B]flvmeta\f[] \f[C]-D\f[]|\f[C]--dump\f[] [\f[I]options\f[]]
+\f[I]INPUT_FILE\f[]
+.PD 0
+.P
+.PD
+\f[B]flvmeta\f[] \f[C]-F\f[]|\f[C]--full-dump\f[] [\f[I]options\f[]]
+\f[I]INPUT_FILE\f[]
+.PD 0
+.P
+.PD
+\f[B]flvmeta\f[] \f[C]-C\f[]|\f[C]--check\f[] [\f[I]options\f[]]
+\f[I]INPUT_FILE\f[]
+.PD 0
+.P
+.PD
+\f[B]flvmeta\f[] \f[C]-U\f[]|\f[C]--update\f[] [\f[I]options\f[]]
+\f[I]INPUT_FILE\f[] [\f[I]OUTPUT_FILE\f[]]
+.SH DESCRIPTION
+.PP
+\f[B]flvmeta\f[] is a command-line utility aimed at manipulating
+Adobe(tm) Flash Video files (FLV), through several commands, only one of
+which can be used for each invocation of the program.
+.PP
+It possesses the ability to compute and inject a variety of values in
+the \f[I]onMetaData\f[] event tag, including keyframe indices used by
+most video players to allow random-access seeking, notably for HTTP
+pseudo-streamed files via a server-side module, by having the client
+send the file offset looked up for the nearest desired keyframe.
+.PD 0
+.P
+.PD
+Tools such as \f[B]flvmeta\f[] must be used in the case the initial
+encoding process is unable to inject those metadata.
+.PP
+It can also optionnally inject the \f[I]onLastSecond\f[] event, used to
+signal the end of playback, for example to revert the player software to
+a `stopped' state.
+.PP
+\f[B]flvmeta\f[] also has the ability to dump metadata and full file
+information to standard output, in a variety of textual output formats,
+including XML, YAML, and JSON.
+.PP
+Finally, the program can analyze FLV files to detect potential problems
+and errors, and generate a textual report in a raw format, or in XML.
+It has the ability to detect more than a hundred problems, going from
+harmless to potentially unplayable, using a few real world encountered
+issues.
+This analysis can also determine and display the minimal Flash Player
+version which can be used to correctly play a given file, as well as
+codec information.
+.PP
+\f[B]flvmeta\f[] can operate on arbitrarily large files, and can handle
+FLV files using extended (32-bit) timestamps.
+It can guess video frame dimensions for all known video codecs supported
+by the official FLV specification.
+.PP
+Its memory usage remains minimal, as it uses a two-pass reading
+algorithm which permits the computation of all necessary tags without
+loading anything more than the file's tags headers in memory.
+Only the dumping of JSON data can consume more memory, since the bundled
+\f[C]mjson\f[] library constructs a data tree in memory before
+outputting the formatted data.
+.SH COMMANDS
+.PP
+Only one command can be specified for an invocation of \f[B]flvmeta\f[].
+The chosen command determines the mode of execution of the program.
+.PP
+By default, if no command is specified, \f[B]flvmeta\f[] will
+implicitely choose the command to use according to the presence of
+\f[I]INPUT_FILE\f[] and \f[I]OUTPUT_FILE\f[].
+.PP
+If only \f[I]INPUT_FILE\f[] is present, the \f[C]--dump\f[] command will
+be executed.
+.PP
+If both \f[I]INPUT_FILE\f[] and \f[I]OUTPUT_FILE\f[] are present, the
+\f[C]--update\f[] command will be executed.
+.PP
+Here is a list of the supported commands:
+.SS -D, --dump
+.PP
+Dump a textual representation of the first \f[I]onMetaData\f[] tag found
+in \f[I]INPUT_FILE\f[] to standard output.
+The default format is XML, unless specified otherwise.
+.PD 0
+.P
+.PD
+It is also possible to specify another event via the \f[C]--event\f[]
+option, such as \f[I]onLastSecond\f[].
+.SS -F, --full-dump
+.PP
+Dump a textual representation of the whole contents of
+\f[I]INPUT_FILE\f[] to standard output.
+The default format is XML, unless specified otherwise.
+.SS -C, --check
+.PP
+Print a report to standard output listing warnings and errors detected
+in \f[I]INPUT_FILE\f[], as well as potential incompatibilities, and
+informations about the codecs used in the file.
+The exit code will be set to a non-zero value if there is at least one
+error in the file.
+.PP
+The output format can either be plain text or XML using the
+\f[C]--xml\f[] option.
+It can also be disabled altogether using the \f[C]--quiet\f[] option if
+you are only interested in the exit status.
+.PP
+Messages are divided into four specific levels of increasing importance:
+.IP \[bu] 2
+\f[B]info\f[]: informational messages that do not pertain to the file
+validity
+.PD 0
+.P
+.PD
+.IP \[bu] 2
+\f[B]warning\f[]: messages that inform of oddities to the flv format but
+that might not hamper file reading or playability, this is the default
+level
+.PD 0
+.P
+.PD
+.IP \[bu] 2
+\f[B]error\f[]: messages that inform of errors that might render the
+file impossible to play or stream correctly
+.PD 0
+.P
+.PD
+.IP \[bu] 2
+\f[B]fatal\f[]: messages that inform of errors that make further file
+reading impossible therefore ending parsing completely
+.PP
+The \f[C]--level\f[] option allows to limit the display of messages to a
+minimum level among those, for example if the user is only interested in
+error messages and above.
+.PP
+Each message or message template presented to the user is identified by
+a specific code of the following format:
+.PP
+\f[C][level][topic][id]\f[]
+.IP \[bu] 2
+\f[B]level\f[] is an upper-case letter that can be either I, W, E, F
+according to the aforementioned message levels
+.PD 0
+.P
+.PD
+.IP \[bu] 2
+\f[B]topic\f[] is a two-digit integer representing the general topic of
+the message
+.PD 0
+.P
+.PD
+.IP \[bu] 2
+\f[B]id\f[] is a unique three-digit identifier for the message, or
+message template if parameterized
+.PP
+Messages can be related to the following topics :
+.IP \[bu] 2
+\f[B]10\f[] general flv file format
+.PD 0
+.P
+.PD
+.IP \[bu] 2
+\f[B]11\f[] file header
+.PD 0
+.P
+.PD
+.IP \[bu] 2
+\f[B]12\f[] previous tag size
+.PD 0
+.P
+.PD
+.IP \[bu] 2
+\f[B]20\f[] tag format
+.PD 0
+.P
+.PD
+.IP \[bu] 2
+\f[B]30\f[] tag types
+.PD 0
+.P
+.PD
+.IP \[bu] 2
+\f[B]40\f[] timestamps
+.PD 0
+.P
+.PD
+.IP \[bu] 2
+\f[B]50\f[] audio data
+.PD 0
+.P
+.PD
+.IP \[bu] 2
+\f[B]51\f[] audio codecs
+.PD 0
+.P
+.PD
+.IP \[bu] 2
+\f[B]60\f[] video data
+.PD 0
+.P
+.PD
+.IP \[bu] 2
+\f[B]61\f[] video codecs
+.PD 0
+.P
+.PD
+.IP \[bu] 2
+\f[B]70\f[] metadata
+.PD 0
+.P
+.PD
+.IP \[bu] 2
+\f[B]80\f[] AMF data
+.PD 0
+.P
+.PD
+.IP \[bu] 2
+\f[B]81\f[] keyframes
+.PD 0
+.P
+.PD
+.IP \[bu] 2
+\f[B]82\f[] cue points
+.PP
+For example, represents a Warning in topic 51 with the id 050, which
+represents a warning message related to audio codecs, in that case to
+signal that an audio tag has an unknown codec.
+.SS -U, --update
+.PP
+Update the given input file by inserting a computed \f[I]onMetaData\f[]
+tag.
+If \f[I]OUTPUT_FILE\f[] is specified, it will be created or overwritten
+instead and the input file will not be modified.
+If the original file is to be updated, a temporary file will be created
+in the default temp directory of the platform, and it will be copied
+over the original file at the end of the operation.
+This is due to the fact that the output file is written while the
+original file is being read due to the two-pass method.
+.PP
+The computed metadata contains among other data full keyframe
+informations, in order to allow HTTP pseudo-streaming and random-access
+seeking in the file.
+.PP
+By default, an \f[I]onLastSecond\f[] tag will be inserted, unless the
+\f[C]--no-last-second\f[] option is specified.
+.PP
+Normally overwritten by the update process, the existing metadata found
+in the input file can be preserved by the \f[C]--preserve\f[] option.
+.PP
+It is also possible to insert custom string values with the
+\f[C]--add\f[] option, which can be specified multiple times.
+.PP
+By default, the update operation is performed without output, unless the
+\f[C]--verbose\f[] option is specified, or the \f[C]--print-metadata\f[]
+is used to print the newly written metadata to the standard output.
+.SH OPTIONS
+.SS DUMP
+.TP
+.B -d \f[I]FORMAT\f[], --dump-format=\f[I]FORMAT\f[]
+specify dump format where \f[I]FORMAT\f[] is `xml' (default), `json',
+`raw', or `yaml'.
+Also applicable for the \f[B]--full-dump\f[] command.
+.RS
+.RE
+.TP
+.B -j, --json
+equivalent to \f[B]--dump-format=json\f[]
+.RS
+.RE
+.TP
+.B -r, --raw
+equivalent to \f[B]--dump-format=raw\f[]
+.RS
+.RE
+.TP
+.B -x, --xml
+equivalent to \f[B]--dump-format=xml\f[]
+.RS
+.RE
+.TP
+.B -y, --yaml
+equivalent to \f[B]--dump-format=yaml\f[]
+.RS
+.RE
+.TP
+.B -e \f[I]EVENT\f[], --event=\f[I]EVENT\f[]
+specify the event to dump instead of \f[I]onMetaData\f[], for example
+\f[I]onLastSecond\f[].
+.RS
+.RE
+.SS CHECK
+.TP
+.B -l \f[I]LEVEL\f[], --level=\f[I]LEVEL\f[]
+print only messages where level is at least \f[I]LEVEL\f[].
+The levels are, by ascending importance, `info', `warning' (default),
+`error', or `fatal'.
+.RS
+.RE
+.TP
+.B -q, --quiet
+do not print messages, only return the status code
+.RS
+.RE
+.TP
+.B -x, --xml
+generate an XML report instead of the default `compiler-friendly' text
+.RS
+.RE
+.SS UPDATE
+.TP
+.B -m, --print-metadata
+print metadata to stdout after update using the format specified by the
+\f[B]--format\f[] option
+.RS
+.RE
+.TP
+.B -a \f[I]NAME=VALUE\f[], --add=\f[I]NAME=VALUE\f[]
+add a metadata string value to the output file
+.RS
+.RE
+.TP
+.B -s, --no-lastsecond
+do not create the \f[I]onLastSecond\f[] tag
+.RS
+.RE
+.TP
+.B -p, --preserve
+preserve input file existing \f[I]onMetadata\f[] tags
+.RS
+.RE
+.TP
+.B -f, --fix
+fix invalid tags from the input file
+.RS
+.RE
+.TP
+.B -i, --ignore
+ignore invalid tags from the input file (the default behaviour is to
+stop the update process with an error)
+.RS
+.RE
+.TP
+.B -t, --reset-timestamps
+reset timestamps so \f[I]OUTPUT_FILE\f[] starts at zero.
+This has been added because some FLV files are produced by cutting
+bigger files, and the software doing the cutting does not resets the
+timestamps as required by the standard, which can cause playback issues.
+.RS
+.RE
+.TP
+.B -k, \[em]all-keyframes
+index all keyframe tags, including duplicate timestamps
+.RS
+.RE
+.SS GENERAL
+.TP
+.B -v, --verbose
+display informative messages
+.RS
+.RE
+.TP
+.B -V, --version
+print version information and exit
+.RS
+.RE
+.TP
+.B -h, --help
+display help on the program usage and exit
+.RS
+.RE
+.SH FORMATS
+.SH EXAMPLES
+.SH EXIT STATUS
+.SH BUGS
+.PP
+\f[B]flvmeta\f[] does not support encrypted FLV files yet.
+.SH AUTHOR
+.SH COPYRIGHT
+.SH CONTACT
=======================================
--- /dev/null
+++ /man/
flvmeta.1.md Sun Apr 22 12:42:13 2012
@@ -0,0 +1,262 @@
+% flvmeta(1) flvmeta user manual
+%
+% April 2012
+
+# NAME
+
+flvmeta - manipulate or extract metadata in Adobe Flash Video files
+
+# SYNOPSIS
+
+**flvmeta** *INPUT_FILE*
+**flvmeta** *INPUT_FILE* *OUTPUT_FILE*
+**flvmeta** `-D`|`--dump` [*options*] *INPUT_FILE*
+**flvmeta** `-F`|`--full-dump` [*options*] *INPUT_FILE*
+**flvmeta** `-C`|`--check` [*options*] *INPUT_FILE*
+**flvmeta** `-U`|`--update` [*options*] *INPUT_FILE* [*OUTPUT_FILE*]
+
+# DESCRIPTION
+
+**flvmeta** is a command-line utility aimed at manipulating Adobe(tm) Flash
+Video files (FLV), through several commands, only one of which can be used
for
+each invocation of the program.
+
+It possesses the ability to compute and inject a variety of values in the
+_onMetaData_ event tag, including keyframe indices used by most video
players to
+allow random-access seeking, notably for HTTP pseudo-streamed files via a
+server-side module, by having the client send the file offset looked up
for the
+nearest desired keyframe.
+Tools such as **flvmeta** must be used in the case the initial encoding
process
+is unable to inject those metadata.
+
+It can also optionnally inject the _onLastSecond_ event, used to signal
the end
+of playback, for example to revert the player software to a 'stopped'
state.
+
+**flvmeta** also has the ability to dump metadata and full file
information to
+standard output, in a variety of textual output formats, including XML,
YAML,
+and JSON.
+
+Finally, the program can analyze FLV files to detect potential problems and
+errors, and generate a textual report in a raw format, or in XML.
+It has the ability to detect more than a hundred problems, going from
harmless
+to potentially unplayable, using a few real world encountered issues.
+This analysis can also determine and display the minimal Flash Player
version
+which can be used to correctly play a given file, as well as codec
information.
+
+**flvmeta** can operate on arbitrarily large files, and can handle FLV
files
+using extended (32-bit) timestamps.
+It can guess video frame dimensions for all known video codecs supported
by the
+official FLV specification.
+
+Its memory usage remains minimal, as it uses a two-pass reading algorithm
which
+permits the computation of all necessary tags without loading anything
more than
+the file's tags headers in memory.
+Only the dumping of JSON data can consume more memory, since the bundled
`mjson`
+library constructs a data tree in memory before outputting the formatted
data.
+
+# COMMANDS
+
+Only one command can be specified for an invocation of **flvmeta**. The
chosen
+command determines the mode of execution of the program.
+
+By default, if no command is specified, **flvmeta** will implicitely
choose the
+command to use according to the presence of *INPUT_FILE* and *OUTPUT_FILE*.
+
+If only *INPUT_FILE* is present, the `--dump` command will be executed.
+
+If both *INPUT_FILE* and *OUTPUT_FILE* are present, the `--update` command
+will be executed.
+
+Here is a list of the supported commands:
+
+## -D, \--dump
+
+Dump a textual representation of the first _onMetaData_ tag found in
+*INPUT_FILE* to standard output. The default format is XML, unless
+specified otherwise.
+It is also possible to specify another event via the `--event` option,
+such as _onLastSecond_.
+
+## -F, \--full-dump
+
+Dump a textual representation of the whole contents of *INPUT_FILE* to
+standard output. The default format is XML, unless specified otherwise.
+
+## -C, \--check
+
+Print a report to standard output listing warnings and errors detected in
+*INPUT_FILE*, as well as potential incompatibilities, and informations
about
+the codecs used in the file. The exit code will be set to a non-zero value
+if there is at least one error in the file.
+
+The output format can either be plain text or XML using the `--xml` option.
+It can also be disabled altogether using the `--quiet` option if you are
+only interested in the exit status.
+
+Messages are divided into four specific levels of increasing importance:
+
+* **info**: informational messages that do not pertain to the file validity
+* **warning**: messages that inform of oddities to the flv format but that
+ might not hamper file reading or playability, this is the default level
+* **error**: messages that inform of errors that might render the file
+ impossible to play or stream correctly
+* **fatal**: messages that inform of errors that make further file reading
+ impossible therefore ending parsing completely
+
+The `--level` option allows to limit the display of messages to a minimum
+level among those, for example if the user is only interested in error
+messages and above.
+
+Each message or message template presented to the user is identified by a
+specific code of the following format:
+
+`[level][topic][id]`
+
+* **level** is an upper-case letter that can be either I, W, E, F
according to
+ the aforementioned message levels
+* **topic** is a two-digit integer representing the general topic of the
+ message
+* **id** is a unique three-digit identifier for the message, or message
+ template if parameterized
+
+Messages can be related to the following topics :
+
+* **10** general flv file format
+* **11** file header
+* **12** previous tag size
+* **20** tag format
+* **30** tag types
+* **40** timestamps
+* **50** audio data
+* **51** audio codecs
+* **60** video data
+* **61** video codecs
+* **70** metadata
+* **80** AMF data
+* **81** keyframes
+* **82** cue points
+
+For example, <W51050> represents a Warning in topic 51 with the id 050,
+which represents a warning message related to audio codecs, in that case to
+signal that an audio tag has an unknown codec.
+
+## -U, \--update
+
+Update the given input file by inserting a computed _onMetaData_ tag. If
+*OUTPUT_FILE* is specified, it will be created or overwritten instead and
+the input file will not be modified. If the original file is to be updated,
+a temporary file will be created in the default temp directory of the
+platform, and it will be copied over the original file at the end of
+the operation. This is due to the fact that the output file is written
+while the original file is being read due to the two-pass method.
+
+The computed metadata contains among other data full keyframe informations,
+in order to allow HTTP pseudo-streaming and random-access seeking in the
+file.
+
+By default, an _onLastSecond_ tag will be inserted, unless the
+`--no-last-second` option is specified.
+
+Normally overwritten by the update process, the existing metadata found in
+the input file can be preserved by the `--preserve` option.
+
+It is also possible to insert custom string values with the `--add` option,
+which can be specified multiple times.
+
+By default, the update operation is performed without output, unless the
+`--verbose` option is specified, or the `--print-metadata` is used to
+print the newly written metadata to the standard output.
+
+# OPTIONS
+
+## DUMP
+
+-d *FORMAT*, \--dump-format=*FORMAT*
+: specify dump format where *FORMAT* is 'xml' (default), 'json', 'raw',
or
+ 'yaml'. Also applicable for the **\--full-dump** command.
+
+-j, \--json
+: equivalent to **\--dump-format=json**
+
+-r, \--raw
+: equivalent to **\--dump-format=raw**
+
+-x, \--xml
+: equivalent to **\--dump-format=xml**
+
+-y, \--yaml
+: equivalent to **\--dump-format=yaml**
+
+-e *EVENT*, \--event=*EVENT*
+: specify the event to dump instead of _onMetaData_, for example
+ _onLastSecond_.
+
+## CHECK
+
+-l *LEVEL*, \--level=*LEVEL*
+: print only messages where level is at least *LEVEL*. The levels are, by
+ ascending importance, 'info', 'warning' (default), 'error', or 'fatal'.
+
+-q, \--quiet
+: do not print messages, only return the status code
+
+-x, \--xml
+: generate an XML report instead of the default 'compiler-friendly' text
+
+## UPDATE
+
+-m, \--print-metadata
+: print metadata to stdout after update using the format specified by
+ the **\--format** option
+
+-a *NAME=VALUE*, \--add=*NAME=VALUE*
+: add a metadata string value to the output file
+
+-s, \--no-lastsecond
+: do not create the *onLastSecond* tag
+
+-p, \--preserve
+: preserve input file existing *onMetadata* tags
+
+-f, \--fix
+: fix invalid tags from the input file
+
+-i, \--ignore
+: ignore invalid tags from the input file (the default behaviour is to
stop
+ the update process with an error)
+
+-t, \--reset-timestamps
+: reset timestamps so *OUTPUT_FILE* starts at zero. This has been added
+ because some FLV files are produced by cutting bigger files, and the
+ software doing the cutting does not resets the timestamps as required
+ by the standard, which can cause playback issues.
+
+-k, --all-keyframes
+: index all keyframe tags, including duplicate timestamps
+
+## GENERAL
+
+-v, \--verbose
+: display informative messages
+
+-V, \--version
+: print version information and exit
+
+-h, \--help
+: display help on the program usage and exit
+
+# FORMATS
+
+# EXAMPLES
+
+# EXIT STATUS
+
+# BUGS
+
+**flvmeta** does not support encrypted FLV files yet.
+
+# AUTHOR
+
+# COPYRIGHT
+
+# CONTACT
=======================================
--- /man/1/flvmeta.1 Fri Apr 20 06:21:34 2012
+++ /dev/null
@@ -1,392 +0,0 @@
-.TH flvmeta 1 "April 2012" "flvmeta user manual"
-.SH NAME
-.PP
-flvmeta - manipulate or extract metadata in Adobe Flash Video files
-.SH SYNOPSIS
-.PP
-\f[B]flvmeta\f[] \f[I]INPUT_FILE\f[]
-.PD 0
-.P
-.PD
-\f[B]flvmeta\f[] \f[I]INPUT_FILE\f[] \f[I]OUTPUT_FILE\f[]
-.PD 0
-.P
-.PD
-\f[B]flvmeta\f[] \f[C]-D\f[]|\f[C]--dump\f[] [\f[I]options\f[]]
-\f[I]INPUT_FILE\f[]
-.PD 0
-.P
-.PD
-\f[B]flvmeta\f[] \f[C]-F\f[]|\f[C]--full-dump\f[] [\f[I]options\f[]]
-\f[I]INPUT_FILE\f[]
-.PD 0
-.P
-.PD
-\f[B]flvmeta\f[] \f[C]-C\f[]|\f[C]--check\f[] [\f[I]options\f[]]
-\f[I]INPUT_FILE\f[]
-.PD 0
-.P
-.PD
-\f[B]flvmeta\f[] \f[C]-U\f[]|\f[C]--update\f[] [\f[I]options\f[]]
-\f[I]INPUT_FILE\f[] [\f[I]OUTPUT_FILE\f[]]
-.SH DESCRIPTION
-.PP
-\f[B]flvmeta\f[] is a command-line utility aimed at manipulating
-Adobe(tm) Flash Video files (FLV), through several commands, only one of
-which can be used for each invocation of the program.
-.PP
-It possesses the ability to compute and inject a variety of values in
-the \f[I]onMetaData\f[] event tag, including keyframe indices used by
-most video players to allow random-access seeking, notably for HTTP
-pseudo-streamed files via a server-side module, by having the client
-send the file offset looked up for the nearest desired keyframe.
-.PD 0
-.P
-.PD
-Tools such as \f[B]flvmeta\f[] must be used in the case the initial
-encoding process is unable to inject those metadata.
-.PP
-It can also optionnally inject the \f[I]onLastSecond\f[] event, used to
-signal the end of playback, for example to revert the player software to
-a `stopped' state.
-.PP
-\f[B]flvmeta\f[] also has the ability to dump metadata and full file
-information to standard output, in a variety of textual output formats,
-including XML, YAML, and JSON.
-.PP
-Finally, the program can analyze FLV files to detect potential problems
-and errors, and generate a textual report in a raw format, or in XML.
-It has the ability to detect more than a hundred problems, going from
-harmless to potentially unplayable, using a few real world encountered
-issues.
-This analysis can also determine and display the minimal Flash Player
-version which can be used to correctly play a given file, as well as
-codec information.
-.PP
-\f[B]flvmeta\f[] can operate on arbitrarily large files, and can handle
-FLV files using extended (32-bit) timestamps.
-It can guess video frame dimensions for all known video codecs supported
-by the official FLV specification.
-.PP
-Its memory usage remains minimal, as it uses a two-pass reading
-algorithm which permits the computation of all necessary tags without
-loading anything more than the file's tags headers in memory.
-Only the dumping of JSON data can consume more memory, since the bundled
-\f[C]mjson\f[] library constructs a data tree in memory before
-outputting the formatted data.
-.SH COMMANDS
-.PP
-Only one command can be specified for an invocation of \f[B]flvmeta\f[].
-The chosen command determines the mode of execution of the program.
-.PP
-By default, if no command is specified, \f[B]flvmeta\f[] will
-implicitely choose the command to use according to the presence of
-\f[I]INPUT_FILE\f[] and \f[I]OUTPUT_FILE\f[].
-.PP
-If only \f[I]INPUT_FILE\f[] is present, the \f[C]--dump\f[] command will
-be executed.
-.PP
-If both \f[I]INPUT_FILE\f[] and \f[I]OUTPUT_FILE\f[] are present, the
-\f[C]--update\f[] command will be executed.
-.PP
-Here is a list of the supported commands:
-.SS -D, --dump
-.PP
-Dump a textual representation of the first \f[I]onMetaData\f[] tag found
-in \f[I]INPUT_FILE\f[] to standard output.
-The default format is XML, unless specified otherwise.
-.PD 0
-.P
-.PD
-It is also possible to specify another event via the \f[C]--event\f[]
-option, such as \f[I]onLastSecond\f[].
-.SS -F, --full-dump
-.PP
-Dump a textual representation of the whole contents of
-\f[I]INPUT_FILE\f[] to standard output.
-The default format is XML, unless specified otherwise.
-.SS -C, --check
-.PP
-Print a report to standard output listing warnings and errors detected
-in \f[I]INPUT_FILE\f[], as well as potential incompatibilities, and
-informations about the codecs used in the file.
-The exit code will be set to a non-zero value if there is at least one
-error in the file.
-.PP
-The output format can either be plain text or XML using the
-\f[C]--xml\f[] option.
-It can also be disabled altogether using the \f[C]--quiet\f[] option if
-you are only interested in the exit status.
-.PP
-Messages are divided into four specific levels of increasing importance:
-.IP \[bu] 2
-\f[B]info\f[]: informational messages that do not pertain to the file
-validity
-.PD 0
-.P
-.PD
-.IP \[bu] 2
-\f[B]warning\f[]: messages that inform of oddities to the flv format but
-that might not hamper file reading or playability, this is the default
-level
-.PD 0
-.P
-.PD
-.IP \[bu] 2
-\f[B]error\f[]: messages that inform of errors that might render the
-file impossible to play or stream correctly
-.PD 0
-.P
-.PD
-.IP \[bu] 2
-\f[B]fatal\f[]: messages that inform of errors that make further file
-reading impossible therefore ending parsing completely
-.PP
-The \f[C]--level\f[] option allows to limit the display of messages to a
-minimum level among those, for example if the user is only interested in
-error messages and above.
-.PP
-Each message or message template presented to the user is identified by
-a specific code of the following format:
-.PP
-\f[C][level][topic][id]\f[]
-.IP \[bu] 2
-\f[B]level\f[] is an upper-case letter that can be either I, W, E, F
-according to the aforementioned message levels
-.PD 0
-.P
-.PD
-.IP \[bu] 2
-\f[B]topic\f[] is a two-digit integer representing the general topic of
-the message
-.PD 0
-.P
-.PD
-.IP \[bu] 2
-\f[B]id\f[] is a unique three-digit identifier for the message, or
-message template if parameterized
-.PP
-Messages can be related to the following topics :
-.IP \[bu] 2
-\f[B]10\f[] general flv file format
-.PD 0
-.P
-.PD
-.IP \[bu] 2
-\f[B]11\f[] file header
-.PD 0
-.P
-.PD
-.IP \[bu] 2
-\f[B]12\f[] previous tag size
-.PD 0
-.P
-.PD
-.IP \[bu] 2
-\f[B]20\f[] tag format
-.PD 0
-.P
-.PD
-.IP \[bu] 2
-\f[B]30\f[] tag types
-.PD 0
-.P
-.PD
-.IP \[bu] 2
-\f[B]40\f[] timestamps
-.PD 0
-.P
-.PD
-.IP \[bu] 2
-\f[B]50\f[] audio data
-.PD 0
-.P
-.PD
-.IP \[bu] 2
-\f[B]51\f[] audio codecs
-.PD 0
-.P
-.PD
-.IP \[bu] 2
-\f[B]60\f[] video data
-.PD 0
-.P
-.PD
-.IP \[bu] 2
-\f[B]61\f[] video codecs
-.PD 0
-.P
-.PD
-.IP \[bu] 2
-\f[B]70\f[] metadata
-.PD 0
-.P
-.PD
-.IP \[bu] 2
-\f[B]80\f[] AMF data
-.PD 0
-.P
-.PD
-.IP \[bu] 2
-\f[B]81\f[] keyframes
-.PD 0
-.P
-.PD
-.IP \[bu] 2
-\f[B]82\f[] cue points
-.PP
-For example, represents a Warning in topic 51 with the id 050, which
-represents a warning message related to audio codecs, in that case to
-signal that an audio tag has an unknown codec.
-.SS -U, --update
-.PP
-Update the given input file by inserting a computed \f[I]onMetaData\f[]
-tag.
-If \f[I]OUTPUT_FILE\f[] is specified, it will be created or overwritten
-instead and the input file will not be modified.
-If the original file is to be updated, a temporary file will be created
-in the default temp directory of the platform, and it will be copied
-over the original file at the end of the operation.
-This is due to the fact that the output file is written while the
-original file is being read due to the two-pass method.
-.PP
-The computed metadata contains among other data full keyframe
-informations, in order to allow HTTP pseudo-streaming and random-access
-seeking in the file.
-.PP
-By default, an \f[I]onLastSecond\f[] tag will be inserted, unless the
-\f[C]--no-last-second\f[] option is specified.
-.PP
-Normally overwritten by the update process, the existing metadata found
-in the input file can be preserved by the \f[C]--preserve\f[] option.
-.PP
-It is also possible to insert custom string values with the
-\f[C]--add\f[] option, which can be specified multiple times.
-.PP
-By default, the update operation is performed without output, unless the
-\f[C]--verbose\f[] option is specified, or the \f[C]--print-metadata\f[]
-is used to print the newly written metadata to the standard output.
-.SH OPTIONS
-.SS DUMP
-.TP
-.B -d \f[I]FORMAT\f[], --dump-format=\f[I]FORMAT\f[]
-specify dump format where \f[I]FORMAT\f[] is `xml' (default), `json',
-`raw', or `yaml'.
-Also applicable for the \f[B]--full-dump\f[] command.
-.RS
-.RE
-.TP
-.B -j, --json
-equivalent to \f[B]--dump-format=json\f[]
-.RS
-.RE
-.TP
-.B -r, --raw
-equivalent to \f[B]--dump-format=raw\f[]
-.RS
-.RE
-.TP
-.B -x, --xml
-equivalent to \f[B]--dump-format=xml\f[]
-.RS
-.RE
-.TP
-.B -y, --yaml
-equivalent to \f[B]--dump-format=yaml\f[]
-.RS
-.RE
-.TP
-.B -e \f[I]EVENT\f[], --event=\f[I]EVENT\f[]
-specify the event to dump instead of \f[I]onMetaData\f[], for example
-\f[I]onLastSecond\f[].
-.RS
-.RE
-.SS CHECK
-.TP
-.B -l \f[I]LEVEL\f[], --level=\f[I]LEVEL\f[]
-print only messages where level is at least \f[I]LEVEL\f[].
-The levels are, by ascending importance, `info', `warning' (default),
-`error', or `fatal'.
-.RS
-.RE
-.TP
-.B -q, --quiet
-do not print messages, only return the status code
-.RS
-.RE
-.TP
-.B -x, --xml
-generate an XML report instead of the default `compiler-friendly' text
-.RS
-.RE
-.SS UPDATE
-.TP
-.B -m, --print-metadata
-print metadata to stdout after update using the format specified by the
-\f[B]--format\f[] option
-.RS
-.RE
-.TP
-.B -a \f[I]NAME=VALUE\f[], --add=\f[I]NAME=VALUE\f[]
-add a metadata string value to the output file
-.RS
-.RE
-.TP
-.B -s, --no-lastsecond
-do not create the \f[I]onLastSecond\f[] tag
-.RS
-.RE
-.TP
-.B -p, --preserve
-preserve input file existing \f[I]onMetadata\f[] tags
-.RS
-.RE
-.TP
-.B -f, --fix
-fix invalid tags from the input file
-.RS
-.RE
-.TP
-.B -i, --ignore
-ignore invalid tags from the input file (the default behaviour is to
-stop the update process with an error)
-.RS
-.RE
-.TP
-.B -t, --reset-timestamps
-reset timestamps so \f[I]OUTPUT_FILE\f[] starts at zero.
-This has been added because some FLV files are produced by cutting
-bigger files, and the software doing the cutting does not resets the
-timestamps as required by the standard, which can cause playback issues.
-.RS
-.RE
-.TP
-.B -k, \[em]all-keyframes
-index all keyframe tags, including duplicate timestamps
-.RS
-.RE
-.SS GENERAL
-.TP
-.B -v, --verbose
-display informative messages
-.RS
-.RE
-.TP
-.B -V, --version
-print version information and exit
-.RS
-.RE
-.TP
-.B -h, --help
-display help on the program usage and exit
-.RS
-.RE
-.SH FORMATS
-.SH EXAMPLES
-.SH EXIT STATUS
-.SH BUGS
-.PP
-\f[B]flvmeta\f[] does not support encrypted FLV files yet.
-.SH AUTHOR
-.SH COPYRIGHT
-.SH CONTACT
=======================================
--- /man/1/
flvmeta.1.md Fri Apr 20 06:21:34 2012
+++ /dev/null
@@ -1,262 +0,0 @@
-% flvmeta(1) flvmeta user manual
-%
-% April 2012
-
-# NAME
-
-flvmeta - manipulate or extract metadata in Adobe Flash Video files
-
-# SYNOPSIS
-
-**flvmeta** *INPUT_FILE*
-**flvmeta** *INPUT_FILE* *OUTPUT_FILE*
-**flvmeta** `-D`|`--dump` [*options*] *INPUT_FILE*
-**flvmeta** `-F`|`--full-dump` [*options*] *INPUT_FILE*
-**flvmeta** `-C`|`--check` [*options*] *INPUT_FILE*
-**flvmeta** `-U`|`--update` [*options*] *INPUT_FILE* [*OUTPUT_FILE*]
-
-# DESCRIPTION
-
-**flvmeta** is a command-line utility aimed at manipulating Adobe(tm) Flash
-Video files (FLV), through several commands, only one of which can be used
for
-each invocation of the program.
-
-It possesses the ability to compute and inject a variety of values in the
-_onMetaData_ event tag, including keyframe indices used by most video
players to
-allow random-access seeking, notably for HTTP pseudo-streamed files via a
-server-side module, by having the client send the file offset looked up
for the
-nearest desired keyframe.
-Tools such as **flvmeta** must be used in the case the initial encoding
process
-is unable to inject those metadata.
-
-It can also optionnally inject the _onLastSecond_ event, used to signal
the end
-of playback, for example to revert the player software to a 'stopped'
state.
-
-**flvmeta** also has the ability to dump metadata and full file
information to
-standard output, in a variety of textual output formats, including XML,
YAML,
-and JSON.
-
-Finally, the program can analyze FLV files to detect potential problems and
-errors, and generate a textual report in a raw format, or in XML.
-It has the ability to detect more than a hundred problems, going from
harmless
-to potentially unplayable, using a few real world encountered issues.
-This analysis can also determine and display the minimal Flash Player
version
-which can be used to correctly play a given file, as well as codec
information.
-
-**flvmeta** can operate on arbitrarily large files, and can handle FLV
files
-using extended (32-bit) timestamps.
-It can guess video frame dimensions for all known video codecs supported
by the
-official FLV specification.
-
-Its memory usage remains minimal, as it uses a two-pass reading algorithm
which
-permits the computation of all necessary tags without loading anything
more than
-the file's tags headers in memory.
-Only the dumping of JSON data can consume more memory, since the bundled
`mjson`
-library constructs a data tree in memory before outputting the formatted
data.
-
-# COMMANDS
-
-Only one command can be specified for an invocation of **flvmeta**. The
chosen
-command determines the mode of execution of the program.
-
-By default, if no command is specified, **flvmeta** will implicitely
choose the
-command to use according to the presence of *INPUT_FILE* and *OUTPUT_FILE*.
-
-If only *INPUT_FILE* is present, the `--dump` command will be executed.
-
-If both *INPUT_FILE* and *OUTPUT_FILE* are present, the `--update` command
-will be executed.
-
-Here is a list of the supported commands:
-
-## -D, \--dump
-
-Dump a textual representation of the first _onMetaData_ tag found in
-*INPUT_FILE* to standard output. The default format is XML, unless
-specified otherwise.
-It is also possible to specify another event via the `--event` option,
-such as _onLastSecond_.
-
-## -F, \--full-dump
-
-Dump a textual representation of the whole contents of *INPUT_FILE* to
-standard output. The default format is XML, unless specified otherwise.
-
-## -C, \--check
-
-Print a report to standard output listing warnings and errors detected in
-*INPUT_FILE*, as well as potential incompatibilities, and informations
about
-the codecs used in the file. The exit code will be set to a non-zero value
-if there is at least one error in the file.
-
-The output format can either be plain text or XML using the `--xml` option.
-It can also be disabled altogether using the `--quiet` option if you are
-only interested in the exit status.
-
-Messages are divided into four specific levels of increasing importance:
-
-* **info**: informational messages that do not pertain to the file validity
-* **warning**: messages that inform of oddities to the flv format but that
- might not hamper file reading or playability, this is the default level
-* **error**: messages that inform of errors that might render the file
- impossible to play or stream correctly
-* **fatal**: messages that inform of errors that make further file reading
- impossible therefore ending parsing completely
-
-The `--level` option allows to limit the display of messages to a minimum
-level among those, for example if the user is only interested in error
-messages and above.
-
-Each message or message template presented to the user is identified by a
-specific code of the following format:
-
-`[level][topic][id]`
-
-* **level** is an upper-case letter that can be either I, W, E, F
according to
- the aforementioned message levels
-* **topic** is a two-digit integer representing the general topic of the
- message
-* **id** is a unique three-digit identifier for the message, or message
- template if parameterized
-
-Messages can be related to the following topics :
-
-* **10** general flv file format
-* **11** file header
-* **12** previous tag size
-* **20** tag format
-* **30** tag types
-* **40** timestamps
-* **50** audio data
-* **51** audio codecs
-* **60** video data
-* **61** video codecs
-* **70** metadata
-* **80** AMF data
-* **81** keyframes
-* **82** cue points
-
-For example, <W51050> represents a Warning in topic 51 with the id 050,
-which represents a warning message related to audio codecs, in that case to
-signal that an audio tag has an unknown codec.
-
-## -U, \--update
-
-Update the given input file by inserting a computed _onMetaData_ tag. If
-*OUTPUT_FILE* is specified, it will be created or overwritten instead and
-the input file will not be modified. If the original file is to be updated,
-a temporary file will be created in the default temp directory of the
-platform, and it will be copied over the original file at the end of
-the operation. This is due to the fact that the output file is written
-while the original file is being read due to the two-pass method.
-
-The computed metadata contains among other data full keyframe informations,
-in order to allow HTTP pseudo-streaming and random-access seeking in the
-file.
-
-By default, an _onLastSecond_ tag will be inserted, unless the
-`--no-last-second` option is specified.
-
-Normally overwritten by the update process, the existing metadata found in
-the input file can be preserved by the `--preserve` option.
-
-It is also possible to insert custom string values with the `--add` option,
-which can be specified multiple times.
-
-By default, the update operation is performed without output, unless the
-`--verbose` option is specified, or the `--print-metadata` is used to
-print the newly written metadata to the standard output.
-
-# OPTIONS
-
-## DUMP
-
--d *FORMAT*, \--dump-format=*FORMAT*
-: specify dump format where *FORMAT* is 'xml' (default), 'json', 'raw',
or
- 'yaml'. Also applicable for the **\--full-dump** command.
-
--j, \--json
-: equivalent to **\--dump-format=json**
-
--r, \--raw
-: equivalent to **\--dump-format=raw**
-
--x, \--xml
-: equivalent to **\--dump-format=xml**
-
--y, \--yaml
-: equivalent to **\--dump-format=yaml**
-
--e *EVENT*, \--event=*EVENT*
-: specify the event to dump instead of _onMetaData_, for example
- _onLastSecond_.
-
-## CHECK
-
--l *LEVEL*, \--level=*LEVEL*
-: print only messages where level is at least *LEVEL*. The levels are, by
- ascending importance, 'info', 'warning' (default), 'error', or 'fatal'.
-
--q, \--quiet
-: do not print messages, only return the status code
-
--x, \--xml
-: generate an XML report instead of the default 'compiler-friendly' text
-
-## UPDATE
-
--m, \--print-metadata
-: print metadata to stdout after update using the format specified by
- the **\--format** option
-
--a *NAME=VALUE*, \--add=*NAME=VALUE*
-: add a metadata string value to the output file
-
--s, \--no-lastsecond
-: do not create the *onLastSecond* tag
-
--p, \--preserve
-: preserve input file existing *onMetadata* tags
-
--f, \--fix
-: fix invalid tags from the input file
-
--i, \--ignore
-: ignore invalid tags from the input file (the default behaviour is to
stop
- the update process with an error)
-
--t, \--reset-timestamps
-: reset timestamps so *OUTPUT_FILE* starts at zero. This has been added
- because some FLV files are produced by cutting bigger files, and the
- software doing the cutting does not resets the timestamps as required
- by the standard, which can cause playback issues.
-
--k, --all-keyframes
-: index all keyframe tags, including duplicate timestamps
-
-## GENERAL
-
--v, \--verbose
-: display informative messages
-
--V, \--version
-: print version information and exit
-
--h, \--help
-: display help on the program usage and exit
-
-# FORMATS
-
-# EXAMPLES
-
-# EXIT STATUS
-
-# BUGS
-
-**flvmeta** does not support encrypted FLV files yet.
-
-# AUTHOR
-
-# COPYRIGHT
-
-# CONTACT
==============================================================================
Revision: 6cd37f4d6d7c
Author: Marc Noirot <
marc....@gmail.com>
Date: Sun Apr 22 12:43:26 2012
Log: Updated reference to flvmeta.1.
http://code.google.com/p/flvmeta/source/detail?r=6cd37f4d6d7c
Modified:
/man/Makefile.am
=======================================
--- /man/Makefile.am Wed Apr 11 07:21:38 2012
+++ /man/Makefile.am Sun Apr 22 12:43:26 2012
@@ -1,1 +1,1 @@
-man1_MANS = 1/flvmeta.1
+man1_MANS = flvmeta.1
==============================================================================
Revision: d92860cd5945
Author: Marc Noirot <
marc....@gmail.com>
Date: Sun Apr 22 13:09:32 2012
Log: Allowed distribution of the man page.
http://code.google.com/p/flvmeta/source/detail?r=d92860cd5945
Modified:
/man/Makefile.am
=======================================
--- /man/Makefile.am Sun Apr 22 12:43:26 2012
+++ /man/Makefile.am Sun Apr 22 13:09:32 2012
@@ -1,1 +1,1 @@
-man1_MANS = flvmeta.1
+dist_man_MANS = flvmeta.1
==============================================================================
Revision: 01b5fd68adce
Author: Marc Noirot <
marc....@gmail.com>
Date: Mon Apr 23 06:57:23 2012
Log: Added automated building of flvmeta's man page using pandoc.
http://code.google.com/p/flvmeta/source/detail?r=01b5fd68adce
Added:
/man/CMakeLists.txt
Deleted:
/man/flvmeta.1
Modified:
/CMakeLists.txt
/Makefile.am
/
configure.ac
/man/Makefile.am
/man/
flvmeta.1.md
=======================================
--- /dev/null
+++ /man/CMakeLists.txt Mon Apr 23 06:57:23 2012
@@ -0,0 +1,39 @@
+# test for pandoc availability
+if(NOT DEFINED PANDOC)
+ message(STATUS "Looking for pandoc")
+ find_program(PANDOC pandoc)
+ if(PANDOC)
+ message(STATUS "Looking for pandoc - found")
+ else(PANDOC)
+ message(STATUS "Looking for pandoc - not found")
+ endif(PANDOC)
+ mark_as_advanced(PANDOC)
+endif(NOT DEFINED PANDOC)
+
+if(PANDOC)
+ set(MAN_SOURCE ${CMAKE_CURRENT_SOURCE_DIR}/
flvmeta.1.md)
+ set(MAN_OUTPUT_DIR ${CMAKE_BINARY_DIR}/man/man1)
+ set(MAN_FILE ${MAN_OUTPUT_DIR}/flvmeta.1)
+
+ # build man file from markdown source
+ add_custom_command(
+ OUTPUT ${MAN_FILE}
+ COMMAND ${CMAKE_COMMAND} -E make_directory ${MAN_OUTPUT_DIR}
+ COMMAND ${PANDOC} -s ${MAN_SOURCE} -o ${MAN_FILE}
+ MAIN_DEPENDENCY ${MAN_SOURCE}
+ )
+
+ # add custom target, built by default
+ add_custom_target(man ALL
+ DEPENDS ${MAN_FILE}
+ SOURCES ${MAN_SOURCE}
+ )
+
+ # install man file on systems having a manual directory
+ include(GNUInstallDirs)
+ if(CMAKE_INSTALL_MANDIR)
+ install(DIRECTORY ${MAN_OUTPUT_DIR}
+ DESTINATION ${CMAKE_INSTALL_MANDIR}
+ )
+ endif(CMAKE_INSTALL_MANDIR)
+endif(PANDOC)
=======================================
--- /man/flvmeta.1 Sun Apr 22 12:42:13 2012
+++ /dev/null
@@ -1,392 +0,0 @@
-.TH flvmeta 1 "April 2012" "flvmeta user manual"
-.SH NAME
-.PP
-flvmeta - manipulate or extract metadata in Adobe Flash Video files
-.SH SYNOPSIS
-.PP
-\f[B]flvmeta\f[] \f[I]INPUT_FILE\f[]
-.PD 0
-.P
-.PD
-\f[B]flvmeta\f[] \f[I]INPUT_FILE\f[] \f[I]OUTPUT_FILE\f[]
-.PD 0
-.P
-.PD
-\f[B]flvmeta\f[] \f[C]-D\f[]|\f[C]--dump\f[] [\f[I]options\f[]]
-\f[I]INPUT_FILE\f[]
-.PD 0
-.P
-.PD
-\f[B]flvmeta\f[] \f[C]-F\f[]|\f[C]--full-dump\f[] [\f[I]options\f[]]
-\f[I]INPUT_FILE\f[]
-.PD 0
-.P
-.PD
-\f[B]flvmeta\f[] \f[C]-C\f[]|\f[C]--check\f[] [\f[I]options\f[]]
-\f[I]INPUT_FILE\f[]
-.PD 0
-.P
-.PD
-\f[B]flvmeta\f[] \f[C]-U\f[]|\f[C]--update\f[] [\f[I]options\f[]]
-\f[I]INPUT_FILE\f[] [\f[I]OUTPUT_FILE\f[]]
-.SH DESCRIPTION
-.PP
-\f[B]flvmeta\f[] is a command-line utility aimed at manipulating
-Adobe(tm) Flash Video files (FLV), through several commands, only one of
-which can be used for each invocation of the program.
-.PP
-It possesses the ability to compute and inject a variety of values in
-the \f[I]onMetaData\f[] event tag, including keyframe indices used by
-most video players to allow random-access seeking, notably for HTTP
-pseudo-streamed files via a server-side module, by having the client
-send the file offset looked up for the nearest desired keyframe.
-.PD 0
-.P
-.PD
-Tools such as \f[B]flvmeta\f[] must be used in the case the initial
-encoding process is unable to inject those metadata.
-.PP
-It can also optionnally inject the \f[I]onLastSecond\f[] event, used to
-signal the end of playback, for example to revert the player software to
-a `stopped' state.
-.PP
-\f[B]flvmeta\f[] also has the ability to dump metadata and full file
-information to standard output, in a variety of textual output formats,
-including XML, YAML, and JSON.
-.PP
-Finally, the program can analyze FLV files to detect potential problems
-and errors, and generate a textual report in a raw format, or in XML.
-It has the ability to detect more than a hundred problems, going from
-harmless to potentially unplayable, using a few real world encountered
-issues.
-This analysis can also determine and display the minimal Flash Player
-version which can be used to correctly play a given file, as well as
-codec information.
-.PP
-\f[B]flvmeta\f[] can operate on arbitrarily large files, and can handle
-FLV files using extended (32-bit) timestamps.
-It can guess video frame dimensions for all known video codecs supported
-by the official FLV specification.
-.PP
-Its memory usage remains minimal, as it uses a two-pass reading
-algorithm which permits the computation of all necessary tags without
-loading anything more than the file's tags headers in memory.
-Only the dumping of JSON data can consume more memory, since the bundled
-\f[C]mjson\f[] library constructs a data tree in memory before
-outputting the formatted data.
-.SH COMMANDS
-.PP
-Only one command can be specified for an invocation of \f[B]flvmeta\f[].
-The chosen command determines the mode of execution of the program.
-.PP
-By default, if no command is specified, \f[B]flvmeta\f[] will
-implicitely choose the command to use according to the presence of
-\f[I]INPUT_FILE\f[] and \f[I]OUTPUT_FILE\f[].
-.PP
-If only \f[I]INPUT_FILE\f[] is present, the \f[C]--dump\f[] command will
-be executed.
-.PP
-If both \f[I]INPUT_FILE\f[] and \f[I]OUTPUT_FILE\f[] are present, the
-\f[C]--update\f[] command will be executed.
-.PP
-Here is a list of the supported commands:
-.SS -D, --dump
-.PP
-Dump a textual representation of the first \f[I]onMetaData\f[] tag found
-in \f[I]INPUT_FILE\f[] to standard output.
-The default format is XML, unless specified otherwise.
-.PD 0
-.P
-.PD
-It is also possible to specify another event via the \f[C]--event\f[]
-option, such as \f[I]onLastSecond\f[].
-.SS -F, --full-dump
-.PP
-Dump a textual representation of the whole contents of
-\f[I]INPUT_FILE\f[] to standard output.
-The default format is XML, unless specified otherwise.
-.SS -C, --check
-.PP
-Print a report to standard output listing warnings and errors detected
-in \f[I]INPUT_FILE\f[], as well as potential incompatibilities, and
-informations about the codecs used in the file.
-The exit code will be set to a non-zero value if there is at least one
-error in the file.
-.PP
-The output format can either be plain text or XML using the
-\f[C]--xml\f[] option.
-It can also be disabled altogether using the \f[C]--quiet\f[] option if
-you are only interested in the exit status.
-.PP
-Messages are divided into four specific levels of increasing importance:
-.IP \[bu] 2
-\f[B]info\f[]: informational messages that do not pertain to the file
-validity
-.PD 0
-.P
-.PD
-.IP \[bu] 2
-\f[B]warning\f[]: messages that inform of oddities to the flv format but
-that might not hamper file reading or playability, this is the default
-level
-.PD 0
-.P
-.PD
-.IP \[bu] 2
-\f[B]error\f[]: messages that inform of errors that might render the
-file impossible to play or stream correctly
-.PD 0
-.P
-.PD
-.IP \[bu] 2
-\f[B]fatal\f[]: messages that inform of errors that make further file
-reading impossible therefore ending parsing completely
-.PP
-The \f[C]--level\f[] option allows to limit the display of messages to a
-minimum level among those, for example if the user is only interested in
-error messages and above.
-.PP
-Each message or message template presented to the user is identified by
-a specific code of the following format:
-.PP
-\f[C][level][topic][id]\f[]
-.IP \[bu] 2
-\f[B]level\f[] is an upper-case letter that can be either I, W, E, F
-according to the aforementioned message levels
-.PD 0
-.P
-.PD
-.IP \[bu] 2
-\f[B]topic\f[] is a two-digit integer representing the general topic of
-the message
-.PD 0
-.P
-.PD
-.IP \[bu] 2
-\f[B]id\f[] is a unique three-digit identifier for the message, or
-message template if parameterized
-.PP
-Messages can be related to the following topics :
-.IP \[bu] 2
-\f[B]10\f[] general flv file format
-.PD 0
-.P
-.PD
-.IP \[bu] 2
-\f[B]11\f[] file header
-.PD 0
-.P
-.PD
-.IP \[bu] 2
-\f[B]12\f[] previous tag size
-.PD 0
-.P
-.PD
-.IP \[bu] 2
-\f[B]20\f[] tag format
-.PD 0
-.P
-.PD
-.IP \[bu] 2
-\f[B]30\f[] tag types
-.PD 0
-.P
-.PD
-.IP \[bu] 2
-\f[B]40\f[] timestamps
-.PD 0
-.P
-.PD
-.IP \[bu] 2
-\f[B]50\f[] audio data
-.PD 0
-.P
-.PD
-.IP \[bu] 2
-\f[B]51\f[] audio codecs
-.PD 0
-.P
-.PD
-.IP \[bu] 2
-\f[B]60\f[] video data
-.PD 0
-.P
-.PD
-.IP \[bu] 2
-\f[B]61\f[] video codecs
-.PD 0
-.P
-.PD
-.IP \[bu] 2
-\f[B]70\f[] metadata
-.PD 0
-.P
-.PD
-.IP \[bu] 2
-\f[B]80\f[] AMF data
-.PD 0
-.P
-.PD
-.IP \[bu] 2
-\f[B]81\f[] keyframes
-.PD 0
-.P
-.PD
-.IP \[bu] 2
-\f[B]82\f[] cue points
-.PP
-For example, represents a Warning in topic 51 with the id 050, which
-represents a warning message related to audio codecs, in that case to
-signal that an audio tag has an unknown codec.
-.SS -U, --update
-.PP
-Update the given input file by inserting a computed \f[I]onMetaData\f[]
-tag.
-If \f[I]OUTPUT_FILE\f[] is specified, it will be created or overwritten
-instead and the input file will not be modified.
-If the original file is to be updated, a temporary file will be created
-in the default temp directory of the platform, and it will be copied
-over the original file at the end of the operation.
-This is due to the fact that the output file is written while the
-original file is being read due to the two-pass method.
-.PP
-The computed metadata contains among other data full keyframe
-informations, in order to allow HTTP pseudo-streaming and random-access
-seeking in the file.
-.PP
-By default, an \f[I]onLastSecond\f[] tag will be inserted, unless the
-\f[C]--no-last-second\f[] option is specified.
-.PP
-Normally overwritten by the update process, the existing metadata found
-in the input file can be preserved by the \f[C]--preserve\f[] option.
-.PP
-It is also possible to insert custom string values with the
-\f[C]--add\f[] option, which can be specified multiple times.
-.PP
-By default, the update operation is performed without output, unless the
-\f[C]--verbose\f[] option is specified, or the \f[C]--print-metadata\f[]
-is used to print the newly written metadata to the standard output.
-.SH OPTIONS
-.SS DUMP
-.TP
-.B -d \f[I]FORMAT\f[], --dump-format=\f[I]FORMAT\f[]
-specify dump format where \f[I]FORMAT\f[] is `xml' (default), `json',
-`raw', or `yaml'.
-Also applicable for the \f[B]--full-dump\f[] command.
-.RS
-.RE
-.TP
-.B -j, --json
-equivalent to \f[B]--dump-format=json\f[]
-.RS
-.RE
-.TP
-.B -r, --raw
-equivalent to \f[B]--dump-format=raw\f[]
-.RS
-.RE
-.TP
-.B -x, --xml
-equivalent to \f[B]--dump-format=xml\f[]
-.RS
-.RE
-.TP
-.B -y, --yaml
-equivalent to \f[B]--dump-format=yaml\f[]
-.RS
-.RE
-.TP
-.B -e \f[I]EVENT\f[], --event=\f[I]EVENT\f[]
-specify the event to dump instead of \f[I]onMetaData\f[], for example
-\f[I]onLastSecond\f[].
-.RS
-.RE
-.SS CHECK
-.TP
-.B -l \f[I]LEVEL\f[], --level=\f[I]LEVEL\f[]
-print only messages where level is at least \f[I]LEVEL\f[].
-The levels are, by ascending importance, `info', `warning' (default),
-`error', or `fatal'.
-.RS
-.RE
-.TP
-.B -q, --quiet
-do not print messages, only return the status code
-.RS
-.RE
-.TP
-.B -x, --xml
-generate an XML report instead of the default `compiler-friendly' text
-.RS
-.RE
-.SS UPDATE
-.TP
-.B -m, --print-metadata
-print metadata to stdout after update using the format specified by the
-\f[B]--format\f[] option
-.RS
-.RE
-.TP
-.B -a \f[I]NAME=VALUE\f[], --add=\f[I]NAME=VALUE\f[]
-add a metadata string value to the output file
-.RS
-.RE
-.TP
-.B -s, --no-lastsecond
-do not create the \f[I]onLastSecond\f[] tag
-.RS
-.RE
-.TP
-.B -p, --preserve
-preserve input file existing \f[I]onMetadata\f[] tags
-.RS
-.RE
-.TP
-.B -f, --fix
-fix invalid tags from the input file
-.RS
-.RE
-.TP
-.B -i, --ignore
-ignore invalid tags from the input file (the default behaviour is to
-stop the update process with an error)
-.RS
-.RE
-.TP
-.B -t, --reset-timestamps
-reset timestamps so \f[I]OUTPUT_FILE\f[] starts at zero.
-This has been added because some FLV files are produced by cutting
-bigger files, and the software doing the cutting does not resets the
-timestamps as required by the standard, which can cause playback issues.
-.RS
-.RE
-.TP
-.B -k, \[em]all-keyframes
-index all keyframe tags, including duplicate timestamps
-.RS
-.RE
-.SS GENERAL
-.TP
-.B -v, --verbose
-display informative messages
-.RS
-.RE
-.TP
-.B -V, --version
-print version information and exit
-.RS
-.RE
-.TP
-.B -h, --help
-display help on the program usage and exit
-.RS
-.RE
-.SH FORMATS
-.SH EXAMPLES
-.SH EXIT STATUS
-.SH BUGS
-.PP
-\f[B]flvmeta\f[] does not support encrypted FLV files yet.
-.SH AUTHOR
-.SH COPYRIGHT
-.SH CONTACT
=======================================
--- /CMakeLists.txt Tue Apr 3 01:25:02 2012
+++ /CMakeLists.txt Mon Apr 23 06:57:23 2012
@@ -119,6 +119,7 @@
include(CPack)
add_subdirectory(src)
+add_subdirectory(man)
# tests
#enable_testing()
=======================================
--- /Makefile.am Wed Apr 11 07:21:38 2012
+++ /Makefile.am Mon Apr 23 06:57:23 2012
@@ -1,3 +1,7 @@
-SUBDIRS = src tests schemas man
+if BUILD_MAN
+ MAN_SUBDIR = man
+endif
+
+SUBDIRS = src tests schemas $(MAN_SUBDIR)
EXTRA_DIST = autogen.sh \
CMakeLists.txt
=======================================
--- /
configure.ac Wed Apr 11 07:21:38 2012
+++ /
configure.ac Mon Apr 23 06:57:23 2012
@@ -14,6 +14,12 @@
AM_PROG_CC_C_O
AC_PROG_RANLIB
+dnl Checks for pandoc
+AC_ARG_VAR(PANDOC, [pandoc path])
+AC_PATH_PROG(PANDOC, [pandoc], [])
+
+AM_CONDITIONAL([BUILD_MAN], [test -x "$PANDOC"])
+
dnl Checks for check.
ifdef([PKG_CHECK_MODULES],
[PKG_CHECK_MODULES([CHECK], [check >= 0.9.4],
=======================================
--- /man/Makefile.am Sun Apr 22 13:09:32 2012
+++ /man/Makefile.am Mon Apr 23 06:57:23 2012
@@ -1,1 +1,8 @@
-dist_man_MANS = flvmeta.1
+man_MANS = $(builddir)/flvmeta.1
+
+CLEANFILES = $(builddir)/flvmeta.1
+
+flvmeta.1: $(srcdir)/
flvmeta.1.md
+ pandoc -s $(srcdir)/
flvmeta.1.md -o $(builddir)/flvmeta.1
+
+EXTRA_DIST = $(srcdir)/
flvmeta.1.md
=======================================
--- /man/
flvmeta.1.md Sun Apr 22 12:42:13 2012
+++ /man/
flvmeta.1.md Mon Apr 23 06:57:23 2012
@@ -210,7 +210,8 @@
the **\--format** option
-a *NAME=VALUE*, \--add=*NAME=VALUE*
-: add a metadata string value to the output file
+: add a metadata string value to the output file. The name/value pair
will be
+ appended at the end of the _onMetaData_ tag.
-s, \--no-lastsecond
: do not create the *onLastSecond* tag