Cara Meningkatkan Kualitas Video dengan FFmpeg: Scaling, Denoising, Stabilisasi

INEZA Felin-Michel

INEZA Felin-Michel

10 April 2026

Cara Meningkatkan Kualitas Video dengan FFmpeg: Scaling, Denoising, Stabilisasi

Apidog untuk Perusahaan

Penerapan On-Premises

SSO & RBAC

Sesuai SOC 2

Jelajahi Apidog Enterprise

TL;DR

FFmpeg meningkatkan resolusi video dengan -vf "scale=1920:1080:flags=lanczos" — Lanczos adalah algoritma penskalaan terbaik untuk upscaling. Untuk denoisifikasi, hqdn3d mengurangi grain sambil mempertahankan detail tepi. Untuk stabilisasi, vidstab menangani guncangan kamera melalui proses dua tahap. Gabungkan ketiganya dalam satu rantai filter untuk alur kerja peningkatan kualitas.

Pendahuluan

Peningkatan kualitas video dengan FFmpeg lebih dari sekadar mengubah resolusi. Peningkatan sejati menggabungkan upscaling resolusi dengan denoisifikasi cerdas dan stabilisasi opsional. Setiap langkah menargetkan masalah kualitas yang berbeda: rekaman yang buram atau berpiksel, frame yang berbintik atau berisik, dan gerakan kamera yang goyah.

Panduan ini mencakup setiap teknik secara independen dan menunjukkan cara menggabungkannya.

button

Algoritma penskalaan

Algoritma penskalaan menentukan bagaimana FFmpeg mengisi piksel baru saat upscaling. Pilihan ini memiliki efek yang terlihat pada kualitas output.

Algoritma Kecepatan Kualitas Terbaik untuk
neighbor Tercepat Terendah Seni piksel
bilinear Cepat Rendah Penting kecepatan
bicubic Sedang Baik Downscaling umum
lanczos Lebih lambat Terbaik Upscaling

Upscale ke 1080p dengan Lanczos:

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

Pertahankan rasio aspek:

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

-2 secara otomatis menghitung tinggi sambil mempertahankan rasio aspek dan memastikan hasilnya dapat dibagi 2.

Penskalaan ke 4K:

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

-preset slow memberi tahu x264 untuk menghabiskan lebih banyak waktu mengoptimalkan kompresi, yang lebih penting pada resolusi yang lebih tinggi.

Denoising dengan hqdn3d

Filter hqdn3d adalah denoisifikasi 3D berkualitas tinggi. Ini menghilangkan grain dan noise sambil mempertahankan detail tepi.

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

Empat parameter: luma_spatial:chroma_spatial:luma_temporal:chroma_temporal

Denoising yang lebih kuat:

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

Nilai yang lebih tinggi menghilangkan lebih banyak noise tetapi dapat mengaburkan detail halus. Uji dengan pengaturan yang berbeda sebelum memproses video lengkap.

Denoising ringan (pertahankan detail):

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

Stabilisasi dengan vidstab

Filter vidstab memerlukan pendekatan dua tahap: pertama menganalisis gerakan, lalu menerapkan stabilisasi.

Instal: Dukungan vidstab tergantung pada build FFmpeg Anda. Periksa dengan ffmpeg -filters | grep vidstab. Di macOS: brew install ffmpeg menyertakannya.

Tahap 1: Analisis gerakan

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

shakiness=8 (1-10): Seberapa besar guncangan kamera yang diharapkan. accuracy=9 (1-15): Akurasi deteksi. -f null - membuang output; kita hanya membutuhkan file .trf.

Tahap 2: Terapkan stabilisasi

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

zoom=1 menambahkan zoom 1% untuk mengkompensasi pemotongan tepi yang disebabkan oleh stabilisasi. Tingkatkan jika muncul batas hitam. smoothing=10 mengontrol seberapa halus jalur kamera (lebih tinggi = lebih halus).

Stabilisasi yang lebih agresif:

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

optzoom=1 secara otomatis mengoptimalkan zoom untuk menghindari batas.

Alur kerja peningkatan kualitas gabungan

Jalankan ketiga operasi bersama-sama dalam satu rantai filter:

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

Terapkan urutan ini: denoise terlebih dahulu (menghilangkan artefak yang mungkin memengaruhi penskalaan), lalu skala, lalu stabilkan. Ini menghindari penskalaan noise ke resolusi yang lebih tinggi.

Catatan: Jalankan tahap vidstabdetect terlebih dahulu sebelum menggunakan alur kerja gabungan ini.

Filter penajaman

Jika rekaman terlihat buram daripada berisik, penajaman dapat membantu:

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

Parameter: lx:ly:la:cx:cy:ca (ukuran dan jumlah luma/kroma)
lx:ly — ukuran matriks luma (piksel)
la — jumlah luma (positif = menajamkan, negatif = memburamkan)
cx:cy:ca — ekuivalen kroma

Untuk penajaman ringan: unsharp=3:3:0.5:3:3:0.0
Untuk penajaman kuat: unsharp=5:5:2.5:5:5:0.0

Pertimbangan kinerja

Operasi peningkatan membutuhkan komputasi berat. Estimasi waktu pemrosesan untuk video 1080p berdurasi 10 menit:

Gunakan -preset untuk menyeimbangkan kecepatan encoding vs. ukuran file:

Untuk pemrosesan batch, jalankan beberapa file secara bersamaan atau gunakan parallel:

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

Menghubungkan ke API upscaling video AI

Untuk upscaling bertenaga AI (yang menghasilkan hasil lebih baik daripada filter FFmpeg untuk rekaman berkualitas rendah atau rusak), API khusus tersedia di samping alat FFmpeg.

WaveSpeedAI menawarkan model upscaling AI yang menggunakan neural upscaling daripada filter algoritmik:

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
}

Uji ini dengan Apidog sebelum diintegrasikan:

Tambahkan pernyataan (assertions):

Status code is 200
Response body has field id

Lakukan polling pada endpoint status untuk penyelesaian, lalu bandingkan output AI-upscaled dengan output Lanczos FFmpeg. Upscaling AI menangani tekstur dan detail halus lebih baik daripada metode algoritmik; FFmpeg lebih cepat dan gratis.

Gunakan FFmpeg untuk pekerjaan kualitas standar dan upscaling AI berbasis API untuk rekaman di mana kualitas paling penting.

FAQ

Apakah Lanczos lebih baik daripada bicubic untuk semua kasus?
Untuk upscaling, ya. Untuk downscaling, bicubic seringkali lebih cepat dengan kualitas yang sebanding. Lanczos secara komputasi lebih mahal.

Apakah vidstab berfungsi pada rekaman ponsel?
Ya. Rekaman ponsel seringkali paling diuntungkan dari stabilisasi. Parameter shakiness harus diatur tinggi (8-10) untuk video ponsel genggam.

Berapa banyak zoom yang diperlukan untuk menyembunyikan batas stabilisasi?
Biasanya 3-8% tergantung seberapa goyah sumbernya. Atur optzoom=1 agar FFmpeg menghitungnya secara otomatis.

Bisakah FFmpeg meningkatkan rekaman sejarah resolusi rendah?
Filter FFmpeg membantu tetapi memiliki batasan. Alat upscaling berbasis AI (seperti ESRGAN atau API peningkatan video khusus) menghasilkan hasil yang jauh lebih baik pada rekaman yang sangat terdegradasi.

Apakah denoising memperlambat pemutaran?
Tidak. Denoising adalah langkah pemrosesan selama konversi, bukan efek real-time. Video output diputar secara normal.

Mengembangkan API dengan Apidog

Apidog adalah alat pengembangan API yang membantu Anda mengembangkan API dengan lebih mudah dan efisien.

Cara Meningkatkan Kualitas Video dengan FFmpeg: Scaling, Denoising, Stabilisasi