Vous pouvez aussi le faire avec avconv en vous basant sur
avconv -i <sourcefile> -c:v libx264 -crf 23 output.mp4
vous pouvez ajuster la qualité vers le haut en réduisant le facteur crf (23 dans l'exemple) et vers le bas en l'augmentant.
Les valeurs peuvent être comprises entre 0 et 51, les valeurs les plus basses permettant d'obtenir une meilleure qualité (au prix d'une taille de fichier plus importante). Les valeurs normales se situent entre 18 et 28. La valeur par défaut de x264 est 23, vous pouvez donc l'utiliser comme point de départ.
Un script qui devrait vous permettre de passer à un format différent sans perte de qualité (mais avec peu ou pas de réduction de taille) serait
#!/bin/bash
echo "This script will attempt to copy the video and audio streams of all non-mkv files in the current directory to a mkv video container of the same name as the sources without overwriting."
read -p "Press any key to continue or CTRL-C to cancel"
for f in *.*
do
name=$(echo "$f" | sed 's/\.[^\.]*$//')
ext=$(echo "$f" | sed 's/^.*\.//')
echo "$f is made up of the base $name and ends with $ext"
target="$name.mkv"
echo target = $target
if [ "$f" = "$target" ];
then
echo "$f=$target skipping overwrite"
else
avconv -i "$f" -c:a copy -c:v copy "$name.mkv"
fi
done
Notez que les codecs audio et vidéo utilisés dans ce script sont les suivants copy
Il n'y a donc pas lieu de procéder à un réencodage. Toute économie de taille sera minime et ne sera que le résultat d'un conteneur plus efficace que celui utilisé précédemment. Pour obtenir une réduction de la taille, un réencodage est nécessaire et vous devez ajuster le script en remplaçant c:v copy
con -c:v libx264 -crf 23
(en adaptant la valeur de -crf à vos besoins, comme indiqué ci-dessus). N'hésitez pas à commenter ou à supprimer les lignes d'écho superflues.
Note : Les formats que vous mentionnez "mp4, flv, m4v, mpg, mov, avi" sont des conteneurs et n'ont que peu ou pas d'influence sur les codecs utilisés pour encoder les flux qu'ils contiennent. Une discussion sur le réencodage pour la réduction de la taille nécessiterait la connaissance des codecs contenus dans les conteneurs et devrait être évaluée au cas par cas.
Sources : Tests et http://slhck.info/articles/crf