mercredi 22 novembre 2017

Antisèche ffmpeg

Je me dépêche de copier depuis mon historique les commandes ffmpeg qui fonctionnent.

Voici pour encoder une vidéo à partir d'une série d'images de type 0001.png, 0002.png, etc. Les valeurs à bidouiller sont -r, pour la fréquence de trames, et le -crf, pour la qualité, 0 étant sans pertes, et 15 une bonne valeur intermédiaire.

ffmpeg -r 30 -f image2 -i %04d.png -vcodec libx264 -crf 0 -pix_fmt yuv420p output.mp4

Voici comment capturer son écran, avec l'audio Jack. Il faudra, une fois la capture commencée, connecter correctement la sortie désirée au nouveau nœud d'entrée correspondant à la capture. L'on notera la résolution contrôlée via le -s, et la qualité contrôlée via le -qp (mais pour une capture, mieux vaut du sans pertes). Juste en dessous, la même commande, mais avec la capture alsa standard habituelle.

ffmpeg -f jack -ac 2 -i pulse -f x11grab -r 30 -s 1280x1024 -i :0.0 -acodec pcm_s16le -vcodec libx264 -qp 0 -preset ultrafast -threads 0 output.mkv

ffmpeg -f alsa -ac 2 -i pulse -f x11grab -r 30 -s 1280x1024 -i :0.0 -acodec pcm_s16le -vcodec libx264 -qp 0 -preset ultrafast -threads 0 output.mkv

Enfin, après avoir capturé la vidéo, il est possible de la ré-encoder dans un mode plus agressif, sans perte de qualité, en changeant le -preset. Les captures étant particulièrement gourmandes en espace disque, c'est toujours quelques gigas de gagnés.

ffmpeg -i grosse_video.mkv -c:v libx264 -crf 0 -preset veryslow moins_grosse_video.mkv

Aucun commentaire: