FLV Metadata injectors shootout

May 21st 2012

My quest for a FLV metadata injector started in early 2007, when I was tasked to implement random-access seeking for video files played via a Flash media player and encoded in-house using ffmpeg. I realized quite fast that I needed to inject specific metadata, keyframe times and positions. So I tried flvtool2, which performed quite bad on the large files I had to handle.

So I started the FLVmeta project, as I needed much better performance than flvtool2, especially in terms of memory consumption and processing speed. I was not aware of the existence of any other tool, except the Windows only flvmdi, but I needed Linux compatibility.

Since 2007, I learned about a few other programs, and some appeared over time. Here I am going to review those that I know, and compare them to FLVmeta when possible.

Continue Reading »

Posted by Marc under FLVmeta & Software Development | Comments Off

FLVmeta 1.1.0 released

May 13th 2012

After a few years of short intense development phases, between long pauses of semi-inactivity, here it is, FLVmeta 1.1.0.

This release is a beta version, some real-world testing will be needed to ensure no bugs remain. However, I am pretty confident this version can be used in a production environment, because it is currently used in such a way on a daily basis where I work.

Source code and binaries can be downloaded at Github or Google Code.

Here is a summary of the most interesting features:

  • In-place updating: in addition to writing new files with inserted metadata, FLVmeta can now also update an existing FLV file, in order to simplify workflows where several encoding steps take place.
  • Exhaustive dumps: flvdump has been removed, as its functionality has been integrated and expanded into the main flvmeta executable.
    FLVmeta can now dump the onMetadata tag, the whole file, or any chosen metadata tag. A few interesting output formats are available. In addition to the old “debug” format, XML, JSON and YAML are now supported, allowing integration most software.
  • File checking: FLVmeta can perform a large range of verifications on a FLV file, from the most begnin issues to fatal errors rendering the file impossible to play. A textual report will be printed, optionally as XML to allow further processing.
  • File fixing: currently experimental, this is an option that will attempt to fix invalid FLV files when updating them.
  • User documentation: there is a man page now, that explains in detail how every command and option works.

Continue Reading »

Posted by Marc under FLVmeta & Software Development | Comments Off

Goodbye Subversion

September 12th 2011

I have been using SVN for years, basically since 2004, when I got really fed up with CVS, which was used at my work back then. What seduced me in SVN was the ability to easily configure it as an Apache module, coupled with our central LDAP authentication, and SSL encryption, and its ability to track file renames/moves.
I also enjoy its wide platform compatibility, as well as its excellent windows companion tool : TortoiseSVN, which works wonders compared to the horrible WinCVS.
It took me a little bit of time to fully understand the benefit of atomic commit numbers, as opposed to file versions in CVS, as well as the directory structure used to simulate branches and tags (seems like implemented as an afterthought, doesn’t it ?).

Then came the DCVS. Continue Reading »

Posted by Marc under FLVmeta & Software Development | Comments Off

Dedibox V3: first impressions and benchmark

June 1st 2010

Right after the announcement, I could get my very own Dedibox V3.

Nothing to complain of with the speed of delivery, it took me no more than 10 minutes to order the new box, be notified of its availability, and install an Ubuntu Lucid distribution (signaled as beta).

As I was very curious about the performance of the famous Nano processor, I pitted my older Dedibox (the server powering this very website) against the new one using nbench, here are the results:

First, the original dedibox:

BYTEmark* Native Mode Benchmark ver. 2 (10/95)
Index-split by Andrew D. Balsa (11/97)
Linux/Unix* port by Uwe F. Mayer (12/96,11/97)

TEST                : Iterations/sec.  : Old Index   : New Index
                    :                  : Pentium 90* : AMD K6/233*
--------------------:------------------:-------------:------------
NUMERIC SORT        :             450  :      11.54  :       3.79
STRING SORT         :          71.765  :      32.07  :       4.96
BITFIELD            :      2.5932e+08  :      44.48  :       9.29
FP EMULATION        :          88.285  :      42.36  :       9.78
FOURIER             :           13993  :      15.91  :       8.94
ASSIGNMENT          :          18.371  :      69.90  :      18.13
IDEA                :          3042.6  :      46.54  :      13.82
HUFFMAN             :          1113.4  :      30.87  :       9.86
NEURAL NET          :          21.175  :      34.02  :      14.31
LU DECOMPOSITION    :          762.56  :      39.50  :      28.53
==========================ORIGINAL BYTEMARK RESULTS==========================
INTEGER INDEX       : 35.427
FLOATING-POINT INDEX: 27.756
Baseline (MSDOS*)   : Pentium* 90, 256 KB L2-cache, Watcom* compiler 10.0
==============================LINUX DATA BELOW===============================
CPU                 : GenuineIntel Intel(R) Celeron(R) CPU          220  @ 1.20GHz 1200MHz
L2 Cache            : 512 KB
OS                  : Linux 2.6.24.2dedibox-r8-1-smp-x32
C compiler          : gcc version 4.2.4 (Ubuntu 4.2.4-1ubuntu4)
libc                : libc-2.7.so
MEMORY INDEX        : 9.421
INTEGER INDEX       : 8.429
FLOATING-POINT INDEX: 15.394
Baseline (LINUX)    : AMD K6/233*, 512 KB L2-cache, gcc 2.7.2.3, libc-5.4.38
* Trademarks are property of their respective holder.

 

Now the new server:

BYTEmark* Native Mode Benchmark ver. 2 (10/95)
Index-split by Andrew D. Balsa (11/97)
Linux/Unix* port by Uwe F. Mayer (12/96,11/97)

TEST                : Iterations/sec.  : Old Index   : New Index
                    :                  : Pentium 90* : AMD K6/233*
--------------------:------------------:-------------:------------
NUMERIC SORT        :          625.84  :      16.05  :       5.27
STRING SORT         :          72.811  :      32.53  :       5.04
BITFIELD            :      2.9437e+08  :      50.50  :      10.55
FP EMULATION        :            88.6  :      42.51  :       9.81
FOURIER             :          8060.1  :       9.17  :       5.15
ASSIGNMENT          :          13.373  :      50.89  :      13.20
IDEA                :            3123  :      47.77  :      14.18
HUFFMAN             :          1478.7  :      41.00  :      13.09
NEURAL NET          :          13.524  :      21.73  :       9.14
LU DECOMPOSITION    :           772.2  :      40.00  :      28.89
==========================ORIGINAL BYTEMARK RESULTS==========================
INTEGER INDEX       : 37.871
FLOATING-POINT INDEX: 19.972
Baseline (MSDOS*)   : Pentium* 90, 256 KB L2-cache, Watcom* compiler 10.0
==============================LINUX DATA BELOW===============================
CPU                 : CentaurHauls VIA Nano processor U2250 (1.6GHz Capable) 1600MHz
L2 Cache            : 1024 KB
OS                  : Linux 2.6.32-22-generic-pae
C compiler          : gcc version 4.4.3 (Ubuntu 4.4.3-4ubuntu5)
libc                :
MEMORY INDEX        : 8.883
INTEGER INDEX       : 9.899
FLOATING-POINT INDEX: 11.077
Baseline (LINUX)    : AMD K6/233*, 512 KB L2-cache, gcc 2.7.2.3, libc-5.4.38
* Trademarks are property of their respective holder.

Posted by Marc under Hardware | Comments Off

FLVmeta news

April 14th 2010

After a few months of development, FLVmeta 1.1 is nearing completion.

Snapshots can be downloaded on the Google Code project page at: http://code.google.com/p/flvmeta/downloads/list

Continue Reading »

Posted by Marc under FLVmeta & Software Development | 2 Comments »

About the future of FLV

May 13th 2008

FLV is dead.

That can seem like a rather bold statement, but let’s face the truth. After Adobe’s recent publication of updated and open specifications for the FLV/F4V and SWF formats, that seems to be about the most logical conclusion. Continue Reading »

Posted by Marc under Software Development | Comments Off

Marie Darling: the first concert

May 9th 2008

It will take place the 2nd of June, in Paris, in the “Baroc” (36 rue Sambre et Meuse, 75010) at 20h.
Marie will play alongside Aloÿse and a surprise guest.

For those who don’t know her, Marie is the singer extraordinaire of Katzenjammer Kabarett, a nice Electro/Gothic/Punk/Cabaret… errr well, an interesting band anyways ;)

This is going to be Marie’s first solo concert, so she needs encouragements and a loooot of people screaming her name.

Oh I forgot, the entrance is free !

Links:
http://www.myspace.com/mariedarling

http://www.katzenjammer-kabarett.com/

http://www.myspace.com/aloysuke

Posted by Marc under Music | Comments Off

Hello World !

May 8th 2008

Every software developer out there will have recognized the famous “Hello World”.
For those who are not part of this fantastic corporation, well, this is just a way to make a first try in a new domain you don’t master yet, like, for instance, me and all this blogging thing.

Ok, ok, no digression for a first post. This one marks the opening of my first blog, and website, so I’ll talk a bit about me and blogs. Continue Reading »

Posted by Marc under My life & Zenhaven.org | 1 Comment »