Skip to content

Cum să folosești codecul H.264 cu FFmpeg

DodaTech Updated 2025-01-15 3 min read

In this tutorial, you'll learn about Cum să folosești codecul H.264 cu FFmpeg. We cover key concepts, practical examples, and best practices.

Problema

Video codat cu H.264 are calitate slabă, fișierul este prea mare, sau parametrii libx264 nu sunt optimizați pentru scenariul tău (viteză vs. calitate). Codecul H.264 este cel mai utilizat standard de compresie video, iar FFmpeg oferă acces la encoderul libx264 prin parametri specifici.

Soluția Rapidă

Fix 1: Encode de bază cu H.264

GREȘIT — fără specificarea parametrilor libx264:

ffmpeg -i input.mp4 -c:v libx264 output.mp4

CORECT — cu parametri optimi:

ffmpeg -i input.mp4 -c:v libx264 -preset medium -crf 23 -c:a aac output.mp4

Fix 2: preset-urile libx264

# Viteză maximă, calitate redusă
ffmpeg -i input.mp4 -c:v libx264 -preset ultrafast -crf 23 output.mp4

# Balanță între viteză și calitate (recomandat)
ffmpeg -i input.mp4 -c:v libx264 -preset medium -crf 23 output.mp4

# Calitate maximă, viteză redusă
ffmpeg -i input.mp4 -c:v libx264 -preset veryslow -crf 23 output.mp4

Ordinea preset-urilor de la rapid la lent: ultrafast, superfast, veryfast, faster, fast, medium, slow, slower, veryslow.

Fix 3: Controlul calității cu CRF

# CRF 18 — calitate vizual aproape identică cu sursa
ffmpeg -i input.mp4 -c:v libx264 -preset slow -crf 18 output.mp4

# CRF 23 — calitate bună, dimensiune rezonabilă (implicit)
ffmpeg -i input.mp4 -c:v libx264 -preset slow -crf 23 output.mp4

# CRF 28 — calitate redusă, fișier mic
ffmpeg -i input.mp4 -c:v libx264 -preset slow -crf 28 output.mp4

Fix 4: Bitrate constant (pentru streaming)

ffmpeg -i input.mp4 -c:v libx264 -b:v 2M -maxrate 2M -bufsize 4M output.mp4

Fix 5: Profile H.264

# Baseline — compatibilitate maximă (dispozitive vechi)
ffmpeg -i input.mp4 -c:v libx264 -profile:v baseline -level 3.0 output.mp4

# Main — balanță
ffmpeg -i input.mp4 -c:v libx264 -profile:v main -level 4.0 output.mp4

# High — calitate maximă (recomandat pentru HD)
ffmpeg -i input.mp4 -c:v libx264 -profile:v high -level 4.1 output.mp4

Fix 6: Tune pentru conținut specific

# Conținut film (scene similare)
ffmpeg -i input.mp4 -c:v libx264 -tune film output.mp4

# Animație
ffmpeg -i input.mp4 -c:v libx264 -tune animation output.mp4

# Streaming (minimizare latență)
ffmpeg -i input.mp4 -c:v libx264 -tune zerolatency output.mp4

Folosește DodaTech Video Optimizer pentru a testa diferite preset-uri și a găsi echilibrul optim între calitate și dimensiune.

Prevenție

  • Alege preset-ul în funcție de timpul disponibil: medium pentru uz general, veryslow pentru arhivare.
  • Folosește CRF în loc de bitrate fix pentru calitate constantă.
  • Setează profile și level-uri corect pentru dispozitivele țintă.
  • Folosește -tune pentru conținut specific (film, animație, screencast).

Greșeli Comune cu H.264

  1. Folosirea -q:v în loc de -crf — parametrul -q:v nu funcționează cu libx264; trebuie -crf.
  2. Nespecificarea profile-ului pentru dispozitive mobile — baseline/profile prea înalt cauzează playback eșuat pe dispozitive vechi.
  3. Preset-ul ultrafast pentru producție — reduce semnificativ calitatea la același bitrate.

Aceste greșeli apar frecvent în cod FFmpeg real. Contribuitorii DodaTech au identificat aceste patternuri prin analiza proiectelor open-source și a sistemelor de producție.

Exercițiu Practic

Scrie o comandă FFmpeg care encodează un videoclip folosind libx264 cu preset veryslow, CRF 20, profil High 4.1 și tune film, salvând fișierul de ieșire ca film_encoded.mp4.

Acest exercițiu întărește conceptele acoperite în acest ghid. Încearcă să-l implementezi înainte de a verifica soluțiile online.

FAQ

### Ce preset ar trebui să folosesc?

Pentru uz general, medium oferă cel mai bun echilibru viteză-calitate. Pentru arhivare, veryslow reduce dimensiunea cu 5-10% față de medium. Pentru testare rapidă, folosește veryfast.

Ce înseamnă CRF?

CRF (Constant Rate Factor) controlează calitatea pe o scară 0-51. Valorile mai mici înseamnă calitate mai bună (fișier mai mare). 18-28 este intervalul practic; 23 este valoarea implicită.

Care este diferența dintre baseline, main și high?

Baseline este pentru dispozitive vechi și videoconferință. Main adaugă suport pentru B-frame-uri. High oferă cea mai bună compresie și este standardul pentru video HD modern.

Built by the developers of DodaTech

Doda Browser, DodaZIP & Durga Antivirus Pro