32 votes

Pourquoi la vidéo de ffmpeg ne s'affiche pas dans QuickTime, iMovie ou l'aperçu rapide ?

J'ai utilisé ffmpeg pour la conversion vidéo occasionnelle depuis un certain temps, et j'ai récemment découvert que les vidéos H.264 (libx264) générées par ffmpeg ne fonctionnent pas dans iMovie ou QuickTime (elles ne peuvent pas non plus être lues ou afficher un aperçu dans le Finder avec la fonction d'affichage rapide).

Si je génère des vidéos à l'aide d'applications OS X qui utilisent en interne ffmpeg (par ex. MP4tools o Adaptateur ) les vidéos fonctionnent bien, mais pas lorsque j'essaie d'utiliser ffmpeg directement, par exemple pour convertir une vidéo :

# ffmpeg -i input.avi output.mp4

ou pour combiner quelques images dans une vidéo :

# ffmpeg -f image2 -pattern_type sequence image-%04d.png output.mp4

iMovie importe la vidéo en noir/blanc, la prévisualisation rapide ne montre que les informations du fichier (mais pas de prévisualisation de la vidéo), et Quicktime me dit qu'il ne peut pas la lire :

document could not be opened

Qu'est-ce qui se passe ?

52voto

Shuft Points 420

En bref, vous devez (souvent) inclure l'argument -pix_fmt yuv420p lors de l'utilisation de ffmpeg pour générer du contenu H.264 pour les logiciels/appareils Apple, et un tas d'autres décodeurs qui ne gèrent pas yuv444p.

# ffmpeg -i input.avi -pix_fmt yuv420p output.mp4

Ceci n'est pas mentionné dans la sortie lorsque l'on utilise les valeurs par défaut, mais peut être trouvé dans leur Guide d'encodage/H.264 .

Il il s'avère que que ffmpeg a choisi un format de pixel par défaut de yuv444p pour l'encodage libx264 (dans certaines circonstances), ce qui n'est pas compatible avec les décodeurs H.264 logiciels/matériels d'Apple (et peut-être pas très largement compatible en général ? ). Malheureusement, il est peu probable que cela change, et il n'y a pas d'avertissement à ce sujet, donc c'est quelque chose que vous devez savoir si vous utilisez ffmpeg pour créer des fichiers H.264.

D'après ce que je sais, si on convertit une vidéo qui utilise déjà le format yuv420p, il le conservera, mais si on convertit quelque chose d'un peu plus exotique (par exemple des images ou un GIF ou autre), le format des pixels doit être spécifié pour la compatibilité générale avec Apple.

2 votes

Ne fonctionne pas dans la version actuelle d'iMovie (Yosemite). D'autres idées ?

1 votes

Pouvez-vous afficher la sortie de ffprobe -select_streams v -show_streams output.mp4 ?

1 votes

+1, même les vidéos yuv420p ne sont pas lues dans High Sierra également.

0voto

Air Points 984

En plus de yuv420p , quelques découvertes sur les codecs en 2021 (Catalina 10.15.7 et Monterey 12.0.1, imovie 10.3 et 10.2.5, ffmpeg 4.4).

Pas tous *264 codecs sont les mêmes. Le site -c:v libx264 ne peut être importé de manière cohérente. Au lieu de cela, utilisez -c:v h264_videotoolbox .

Cela est vrai pour le "silicium Apple" (alias ARM) et les processeurs Intel.

Ni libx265 ni hevc_videotoolbox ne peuvent être importés de manière cohérente, voire pas du tout.

(edit, quelques jours plus tard, j'avais une vidéo qui ne voulait pas s'importer avec -c:v hd264_videotoolbox . Il s'agit de a fait travailler avec -c:v copy -c:a copy (donc une chose de plus à essayer)

0 votes

La dernière ligne, c:v copy, signifie qu'il n'a pas créé une nouvelle vidéo, mais qu'il a tout copié tel quel depuis une autre source.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X