2012-10-26 43 views
2

將視頻上傳到我的服務器後,我使用FFMPEG創建了一個screencap。問題是,如果用戶以縱向模式拍攝視頻,則屏幕畫面會旋轉90º。可笑的是,PhoneGap和FFMEG-php和FFMPEG似乎沒有提供讀取視頻旋轉/方向值的機制。如何確定PHP/FFMPEG/PhoneGap中的視頻旋轉/方向?

我發現另一個名爲mediainfo的庫,它將提供信息,但不是以易於閱讀/消化的方式,我試圖避免使用另一個庫。

我錯了PhoneGap/FFMPEG?有直接的方法來確定視頻方面嗎?


這裏是我的解決方案作爲一個PHP函數:

function get_video_orientation($video_path) { 
    $cmd = FFMPEG_PATH . "ffprobe " . $video_path . " -show_streams 2>/dev/null"; 
    $result = shell_exec($cmd); 

    $orientation = 0; 
    if(strpos($result, 'TAG:rotate') !== FALSE) { 
     $result = explode("\n", $result); 
     foreach($result as $line) { 
      if(strpos($line, 'TAG:rotate') !== FALSE) { 
       $stream_info = explode("=", $line); 
       $orientation = $stream_info[1]; 
      } 
     } 
    } 

    return $orientation; 
} 
+0

與此相關嗎? http://stackoverflow.com/questions/2208522/ffmpeg-on-iphone-modifying-video-orientation –

+0

在某種程度上,但我知道我可以使用FFMPEG旋轉視頻,但問題是我不知道IF我需要旋轉,因爲我不知道視頻的方向首先是什麼:s – SomethingOn

+0

http://stackoverflow.com/a/11236144/881551和'ffmpeg -i video.mpg' –

回答

-1

使用MediaCodec找到旋轉值。然後使用FFMPEG旋轉視頻。

例如:ffmpeg的-i in.avi -vf 「轉= 1」 out.avi

這將順時針旋轉90度翻轉視頻。