Подтвердить что ты не робот

Записанное видео на 90 градусов после загрузки в Интернет

Я обнаружил, что записанное видео в портретном режиме будет вращаться на 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 градусов. Кто-нибудь об этом говорит? Большое спасибо.

4b9b3361

Ответ 1

Некоторые видеоплееры считают подсказку ориентации при воспроизведении видео. Другие игроки этого не делают. Просто попробуйте воспроизвести это видео на своем ПК с помощью проигрывателя Windows Media, Quick Time и Real Player и увидите различия.
Вероятно, проблема заключается не в вашем коде, а в видеоплеере, который вы используете для просмотра своего видео.

Ответ 2

Используйте mMediaRecorder.setOrientationHint(int) Это определенно работает. Возможно, вам придется работать с различными ориентациями, чтобы получить значения int для всех камер в потоке и ландшафте.