0

当我通过 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;
}
4

2 回答 2

2

iPhone 将 .mov 元数据中的方向信息存储在 ffmpeg 忽略的元数据中,从而导致旋转输出。正确解析元数据是一个问题。

如果您以一致的方向录制电影,您可以通过添加-vf "transpose=1"到您的 ffmpeg 命令来旋转它们。 转置文档

于 2011-11-17T23:56:33.603 回答
0

方向是视频文件中的元数据字段 - 实际文件不会以备用方向记录。您需要在 ffmpeg 中应用转换来旋转视频。

于 2010-06-25T06:25:55.273 回答