【perlメモ】画像や動画の詳細な情報を取得できるCPANモジュール『Image::ExifTool』
GyaO!からGAS等を使ってダウンロードしたファイルの簡易ファイル破損チェックツールを作ってみた。 – KUMA TYPE
上のツールを簡易ファイル破損チェックツールを作ったときに利用したCPANモジュール。モジュールの名前からしてデジカメで取った写真のExifを取得するモジュールの様な気がするけど、色々なフォーマットのファイルの情報を取得することができる。
sample.pl
#!/usr/bin/perl
#
use strict;
use warnings;
use utf8;
use Encode;
use Image::ExifTool qw(:Public);
opendir(DIR,".");
while(my $file = readdir(DIR)){
next if($file eq ‘.’);
next if($file eq ‘..’);
next if(-d $file);
my $info = ImageInfo($file);
print "—————–\n";
print "$file\n";
foreach my $key(sort keys %{$info}){
print "$key = $info->{$key}\n";
}
}
closedir(DIR);
試しにGyaO!からダウンロードした動画の情報を調べてみる。動画のサイズ、容量、再生時間、動画のタイプ、ビットレートなど様々な情報を簡単に取得できる。ファイル名が化けて冬のソナタの冬のがディレクトリ、ナタ以降がファイル名になってしまっているのはご愛嬌。ソの字はShiftjisの文字コード的に昔から鬼門。回避する手段がちょっと思いつかなかったのでとりあえずそのまま。
sample.plの実行結果
—————–
冬のソナタ 話数限定 第1話.wmv
ASFLeakyBucketPairs = SCALAR(0x1911a1c)
AudioChannels = 2
AudioCodecDescription = 64 kbps, 44 kHz, stereo 2-pass VBR
AudioCodecID = Windows Media Audio V2 V7 V8 V9 / DivX audio (WMA) / Alex AC3 Audio
AudioCodecName = Windows Media Audio 9
AudioSampleRate = 44100
Copyright = (c)KBSi
CreationDate = 2009:08:20 05:27:16Z
DataPackets = 24330
Directory = 冬の・
ErrorCorrectionType = No Error Correction
ErrorCorrectionType (1) = Audio Spread
ExifToolVersion = 7.89
FileID = 1DDB9259-040E-4104-9EED-6803370AF1E6
FileModifyDate = 2009:08:20 05:27:16+09:00
FileName = ナタ 話数限定 第1話.wmv
FileSize = 389284524
FileSize (1) = 371 MB
FileType = WMV
Flags = 2
ImageHeight = 480
ImageSize = 640×480
ImageWidth = 640
IsVBR = True
MIMEType = video/x-ms-wmv
MaxBitrate = 3388539
MaxPacketSize = 16000
MinPacketSize = 16000
PlayDuration = 1:06:00
Preroll = 5000
SendDuration = 1:05:57
StreamNumber = 2 (encrypted)
StreamNumber (1) = 1 (encrypted)
StreamType = Video
StreamType (1) = Audio
TimeOffset = 0 s
TimeOffset (1) = 0 s
VideoCodecDescription =
VideoCodecName = Windows Media Video 9
F:\Downloads\Gyao>
関連リンク