自分用のメモ。
■動画の画面サイズ(縦横比)を取得する
$cmd = “C:ffmpeg -i C:llNeZiF09RAL.mp4 2>&1”;
//2>&1はエラー出力を標準出力するってことだそうだ。
exec($cmd,$out);
//execコマンドで$cmdを実行。結果を$outに出力
for ($h = 0; $h < count($out); $h++) {
//$outに出力された値は配列に格納されるので、forで配列を一つづつ確認する。
if(preg_match(‘/([0-9]{3,4})x([0-9]{2,4})/’, $out[$h])){
//preg_match関数で176×144のような結果が$out[$h]にあるかどうかを確認。
//正規表現を使っているので’//’で囲む。
//([0-9]{3,4})の{}の数字は文字数3または4を示す。
if(!preg_match(‘/([0-9]{5,})x([0-9]{5,})/’, $out[$h])){
//{5,}は今のところ解像度で5桁はないだろうから!で5桁以上を除外。
preg_match(‘/([0-9]{3,4})x([0-9]{2,4})/’, $out[$h],$PregMatch,PREG_OFFSET_CAPTURE);
//3番目の要素($PregMatch)に検索結果が入る。
//4番目の要素は{}で指定した文字数を分割して出力する場合に記載する。
}
}
}
//出力すると以下のような感じになる。
//print_r($PregMatch);
//Array ( [0] => Array ( [0] => 176×144 [1] => 55 ) [1] => Array ( [0] => 176 [1] => 55 ) [2] => Array ( [0] => 144 [1] => 59 ) )
$Width = $PregMatch[1][0];
$Height = $PregMatch[2][0];
echo “横幅は” .$Width;
echo “高さは” .$Height;