Améliorer et Upscaler la Qualité Vidéo avec FFmpeg: Mise à l'échelle, Réduction du Bruit, Stabilisation

INEZA Felin-Michel

INEZA Felin-Michel

10 April 2026

Améliorer et Upscaler la Qualité Vidéo avec FFmpeg: Mise à l'échelle, Réduction du Bruit, Stabilisation

Apidog pour les entreprises

Déploiement sur site

SSO & RBAC

Conforme SOC 2

Explorer Apidog Enterprise

Résumé

FFmpeg agrandit la résolution vidéo avec -vf "scale=1920:1080:flags=lanczos" — Lanczos est le meilleur algorithme de mise à l'échelle pour l'agrandissement. Pour le débruitage, hqdn3d réduit le grain tout en préservant les détails des contours. Pour la stabilisation, vidstab gère les tremblements de la caméra via un processus en deux passes. Combinez les trois dans une seule chaîne de filtres pour une pipeline d'amélioration de la qualité.

Introduction

L'amélioration de la qualité vidéo avec FFmpeg va au-delà du simple changement de résolution. Une véritable amélioration combine l'agrandissement de la résolution avec un débruitage intelligent et une stabilisation optionnelle. Chaque étape cible un problème de qualité différent : des séquences floues ou pixélisées, des images granuleuses ou bruyantes, et des mouvements de caméra tremblants.

Ce guide couvre chaque technique indépendamment et montre comment les combiner.

button

Algorithmes de mise à l'échelle

L'algorithme de mise à l'échelle détermine comment FFmpeg remplit les nouveaux pixels lors de l'agrandissement. Le choix a un effet visible sur la qualité de la sortie.

Algorithme Vitesse Qualité Idéal pour
neighbor Le plus rapide La plus faible Pixel art
bilinear Rapide Faible Critique pour la vitesse
bicubic Moyenne Bonne Réduction d'échelle générale
lanczos Plus lent La meilleure Agrandissement

Agrandir à 1080p avec Lanczos :

ffmpeg -i input_720p.mp4 -vf "scale=1920:1080:flags=lanczos" -c:v libx264 -crf 20 output_1080p.mp4

Maintenir le rapport d'aspect :

ffmpeg -i input.mp4 -vf "scale=1920:-2:flags=lanczos" -c:v libx264 -crf 20 output.mp4

-2 calcule automatiquement la hauteur tout en maintenant le rapport d'aspect et en s'assurant que le résultat est divisible par 2.

Mettre à l'échelle en 4K :

ffmpeg -i input.mp4 -vf "scale=3840:-2:flags=lanczos" -c:v libx264 -crf 18 -preset slow output_4k.mp4

-preset slow indique à x264 de passer plus de temps à optimiser la compression, ce qui est plus important aux résolutions plus élevées.

Débruitage avec hqdn3d

Le filtre hqdn3d est un débruitage 3D de haute qualité. Il supprime le grain et le bruit tout en préservant les détails des contours.

ffmpeg -i noisy_video.mp4 -vf "hqdn3d=4:3:6:4.5" -c:v libx264 -crf 20 denoised.mp4

Les quatre paramètres : luma_spatial:chroma_spatial:luma_temporal:chroma_temporal

Débruitage plus fort :

ffmpeg -i grainy.mp4 -vf "hqdn3d=10:8:15:10" -c:v libx264 -crf 20 clean.mp4

Des valeurs plus élevées suppriment plus de bruit mais peuvent flouter les détails fins. Testez avec différents réglages avant de traiter la vidéo complète.

Débruitage léger (préserve les détails) :

ffmpeg -i video.mp4 -vf "hqdn3d=2:1.5:3:2.5" -c:v libx264 -crf 20 output.mp4

Stabilisation avec vidstab

Le filtre vidstab nécessite une approche en deux passes : d'abord analyser le mouvement, puis appliquer la stabilisation.

Installation : Le support de vidstab dépend de votre version de FFmpeg. Vérifiez avec ffmpeg -filters | grep vidstab. Sur macOS : brew install ffmpeg l'inclut.

Passe 1 : Analyser le mouvement

ffmpeg -i shaky_video.mp4 -vf "vidstabdetect=stepsize=6:shakiness=8:accuracy=9:result=transform.trf" -f null -

shakiness=8 (1-10) : Degré de tremblement de la caméra à anticiper. accuracy=9 (1-15) : Précision de la détection. Le -f null - ignore la sortie ; nous n'avons besoin que du fichier .trf.

Passe 2 : Appliquer la stabilisation

ffmpeg -i shaky_video.mp4 -vf "vidstabtransform=input=transform.trf:zoom=1:smoothing=10" -c:v libx264 -crf 20 stabilized.mp4

zoom=1 ajoute un zoom de 1% pour compenser le rognage des bords causé par la stabilisation. Augmentez si des bordures noires apparaissent. smoothing=10 contrôle la fluidité du mouvement de la caméra (plus élevé = plus fluide).

Stabilisation plus agressive :

ffmpeg -i video.mp4 -vf "vidstabtransform=input=transform.trf:zoom=3:smoothing=30:optzoom=1" -c:v libx264 -crf 20 stable.mp4

optzoom=1 optimise automatiquement le zoom pour éviter les bordures.

Pipeline d'amélioration de la qualité combinée

Exécutez les trois opérations ensemble dans une seule chaîne de filtres :

ffmpeg -i source.mp4 \
  -vf "hqdn3d=4:3:6:4.5,scale=1920:-2:flags=lanczos,vidstabtransform=input=transform.trf:zoom=1:smoothing=10" \
  -c:v libx264 -crf 18 -preset slow \
  -c:a copy \
  enhanced.mp4

Appliquez cet ordre : débruitage d'abord (supprime les artefacts qui pourraient affecter la mise à l'échelle), puis mise à l'échelle, puis stabilisation. Cela évite de mettre à l'échelle le bruit vers une résolution plus élevée.

Remarque : Exécutez d'abord la passe vidstabdetect avant d'utiliser cette pipeline combinée.

Filtre d'accentuation

Si les séquences semblent floues plutôt que bruyantes, l'accentuation peut aider :

ffmpeg -i video.mp4 -vf "unsharp=5:5:1.5:5:5:0.5" -c:v libx264 -crf 20 sharpened.mp4

Paramètres : lx:ly:la:cx:cy:ca (tailles et quantités luma/chroma)
lx:ly — taille de la matrice luma (pixels)
la — quantité luma (positif = accentuer, négatif = flouter)
cx:cy:ca — équivalents chroma

Pour une accentuation légère : unsharp=3:3:0.5:3:3:0.0
Pour une accentuation forte : unsharp=5:5:2.5:5:5:0.0

Considérations sur les performances

Les opérations d'amélioration sont gourmandes en calcul. Estimations du temps de traitement pour une vidéo 1080p de 10 minutes :

Utilisez -preset pour équilibrer la vitesse d'encodage et la taille du fichier :

Pour le traitement par lots, exécutez plusieurs fichiers simultanément ou utilisez parallel :

ls *.mp4 | parallel ffmpeg -i {} -vf "scale=1920:-2:flags=lanczos" -c:v libx264 -crf 20 enhanced_{/}

Connexion aux API d'agrandissement vidéo par IA

Pour l'agrandissement basé sur l'IA (qui produit de meilleurs résultats que les filtres de FFmpeg pour les séquences de basse qualité ou endommagées), des API spécialisées existent à côté des outils de FFmpeg.

WaveSpeedAI propose des modèles d'agrandissement par IA qui utilisent l'agrandissement neuronal plutôt que des filtres algorithmiques :

POST https://api.wavespeed.ai/api/v2/wavespeed-ai/video-enhance
Authorization: Bearer {{WAVESPEED_API_KEY}}
Content-Type: application/json

{
  "video_url": "https://storage.example.com/source-video.mp4",
  "scale": 2,
  "enhance": true
}

Testez ceci avec Apidog avant l'intégration :

Ajoutez des assertions :

Le code de statut est 200
Le corps de la réponse contient le champ id

Interrogez le point de terminaison de statut pour la complétion, puis comparez la sortie agrandie par IA avec la sortie Lanczos de FFmpeg. L'agrandissement par IA gère mieux les textures et les détails fins que les méthodes algorithmiques ; FFmpeg est plus rapide et gratuit.

Utilisez FFmpeg pour les travaux de qualité standard et l'agrandissement par IA basé sur API pour les séquences où la qualité est primordiale.

FAQ

Lanczos est-il meilleur que bicubic dans tous les cas ?
Pour l'agrandissement, oui. Pour la réduction d'échelle, bicubic est souvent plus rapide avec une qualité comparable. Lanczos est plus coûteux en calcul.

vidstab fonctionne-t-il sur les séquences de téléphone ?
Oui. Les séquences de téléphone bénéficient souvent le plus de la stabilisation. Le paramètre shakiness doit être réglé sur une valeur élevée (8-10) pour les vidéos de téléphone filmées à la main.

Quel niveau de zoom est nécessaire pour masquer les bordures de stabilisation ?
Généralement 3-8% selon le degré de tremblement de la source. Définissez optzoom=1 pour que FFmpeg le calcule automatiquement.

FFmpeg peut-il améliorer les séquences historiques basse résolution ?
Les filtres de FFmpeg aident mais ont des limites. Les outils d'agrandissement basés sur l'IA (comme ESRGAN ou les API spécialisées d'amélioration vidéo) produisent des résultats significativement meilleurs sur les séquences fortement dégradées.

Le débruitage ralentit-il la lecture ?
Non. Le débruitage est une étape de traitement pendant la conversion, pas un effet en temps réel. La vidéo de sortie est lue normalement.

Pratiquez le Design-first d'API dans Apidog

Découvrez une manière plus simple de créer et utiliser des API