上传到互联网后,录制的视频旋转90度

时间:2012-08-23 18:45:51

标签: android autorotate video-recording

我发现以纵向模式录制的视频会旋转90度。因此,当我设置mediaRecorder时,我使用以下代码来旋转它:

 if (this.getResources().getConfiguration().orientation !=Configuration.ORIENTATION_LANDSCAPE)
{
     mediaRecorder.setOrientationHint(270);
}
 else
{
     mediaRecorder.setOrientationHint(0);
}

mediaRecorder.setOutputFile(file_name);                  
mediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.DEFAULT);
mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);

预览也是正确的,因为我在surfaceCreated方法中使用了以下代码:

Camera.Parameters params = camera.getParameters();

if (this.getResources().getConfiguration().orientation
     !=Configuration.ORIENTATION_LANDSCAPE)
{   
  camera.setDisplayOrientation(90);

}
else
{   
  camera.setDisplayOrientation(0);                  
}

  params.setRotation(90);
  camera.setParameters(params);

这样,在设备上播放时,录制的视频方向正确。然而,在上传到互联网后,视频仍然可以旋转90度。有没有人对此提出建议?非常感谢。

2 个答案:

答案 0 :(得分:3)

有些视频播放器在播放视频时会考虑方向提示。其他球员没有。只需尝试使用Windows Media Player,Quick Time和Real Player在您的PC上播放此视频,并查看差异 问题可能不是您的代码,而是您用来观看视频的视频播放器。

答案 1 :(得分:3)

使用mMediaRecorder.setOrientationHint(int) 这绝对有效。 您可能需要使用各种方向来获取potrait和landscape中所有摄像机的int值。