2010年11月9日火曜日

FLVのメタデータ(動画の幅や高さ等)を調べるPerlモジュール

仕事では、FLVファイルをサイトに掲載してください、という類の要求がしばしばある。

大抵の場合、FLVファイルだけポンと渡されるので、実際にFLVを掲載するために必要な「幅」「高」さといった情報はもらえないことが多い。そのくらいメールに付記して欲しいと思う反面、渡す側の人間にすればそんな細かい情報が要るとは見当がつかないだろうから、この現象は仕方がないということで自ら調べることになる。

Perlを利用する場合は、「FLV::Info」というモジュールで簡単に調べられる。なお、インストールはCPANシェルから特に問題なく行うことができた(CentOS5.3での話)。

メタ情報出力プログラム例

#!/usr/bin/perl
# flvinfo.pl
# 引数で指定されたFLVファイルのメタデータを出力する
# 前提:FLV::Infoがインストールしてあること(CPANにある)
use FLV::Info;
my $reader = FLV::Info->new();
$reader->parse($ARGV[0]);
my %info = $reader->get_info();
print "$info{video_count} video frames\n";
print $reader->report();

実行例

$ perl ./flvinfo.pl foo.flv
748 video frames
File name          foo.flv
File size          1082585 bytes
Duration           about 24.925 seconds
Video              748 frames
  codec            Sorenson H.263
  height           240
  type             interframe/keyframe
  width            320
Audio              954 packets
  format           MP3
  rate             44100 Hz
  size             16 bit
  type             stereo
Meta               1 event
  audiocodecid     2
  audiosamplerate  44100
  audiosamplesize  16
  duration         24.958
  filesize         1082585
  framerate        29.97002997003
  height           240
  stereo           1
  videocodecid     2
  width            320

0 件のコメント:

コメントを投稿