携帯動画の再生時間をMP4::Infoで取得しませう

…というか3gpファイルのヘッダを解析して再生時間の取得を試みるわけなので延いてはmp4の解析ということになりますが故、結局のところMP4::Infoを使うことで万事OKだろっていう話ですね。

use MP4::Info; # v1.12
use Path::Class;

my $file = file '/foo/bar/movie.3gp';
my $mp4 = MP4::Info->new($file->openr);

printf "total second is %s", $mp4->SECS;

このようにすれば動画のトータル秒数が取得できます。

他にも色々とメソッドがありまして、様々な情報を取得できるわけですがそれらはドキュメントに書いてるのでここでは触れませぬ。

が、実装部分でひとつ気になる部分がありまして、各種メソッドの挙動をAUTOLOAD様に任せておられるようなのでそこが少し気になるということであれば直接オブジェクトのハッシュにアクセスするのがいいのかなぁという気もしています。

print $mp4->{SECS}; # 直で!


ちなみに前日寝違えて痛めた首は治りつつありますがその代わりに今度はお腹がビッグバン確変中でありナニコレ俺の腹の中で宇宙が生まれるんじゃないかっていうくらいにもうにっちもさっちもいかない状態でブログなんか更新してる場合じゃないんだけどあえて更新してみたいという何かしらの何かがなんとなく何故か芽生えあーもういいや。