当我通过 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;
}
最佳答案
iPhone 将 .mov 元数据中的方向信息存储在 ffmpeg 忽略的元数据中,从而导致旋转输出。正确解析元数据是一个问题。
如果您以一致的方向录制电影,您可以通过添加 -vf "transpose=1"
来旋转它们到您的 ffmpeg 命令。 Docs for transpose .
关于ffmpeg - 将 .mov 转换为 .flv 视频水平播放时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3115973/