FFmpegを使って動画の画面サイズ(縦横比)をphpを使って取得する方法

公開日:

自分用のメモです。

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

作成者: ひろしっち

プロのマジシャンやってます。 こちらは昔のブログから移行した記事とマジックとは関係ない記事などです。 マジック関連は以下をご覧ください。 ひろしつちや マジシャン出張、派遣マジックショー 記事の感想、コメント、質問などはTwitterにお願いします。 フォローも良かったらお願いします。 Instagram / YouTube / Facebook