この日記は https://yapud.hatenablog.com/ に引っ越し中
2016-01-10
_ [Software] Image::ExifTool では動画の中の音声部分だけのビットレート情報が取り出せない
先日の日記 「動画ファイルの情報をperlから読み出すには Image::ExifTool - pudding - diary(2016-01-08)」 で、動画ファイルの中から様々な情報が取り出せるぞ、ワーイやったー、と思っていた。
音声部分のビットレートを知りたいな。無駄に高ビットレートでエンコードしてるのをもうちっと低ビットレートでエンコードし直したいな。よしよし Image::ExifTool で情報を取りだそう。
と思ったら。動画の中の音声部分だけのビットレート情報が取り出せねえのな。
CPAN で似たような処理をするものを探して一通り試してみたけど、どれも同じ。
仕方ない、外部プログラムを呼ぶか。 ffmpeg に付いてくる ffprobe で情報取得ができる。ffprobeは情報を標準エラー出力に吐くので、標準エラー出力を標準出力に引っ張ってきて、そいつを取りだそう。
my @stdout = `ffprobe.exe $filename 2>&1`;
foreach (@stdout){
if(/Audio.+ ([0-9]+) kb\/s/){
print $1;
}
}
コレで動画ファイル内の音声部分だけのビットレートを取り出すことができた。
前 | 2016年 1月 |
次 | ||||
日 | 月 | 火 | 水 | 木 | 金 | 土 |
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |