web-dev-qa-db-fra.com

Les vidéos converties sous Linux ne sont pas lues dans le navigateur mobile

J'ai utilisé avconv et ffmpeg pour convertir des fichiers vidéo, mais ces fichiers après ce processus ne fonctionnaient pas sur un navigateur mobile. Ils ne fonctionnent également que sur VLC ou sur tout autre navigateur de bureau (Linux ou Windows).

Et je viens d'utiliser tous les codes de conversion vus dans le StackOverflow! MP4 ou WebM utilisant le codec H264 ou VP9 ne fonctionnent pas.

Le dernier code que j'ai utilisé est le suivant:

ffmpeg -i buck.webm -b 1500k -vcodec libx264 -profile:v baseline -g 30 "example.mp4"

Fonctionne bien sur un PC, mais ne fonctionne pas dans un navigateur mobile (Chrome ou Firefox).

Comment dois-je procéder?

2
Marcos Gabriel

Consultez ce document pour les développeurs Android:

Formats de supports pris en charge

Notez que cela ne donne que les paramètres de base et que tout appareil mobile donné peut prendre en charge des formats ou types de fichiers supplémentaires non répertoriés dans le tableau.

Sur cette base, il semble que votre choix de codec vidéo et de paramètres pour ce codec soit acceptable, mais vous feriez mieux de spécifier aac pour le audio codec dans votre ligne de commande. J'espère que cela permettrait une large gamme de périphériques avec une lecture réussie.

Une ligne de commande suggérée pour FFmpeg serait:

ffmpeg -i input \
        -c:v libx264 -preset slow -crf 22 \
        -profile:v baseline -level 3.0 \
        -movflags +faststart -pix_fmt yuv420p \
        -c:a libfdk_aac -b:a 128k \
        output.mp4

Quelques points pour ce choix de ligne de commande:

  1. Pour la plus grande compatibilité avec une large gamme de périphériques il est recommandé d'utiliser -profile:v baseline -level 3.0
  2. C'est une idée d'ajouter -movflags +faststart si votre fichier va être affiché en ligne, avec ce réglage il devrait commencer la lecture avant complètement téléchargé
  3. Utilisez -pix_fmt yuv420p pour autoriser la lecture sur un plus grand nombre de périphériques.
  4. libfdk_aac donne un meilleur son AAC que le codeur natif AAC FFmpeg (lorsque ce codeur était encore marqué comme "expérimental")

J'ai fourni un échantillon de travail ici à des fins de test en utilisant cette ligne de commande.

2
andrew.46