-1

ffmpge を使用して回転する前に、ビデオが横向きまたは縦向きであることを確認する必要があります。私を助けてください。

4

3 に答える 3

3

ffmpegを使用すると、ビデオがiPhoneでランドスケープモードまたはポートライトモードで撮影されていることを確認できません。

mediainfo または exiftool をインストールする必要があります

exiftool をインストールする場合は、以下のコマンドを使用します

exec('exiftool path/to/filename/ | grep Rotation');

これから、ビデオの回転を取得できます

回転が 90° の場合、iPhone のポートレート モードで撮影したビデオ

回転が 0° の場合、iPhone の横向きモードで撮影されたビデオ

于 2013-03-26T11:00:48.983 に答える
3

ffmpeg -i からビデオ ディメンションを取得する

  1. 情報を取得。
  2. 寸法を抽出します。
  3. x < y の場合、縦向き。それ以外の風景。

例えば:

$output = shell_exec("ffmpeg -i $myvideo");
$out_arr = explode("\n", $output);
foreach($out_arr as $line) {
  if( preg_match('/^Stream.*Video:/', trim($line)) ) {
    // match line: Stream #0.0(und): Video: h264 (High), yuv420p, 640x360 [PAR 1:1 DAR 16:9], 597 kb/s, 25 fps, 25 tbr, 25k tbn, 50 tbc
    $line_arr = explode(',', $line);
    // get field: 640x360 [PAR 1:1 DAR 16:9]
    $target_arr = explode(' ', $line_arr[2]);
    // get parts: 640x360
    $dims = explode('x', $target_arr[0]);
    $res_x = $dims[0];
    $res_y = $dims[1];
  }
}

if( !( isset($res_x) && isset($res_y) ) ) {
  die('Could not get dimensions');
} else {
  $orientation = ($res_x < $res_y) ? 'Portrait' : 'Landscape';
  printf('Resolution: %s x %s\nOrientation: %s\n', $res_x, $res_y, $oreintation);

ただし、ビデオを撮影した方法から回転させたい理由はわかりません。ほとんどの場合、回転した後、横向きのビデオになってしまいます。

于 2013-03-08T16:12:51.060 に答える