How can I rotate video with FFmpeg?

2019-06-06 23:12发布

问题:

My existing video is .mov and plays vertically, but when I convert it to .flv with FFmpeg it plays horizontally. How can I correct the converted video to play vertically?

function convert_flv($vidtime, $infile, $outfile, $w = 0, $h = 0, $extra_infile = '', $extra_outfile = '') {
  $parms = '';
  if($w == 0 && $h == 0) {
    //$parms .= '-sameq ';
  } else {
    $parms = '-s {$w}x{$h} ';
  }

  if($vidtime==60)
  {
    $cmd = ffmpeg($infile, $outfile, $parms.' '.$extra_infile, '-t 00:01:00 -ar 22050 -r 15 -f flv '.$extra_outfile);
  }
  else
  {
    $cmd = ffmpeg($infile, $outfile, $parms.' '.$extra_infile, '-t 00:04:00 -ar 22050 -r 15 -f flv '.$extra_outfile);
  }
  print_r($cmd);
  return $cmd;
} 

回答1:

With the current version pulled from SVN, you can rotate video using -vf "transpose=1".
Here's an example using the command-line, which I'm sure is easy to convert to php:

ffmpeg -vf "transpose=1" -i input.mp4 output.mp4

(here's how I built ffmpeg in case this helps)

svn checkout svn://svn.ffmpeg.org/ffmpeg/trunk ffmpeg
cd ffmpeg
./configure --enable-shared  --disable-mmx --arch=x86_64
make
sudo make install


标签: php ffmpeg