FLV MetaData Injector – released!

We have just released version 1.00 of our free tool that can add MetaData to a FLV file and also creates an XML file with the same data. We now have a COM Object version too…

Product page is located at http://www.buraks.com/flvmdi

Comments are welcome. Also please let us know how you make use of this tool. Thank you!

As a persoal note, I really don’t like any video format on the web today other than Flash and FLV. I hope this utility will make offering linked FLV files as the video format easier…

This entry was posted in MG.

9 Responses to FLV MetaData Injector – released!

  1. jeanphilippe says:

    hi,
    it seems to be great (duration, etc…) but i can’t test on MAC OSX…
    a solution?

  2. Unfortunately we can only program for Windows…

  3. Alec says:

    It’s a great tool.
    Is it just me, or does anyone else think it stinks that the format of the metadata structure in flv files is proprietary. I mean, Macromedia says the format of flvs is public so why is this one part a secret. I can’t write code to create flv files that rewind correctly. That is, without the metadata none of the players let you incrementaly rewind. Bah!

  4. Alec says:

    We are writing our own flv files accourding to the MM published specification.
    This spec fails to document the new meta data tag introduced with version
    1.1. I realize that there are “injector” apps out there but our need was
    to add this data at flv creation time. Specifically, most of the new flv
    players available on the web require the duration meta data in order for the
    time slider (scrubber) to work correctly. I finally was able to figure this
    out. The following steps will encode the minimum metadata required to store
    duration.
    NOTE: a “$” specifies a hex value.
    1. Write the flv header as per the MM spec.
    2. write $12 (one byte) this is the metadata tag id.
    3. write the 3 byte tag length as per the MM file spec. In this case the
    tag length is 37 bytes so the bytes written are $00 $00 $25.
    4. write the 3 byte time stamp as per the MM spec. I can’t think of
    any case where this would be anything other than $00 $00 $00.
    5. write the 4 bytes of $00 as per the MM spec.
    6. write a single byte of $02 (not sure what this means but it’s in
    evey flv with meta data that I checked and things go badly if its
    left out.
    7. write a 2 bytes of $00 $0A. This is the length of the string label to
    follow which is “onMetaData”.
    8. write the 10 bytes that spell “onMetaData”.
    $6F $6E $4D $65 $74 $61 $44 $61 $74 $61
    9. write 5 bytes $08 $00 $00 $00 $0E. Again, I’m not sure what these
    are for, but they are in all metadata samples I looked at.
    10. like in 7 above write a 2 bytes of to indicate the length of the
    string label to follow. The string label will be “duration” so these
    bytes should be $00 $08.
    11. write the 10 bytes that spell “duration”.
    $64 $75 $72 $61 $74 $69 $6F $6E
    12. next write a single byte of $00. This indicates that a numeric
    value of type double will follow. This is the duration value.
    13. write the actual duration value. NOTE that in this case, where we
    are only writing the duration into the meta data, this is the only
    part write that will change from one flv file to the next.
    Doubles are 8 bytes for the flv specification the bytes must be flipped.
    So, for example, an flv that is 2.722 seconds long will be encoded as
    $40 $05 $C6 $A7 $EF $9D $B2 $2D.
    The minimum onMetaData tag is now complete. Accourding do the MM flv
    specification, the next thing to write would be the length of the
    previous tag. This would be the onMetaDate tag lenght mentioned above
    (37) pluse the 11 bytes of tag header for a total of 48 bytes or $30.
    *)

  5. Hi Alec,
    Thanks for posting the info.
    Best regards,
    Burak

  6. We have developed a player that uses an external xml file to read in the media length. The player works great if the metadata is there. However, this gives everyone the opportunity to easily incorporate video into their projects.
    http://www.earthscienceagency.com/products/examples/video_jukebox/
    The playlist is also pretty convenient and the skinning is much more intuitive than the macromedia approach.

  7. Hi Justin,
    I’d normally delete any post that even smells like an ad.
    In this case I’m making an exception.
    Best regards,
    Burak

  8. Hi Burak -
    Thanks for understanding my post. I usually don’t make a point to advertise our products on blog sites. I came across this post about the metadata issue, and I thought others might be interested in this approach. I appreciate you making an expection :)
    Best regards,
    Justin

  9. Valera says:

    More detaild description for the FLV onMetadata tag you can find on the fillowing image:
    http
    never.city.tomsk.net
    flvmetadata.jpg
    so anybody can create metadata reader/writer :)