当我通过iPhone录制视频(.mov)时,它会垂直显示,这是正确的。 但在将.mov转换为.flv(使用ffmpeg)后,它会水平显示。
我的代码:
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;
}
答案 0 :(得分:2)
iPhone在fmmpeg忽略的.mov元数据中的商店方向信息,导致旋转输出。正确解析元数据是一个问题。
如果您以一致的方向录制电影,可以通过将-vf "transpose=1"
添加到ffmpeg命令来旋转它们。 Docs for transpose
答案 1 :(得分:0)
方向是视频文件中的元数据字段 - 实际文件不以备用方向记录。您需要在ffmpeg中应用变换来旋转视频。