El video grabado tiene un giro de 90 grados después de subir a Internet

Encontré que el vídeo grabado en modo vertical girará 90 grados. Así que utilicé el código siguiente para rotarlo cuando fijé el 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); 

La vista previa también está en la orientación correcta ya que usé el siguiente código en el método 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); 

De esta manera, el video grabado se encuentra en la orientación correcta cuando se reproduce en el dispositivo. Sin embargo, el video sigue girando 90 grados después de subir a Internet. ¿Alguien tiene consejos sobre esto? Muchas gracias.

Algunos reproductores de vídeo consideran la sugerencia de orientación al reproducir un video. Otros jugadores no. Sólo intenta reproducir este video en su PC con Windows Media Player, Quick Time y Real Player y ver las diferencias.
Probablemente el problema no es tu código, sino el reproductor de video que estás usando para ver tu video.

Use mMediaRecorder.setOrientationHint(int) Esto funciona definitivamente. Es posible que necesite trabajar las diferentes orientaciones para obtener valores int para todas las cámaras en potrait y landscape.

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.