[Ffmpeg-devel] Patch to add header info to flv format
Chris Dolan
chris
Sat Aug 5 22:57:31 CEST 2006
On Aug 5, 2006, at 2:28 PM, Adam McCann wrote:
> Thanks Chris, however they won't be using that either, only being 2
> weeks old :)
I understand that point for youtube, etc. Most of them probably use
commercial tools. For example, I sometimes see this tag in some
commercial FLVs:
'metadatacreator' => 'Manitu Group FLV MetaData Injector 2',
However, not from YouTube. All of the FLV files that I have ever
captured from YouTube lack metadata tags, and they instead pass the
video duration in on the URL query string. FLVs from
video.google.com have somewhat odd metadata tags (including
'onTransition' events) that I suspect comes from a custom engine.
I was simply offering an alternative for you that is indeed open
source and unix-friendly. Obviously, direct support for metadata via
ffmpeg/mplayer would be simpler, but if you want a solution that is
either usable or hackable *today*, mine is pretty powerful and has
richer metadata than ffmpeg SVN (except for file size, which mine
lacks).
> It seems to look good, but what I actually need is to add the
> duration, as well as the keyframe data needed to seek the file.
> There are a couple of tools about, one I've heard a lot about is
> FLVTool2, however this apparently hogs your system from several
> minutes to hours for files of any reasonable size.
Mine does duration already, and I just coded up support for keyframe
times 5 minutes ago. :-) The major limitation of my metadata is the
lack of byte offsets. That's doable, I just lack round tuits.
I've read the code of flvtool2 extensively, and I can assure you that
it is pretty efficient. From my understanding of that code it
appears it should take seconds, not minutes or hours, to generate
metadata for real world FLVs. My library is conceptually quite
similar to flvtool2 (and in fact I credit them in my library's
documentation for help in deciphering the metadata de-facto
standard). My library takes roughly one second per 3 minutes of
source FLV to generate metadata.
Here's an example of the metadata that my library emits for a very
short MX FLV test movie:
{
'width' => '320',
'videocodecid' => '2',
'videodatarate' => '280',
'audiocodecid' => '2',
'metadatacreator' => 'FLV::File v0.12',
'keyframes' => {
'times' => [
'0',
'3',
'6',
'7.4'
]
},
'metadatadate' => 'Sat Aug 5 20:24:16 2006',
'duration' => '7.4',
'videosize' => '171210',
'height' => '240',
'audiodelay' => '0',
'creationdate' => 'Sat Aug 5 20:24:16 2006',
'framerate' => '20',
'lasttimestamp' => '7.4',
'canSeekToEnd' => '1',
'audiosize' => '119118',
'audiodatarate' => '128'
}
And for a VP6 (Flash 8) encoding of the same source:
{
'width' => '320',
'videocodecid' => '4',
'videodatarate' => '280',
'audiocodecid' => '2',
'metadatacreator' => 'FLV::File v0.12',
'keyframes' => {
'times' => [
'0',
'2.4',
'2.85',
'5.85',
'7.4'
]
},
'metadatadate' => 'Sat Aug 5 20:54:50 2006',
'duration' => '7.4',
'videosize' => '218664',
'height' => '240',
'audiodelay' => '0',
'creationdate' => 'Sat Aug 5 20:54:50 2006',
'framerate' => '20',
'lasttimestamp' => '7.4',
'canSeekToEnd' => '1',
'audiosize' => '119118',
'audiodatarate' => '128'
}
Chris
--
Chris Dolan, Software Developer, http://www.chrisdolan.net/
Public key: http://www.chrisdolan.net/public.key
vCard: http://www.chrisdolan.net/ChrisDolan.vcf
More information about the ffmpeg-devel
mailing list