web-dev-qa-db-fra.com

Est-il possible de convertir sans perte de m4v vers webm?

J'ai plusieurs fichiers m4v, que je dois convertir en webm.

J'utilise ffmpeg pour le faire et j'ai utilisé des commandes telles que:

ffmpeg -i myfiletoconvert.m4v output.webm

La conversion fonctionne bien et la résolution est toujours la même, mais la qualité n’est tout simplement pas la même.

Ce que je voudrais réellement, c'est que la conversion soit sans perte. Je voudrais que les propriétés du fichier d'entrée soient les mêmes pour le fichier de sortie, afin que je n'ai pas de changement de qualité perceptible.

Comment pourrais-je accomplir cela?

2
badgerhill

Je voudrais que les propriétés du fichier d'entrée soient les mêmes pour le fichier de sortie, afin que je n'ai pas de changement de qualité perceptible.

Vous passez d'un codec avec perte à un autre. Cela signifie que vous perdrez la qualité quoi qu'il arrive, à moins que vous ne fixiez le débit binaire cible à un niveau tel que la perte de qualité ne soit pas perceptible (même si elle est toujours là).

L'inconvénient est bien entendu que la taille du fichier va augmenter. Vous demandez combien cela va augmenter? Personne ne peut dire. Cela dépend de la qualité de votre vidéo d'entrée et de la facilité d'encodage de la vidéo.

Pour forcer un débit au cours de la conversion, procédez comme suit, par exemple: pour constante 1 MBit/s:

ffmpeg -i in.m4v -c:v libvpx -b:v 1M -c:a libvorbis out.webm

Le codeur libvpx peut également fonctionner avec une qualité variable en utilisant les options -qmin, -qmax:

ffmpeg -i in.m4v -c:v libvpx -qmin 10 -qmax 42 -c:a libvorbis out.webm

Utilisez des valeurs plus faibles pour les deux paramètres afin d’améliorer la qualité. Habituellement, FFmpeg les définit à 2/31, mais WebM a besoin d'une échelle différente ici, autant que je sache.

3
slhck