yamdi

Yet Another MetaData Injector for FLV

Download yamdi
Current version: 1.4
2008-05-24: 1.4
* [Fix] The onLastSecond event did not have the correct timestamp
* [Add] Source code compatible with Win32 (MinGW32) [sfyang]

2008-04-27: 1.3
* [Fix] SCRIPTDATAVARIABLEEND tag of the onMetaData object was missing
* [Add] XML output of the meta data with option -x [teshock]
* [Add] Makefile and manpage [xtat]

2007-05-06: 1.2
* [Fix] Width and height calculation of ScreenVideo stream was wrong.
* [Add] onLastSecond event with option -l

2007-03-21: 1.1
* [Fix] Width and height calculation of H.263 video streams with custom 16bit width and height was wrong.
yamdi stands for Yet Another MetaData Injector and is a metadata injector for FLV files. It adds the onMetaData event to your FLV files. yamdi should run under *BSD, Linux and Win32 (tested with FreeBSD, MacOSX, Ubuntu and Windows XP) and is published under the BSD license.

why?

For a project I had to add metadata to quite large FLV files (over 1GB). The other known free tools (flvmdi and flvtool2) are not suitable for that job because they read the whole file into memory. Because I'm not very familiar with ruby (in order to modify flvtool2) and flvmdi is not open source I took the FLV specs and implemented a metadata injector in C. yamdi uses less memory and is faster.

how?

Download the source code from SourceForge.net and extract it with tar: tar xzf yamdi-1.4.tar.gz Change into the yamdi directory and compile the source code with: cd yamdi-1.4
gcc yamdi.c -o yamdi -O2 -Wall
If you are going to handle very big files (bigger than 2GB) the following compile options have been suggested in the bug tracker: gcc yamdi.c -o yamdi -O2 -Wall -D_FILE_OFFSET_BITS=64 yamdi accepts six paramters:
-i The source FLV file.
-o The resulting FLV file with the metatags. If the output file is '-' the FLV file will be written to stdout.
-x An XML file with the resulting metadata information. If the output file is ommited, only metadata will be generated. This parameter is optional.
-c A string that will be written into the creator tag. This parameter is optional.
-l Adds the onLastSecond event.
-h Displays a description of the available parameters
Examples: yamdi -i sample.flv -o sample_with_metadata.flv
yamdi -i sample.flv -o - > sample_with_metadata.flv
yamdi -i sample.flv -o sample_with_metadata.flv -c "John Doe"

what do i get?

yamdi injects the following metadata into your FLV files: More metadata and features will be added in future versions.

yamdi injects the following event into your FLV files:

bugs?

I do not guarantee that yamdi is free of bugs. If you find a bug you can post it here.