2010-06-25 108 views
0

當我通過iPhone錄製視頻(.mov)時,它會垂直顯示,這是正確的。 但將.mov轉換爲.flv(使用ffmpeg)後,它會水平顯示。將.mov轉換爲.flv視頻時水平播放

我的代碼:

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

方向是視頻文件的元數據字段 - 實際的文件不被記錄在備用方向。您需要在ffmpeg中應用轉換來旋轉視頻。

+0

你好, 感謝您的快速回復,我如何在ffmpeg中應用轉換? – user291247 2010-06-25 06:30:45

2

fmpeg忽略的.mov元數據中的iPhone商店方向信息,導致旋轉後的輸出。正確解析元數據是一個問題。

如果您以一致的方向錄製影片,則可以通過將-vf "transpose=1"添加到ffmpeg命令來旋轉它們。 Docs for transpose