将.mov转换为.flv视频时,水平播放

时间:2010-06-25 06:22:54

标签: ffmpeg transcoding

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

2 个答案:

答案 0 :(得分:2)

iPhone在fmmpeg忽略的.mov元数据中的商店方向信息,导致旋转输出。正确解析元数据是一个问题。

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

答案 1 :(得分:0)

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