Imansible riprodurre determinati video

Sto provando a riprodurre i film sul dispositivo Android dal nostro server. Non è un server multimediale, solo un normale server Apache. Utilizziamo la stessa API per accedere ai video sull'iPhone e funziona bene.

Sul dispositivo Android, alcuni video funzionano e altri non lo fanno. Sono stati tutti creati allo stesso modo, ad exception della maggioranza di quelli che non funzionano, sono composte da immagini fisse e audio.

  • alsa_aplay che non registra su android
  • Come triggersre il ricevitore di trasmissione quando il GPS è acceso / spento?
  • utilizzando il retrofit con la persistenza del cookie
  • Ottieni la dimensione in byte della pagina web in Android
  • Android Test Module (Gradle Plugin 1.3) non funziona: "classi di debug non trovate"
  • Trova la posizione del cellulare
  • Abbiamo provato a ricodificarli con Videora, e abbiamo provato a suggerirli con MP4Box. Tutti i video sono perfettamente funzionanti quando vengono memorizzati sulla scheda SD. Abbiamo anche provato prima a scaricare il video dal server sulla scheda SD, salvandolo come file e riprodotto dal file, ma non funziona neanche.

    La guida sarebbe stata incredibile. Sono fortemente confuso. Grazie.

    Modifica – 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 : Qui è una pasta di pasta dell'analisi video per tre diversi video. I primi flussi sull'applicazione dal server. Il secondo video non sarà in streaming, ma può essere scaricato e riprodotto dal dispositivo. Il terzo non può essere trasmesso in streaming o scaricato per essere riprodotto. http://pastebin.com/9qChSkFz

    WTF.

  • come visualizzare i routes di guida
  • Applicare due stili diversi di font a un TextView
  • Come colbind l'indicatore di Android API v2 di Google Maps a un object
  • Vai alla schermata iniziale invece dell'attività precedente
  • Imposta il carattere per tutti i textViews in attività?
  • La camera PhoneGap riavvia l'applicazione
  • One Solution collect form web for “Imansible riprodurre determinati video”

    Mi sono imbattuto nello stesso problema, e dopo aver inizialmente rinunciato, ho trovato una soluzione.

    Ho imbattuto nella pagina seguente http://developer.android.com/guide/appendix/media-formats.html che afferma:

    Per i contenitori 3GPP e MPEG-4, l'atomo moov deve precedere tutti gli atomi mdat, ma deve riuscire all'atomo di tipo ftyp.

    Dopo aver fatto qualche scavo, ho scoperto che questo è esattamente il problema. Il video registrato da alcuni telefoni Android (credo che pre 2.3) pone l'atomo moov alla fine del file. Ciò li rende inalterabili. Alcuni googling ti mostreranno che questo è un problema comune nei file MP4 e in quelli flash in particolare, dato che sono stati fatti per trasmettere i video.

    C'è anche un codice di errore specifico per questo in MediaPlayer (ma non ho visto questi loghi) MediaPlayer # MEDIA_ERROR_NOT_VALID_FOR_PROGRESSIVE_PLAYBACK.

    La mia soluzione è quella di eseguire il file video tramite uno strumento esterno per spostare l'atomo moovato all'inizio. Ho finito con MP4Box: http://gpac.wp.institut-telecom.fr/mp4box/ e il command

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

    Spero che aiuta qualcun altro!

    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.