J'utilise actuellement un fichier batch qui (entre autres) exécute la ligne de commande handbrakecli suivante pour convertir une vidéo:
HandBrakeCLI.exe -v0 --input "D:\input.mkv" --preset="Universal" --ipod-atom -t 1 --angle 1 --gain 0 --output="D:\output.mp4"
Cela m'a bien servi pendant de nombreuses années, en produisant un fichier vidéo qui est plus petit que l'original (bon quand vous n'avez que des appareils 16 Go), qui semble assez bon et fonctionne sur à peu près tous les iPod, iPad et iPhone sur lesquels je le mets.
Cependant, au fil du temps, handbrakecli a du mal à convertir de plus en plus de vidéos au point que je dois chercher une alternative. Ce n'est pas aidé par le fait que les journaux ne fournissent absolument aucune information sur la raison pour laquelle il s'est bloqué. Cette vidéo, par exemple, s'est écrasée à 71% pendant la conversion et ce sont les 4 dernières lignes:
AC3 Passthru requested and input codec is not compatible for track 2, using AC3 encoder
x264 [info]: using SAR=9593/9600
x264 [info]: using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX
x264 [info]: profile Constrained Baseline, level 3.0
Pas très utile.
J'ai envisagé d'utiliser ffmpeg comme alternative, mais tous les exemples que j'ai vus sur Internet font une ou plusieurs des actions suivantes:
- Ne fonctionne pas (les options de ligne de commande ne sont pas reconnues) - commun!
- Résultat: un fichier plus volumineux que l'original - très courant!
- Déforme l'image, en particulier lorsqu'une taille vidéo inattendue est convertie (par exemple, PAL non grand écran)
- Supprimer l'audio
- Résultat: une vidéo que l'iPhone, l'iPod ou l'iPad ne lira pas
Existe-t-il une ligne de commande ffmepg polyvalente décente qui rendra n'importe quelle vidéo heureuse sur tous les appareils Apple et permettra de réduire la taille du fichier?
Des points bonus s'il rétrécit (mais ne déforme pas) toute vidéo sur 720p également.
Réponses:
Voici mon point de vue là-dessus. Je prendrai l'iPhone 4 ou plus récent (y compris tous les iPad) comme cible: profil principal H.264, niveau 3.1
Les valeurs que vous êtes libre de modifier:
-crf 23
: La qualité constante. Valeur plus élevée = moins de qualité, fichier plus petit. Inférieur = meilleure qualité, fichier plus gros. Les valeurs raisonnables sont [18 - 24]-preset medium
: Si cela est trop lent pour vous, utilisez un préréglage plus rapide. Si vous en avez la patience, utilisez-en une plus lente. Voir ici pour plus d'informations.-acodec copy
: Essaie de copier la piste audio dans le conteneur MP4. S'il ne peut pas être copié, vous devrez le recoder en AAC / MP3 / AC3 ... par exemple-acodec libmp3lame
Si votre vidéo est supérieure à 720p, ajoutez ce qui suit après l'entrée:
-vf "scale=-2:720:flags=lanczos"
Cela réduira votre vidéo à 720p et conservera le rapport hauteur / largeur. L'algorithme de mise à l'échelle utilisé sera lanczos car il est bien meilleur que celui par défaut.
la source
-vf "scale=-2:720:flags=lanczos"
place. L'ajout-movflags +faststart
est recommandé si le fichier sera visualisé via un téléchargement progressif tel que dans un navigateur (et sinon l'option ne fait certainement pas de mal).x264-params
. À moins de le construire moi-même, existe-t-il un moyen de contourner ce problème?-x264-params
fonctionne très bien. Êtes-vous sûr de ne rien avoir manqué? L'option est principalement une sécurité pour éviter d'avoir plus de 4 trames de référence qui pourraient ne pas être gérées par un décodeur plus ancien.-acodec libmp3lame
ne fonctionne pas pour moi. Pour activer l'audio sur mon iPad Mini, j'ai reconstruitffmpeg
avec unenonfree
variante et utilisélibfdk_aac
codé.C'est basique mais ça a marché tout de suite pour moi sur un iPad 3
la source