No se pueden reproducir ciertos videos

Estoy intentando reproducir películas en el dispositivo Android desde nuestro servidor. No es un servidor de medios, sino un servidor Apache regular. Utilizamos la misma API para acceder a los videos en el iPhone y funciona bien.

En el dispositivo Android, ciertos videos funcionan y otros no. Todos fueron creados de la misma manera, excepto que la mayoría de los que no funcionan están compuestos de imágenes fijas y audio.

Hemos intentado volver a codificarlos con Videora, e intentamos insinuarlos con MP4Box. Todos los videos juegan perfectamente bien cuando se almacenan en la tarjeta SD. También hemos intentado descargar primero el video del servidor a la tarjeta SD, guardarlo como un archivo y luego reproducirlo desde el archivo, pero tampoco funciona.

La ayuda sería asombrosa. Estoy enormemente confundido. Gracias.

Editar – Logcat:

01-19 08:19:12.669: DEBUG/MediaPlayer(1878): Couldn't open file on client side, trying server side 01-19 08:19:14.119: INFO/ActivityManager(1172): Displayed activity com.myproject/.VideoClass: 1966 ms (total 1966 ms) 01-19 08:19:15.779: ERROR/PlayerDriver(1071): Command PLAYER_INIT completed with an error or info UNKNOWN PVMFStatus 01-19 08:19:15.789: ERROR/MediaPlayer(1878): error (200, -32) 01-19 08:19:15.789: ERROR/MediaPlayer(1878): Error (200,-32) 01-19 08:19:15.789: DEBUG/VideoView(1878): Error: 200,-32 01-19 08:19:15.849: WARN/PlayerDriver(1071): PVMFInfoErrorHandlingComplete 

UPDATE : Aquí un pastebin del análisis de video para tres videos diferentes. Los primeros flujos de la aplicación desde el servidor. El segundo video no se transmitirá, pero puede descargarse y reproducirse desde el dispositivo. El tercero no puede ser transmitido o descargado para ser reproducido. Http://pastebin.com/9qChSkFz

WTF.

He corrido en el mismo problema, y ​​después de dar inicialmente para arriba, he encontrado una solución.

Me topé con la siguiente página http://developer.android.com/guide/appendix/media-formats.html que dice:

Para los contenedores 3GPP y MPEG-4, el átomo moov debe preceder a cualquier átomo mdat, pero debe tener éxito el átomo ftyp.

Después de hacer un poco de excavación, descubrí que este es exactamente el problema. El video grabado desde ciertos teléfonos Android (creo que pre 2.3) coloca el átomo moov al final del archivo. Esto los hace inmejorables. Algunos google le mostrará que este es un problema común con los archivos MP4 y los reproductores flash en particular, ya que se hicieron para transmitir vídeo.

Incluso hay un código de error específico para esto en MediaPlayer (pero no vi estos registrados) MediaPlayer # MEDIA_ERROR_NOT_VALID_FOR_PROGRESSIVE_PLAYBACK.

Mi solución es ejecutar el archivo de vídeo a través de una herramienta externa para mover el átomo moov al inicio. Terminé usando MP4Box: http://gpac.wp.institut-telecom.fr/mp4box/ y el comando

 MP4Box -inter 500 original.mp4 -out fixed.mp4 

Espero que ayude a alguien más!

  • El comando de cambio de velocidad falla cuando el flujo de audio no está presente en el video - ffmpeg
  • Cordova 3.6.3 Plugin de archivos - obtenga archivos de video locales en android
  • Buscando en YouTube HTML5 video sobre Android WebView
  • Reproducción de vídeo en android directamente desde el servidor
  • ¿Cómo evitar que el android invierta la imagen de la cámara frente a frente?
  • El video no se reproduce en la vista web de Android
  • Obtención de pantalla en negro cuando se agrega ExoPlayer a GLSurfaceView
  • Cómo agregar reproducción de vídeo y recursos a la aplicación Android
  • Reproducción de FLV / HTTP en la aplicación de Android
  • Cómo hacer que una videoview NO se inicie automáticamente después de preparado
  • No se puede eliminar la caché en xperia mini
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.