web-dev-qa-db-fra.com

Impossible de lire la vidéo en Android téléchargé depuis l'iphone

J'ai téléchargé et lu des vidéos sur les deux Android et appareils iPhone mais la vidéo téléchargée depuis iPhone ne fonctionne pas sur Android. Elle n'est pas lue dans Android lecteur vidéo. C'est donne moi un message d'erreur

"Désolé, cette vidéo ne peut être lue"

la vidéo est au format mp4.

16
user2524618

Oui c'est vrai.

Cela se produit car les Android supportent des codecs limités intégrés comme mp3, mp4, mpeg.

Alors que l'iphone prend en charge la plupart des codecs.

Comment résoudre ce problème?

MP4 pour la vidéo et MP3 pour l'audio sont largement acceptés et fonctionnent sur les deux plates-formes.

Vous devez donc faire des choses sur le serveur. Implémentez la bibliothèque ffmpeg qui convertira toutes les vidéos en MP4 et l'audio en MP3.

Nous utilisons le même mécanisme pour résoudre ce problème.

Trouvez l'implémentation FFMPEG pour PHP ici et

Commande pour convertir toutes les vidéos en MP4 ici J'espère que cela vous aidera.

Merci.

9
Biraj Zalavadia

S'il s'agit de mp4, vous devez vérifier quels codecs sont utilisés. L'iPhone code généralement tout en h264, cependant, il existe différents profils de h264 et les profils élevés peuvent ne pas être pris en charge sur Android, car ils sont plus complexes à décoder.

Même Apple dit dans leur documentation:

H.264 Baseline Level 3.0, Baseline Level 3.1, Main Level 3.1 et High Profile Level 4.1.

iPad, iPhone 3G et iPod touch (2e génération et versions ultérieures) prennent en charge H.264 Baseline 3.1. Si votre application fonctionne sur des versions plus anciennes de l'iPhone ou de l'iPod touch, vous devez utiliser H.264 Baseline 3.0 pour la compatibilité. Si votre contenu est uniquement destiné à l'iPad, Apple TV, iPhone 4 et versions ultérieures et ordinateurs Mac OS X, vous devez utiliser le niveau principal 3.1.

Le profil de base doit être joué partout.

Voir la liste ici - http://en.wikipedia.org/wiki/H.264/MPEG-4_AVC#Profiles

Donc, si vous contrôlez l'encodage (si la vidéo est enregistrée à partir de votre application iOS), vous pouvez le faire par programme. Je viens de googler et j'ai trouvé un morceau de code où le profil est défini: http://forums.macrumors.com/archive/index.php/t-1512924.html

9
Dmitry