自分用のメモ。

■動画の画面サイズ(縦横比)を取得する
$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;

preg_match