web-dev-qa-db-fra.com

Comment convertir rapidement mp4 en webm en utilisant ffmpeg?

Désolé de vous déranger mais je suis dans une sorte de problème. Je dois convertir 76 fichiers mp4 en WebM dans le but d'un site Web utilisant des vidéos HTML5. Je parle de 10 Go de fichiers mp4 ... Je sais que je peux simplement demander à ffmpeg de le faire en utilisant:

ffmpeg -i input_file.mp4 output_file.webm

Bien sûr je vais le faire récursivement par:

find ./ -name '*.mp4' -exec bash -c 'ffmpeg -i "$0" "${0%%.mp4}.webm"' {} \;

J'ai même essayé quelque chose que j'ai trouvé quelque part sur Internet:

ffmpeg -i input_file.mp4 -cpu-used 4 -threads 8 output_file.webm

Mais le fait est que cela ne me prendra pas moins d'une semaine !!! Qu'est-ce que je fais mal? Y at-il un moyen possible d'accélérer cela? Si je convertis en ogg, vais-je gagner en vitesse? S'il vous plaît aider !!!

19
pr.nizar

Le transcodage d'une vidéo prend du temps. Il faut également beaucoup plus de connaissances sur les paramètres de codage; Les valeurs par défaut de ffmpeg ne vous conviendront probablement pas et risquent même de ne pas créer de fichier de sortie utilisable.

Voici un début:

http://blog.pcode.nl/2010/10/17/encoding-webm-using-ffmpeg/

Ces paramètres encoderont à un débit particulier moyen (débit vidéo de 3900kbit), de sorte qu'il y aura des pointes dans le débit.

MP4 et WebM utilisent des codecs vidéo différents, il n'y a donc pas de raccourci. la vidéo doit être transcodée.

Bien entendu, la vitesse de codage varie énormément en fonction de la taille d'image, de la fréquence d'images et des paramètres de qualité. Pour un codage 720p, vous pouvez vous attendre à pouvoir coder environ 1: 1 (soit 10 heures de vidéo en 10 heures) sur un processeur au cours des deux dernières années. Si vous utilisez le codage ABR en deux passes, comme dans l'exemple donné dans le lien, presque le double.

11
thomasrutter

Le double ou la moitié coupé? C'est donc une impasse. Je ne vais pas jouer avec les débits, je ne sais jamais à quoi m'attendre, de qualité ou de taille.

find ./ -name '*.mp4' -exec bash -c 'ffmpeg -i "$0" -vcodec libvpx -acodec libvorbis -cpu-used 5 -threads 8 "${0%%.mp4}.webm"' {} \;

Je le publie pour les futurs utilisateurs. En fait, j'ai gagné en vitesse, mais mon processeur fonctionne à merveille: 60 à 80% sur chaque cœur! Maintenant, je pense que cela prendra moins de temps: 3 jours au lieu de 6 ou 7 .. J'espère que ça ne va pas le décomposer .. ^ _ ^

Merci quand même mec!

Edit: Suppression du commutateur -sameq après les commentaires de LordNeckbeard et de neon_overload - sameq ne signifie pas la même "qualité"

8
pr.nizar