Skip to content

Cum să folosești two-pass encoding cu FFmpeg

DodaTech Updated 2025-01-15 2 min read

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

Problema

Two-pass encoding analizează videoclipul în prima trecere și distribuie bitrate-ul optim în a doua trecere, oferind cea mai bună calitate pentru un bitrate țintă dat. Fără parametrii corecți, prima trecere poate fi ineficientă sau a doua trecere poate eșua.

Soluția Rapidă

Fix 1: Two-pass H.264 de bază

GREȘIT — o singură trecere fără optimizare:

ffmpeg -i input.mp4 -c:v libx264 -b:v 2M output.mp4
# Distribuția bitrate-ului poate fi suboptimală

CORECT — two-pass encoding:

# Prima trecere
ffmpeg -i input.mp4 -c:v libx264 -b:v 2M -pass 1 -an -f mp4 /dev/null

# A doua trecere
ffmpeg -i input.mp4 -c:v libx264 -b:v 2M -pass 2 -c:a aac -b:a 128k output.mp4

Fix 2: Two-pass H.265

# Prima trecere
ffmpeg -i input.mp4 -c:v libx265 -b:v 1M -pass 1 -an -f mp4 /dev/null

# A doua trecere
ffmpeg -i input.mp4 -c:v libx265 -b:v 1M -pass 2 -c:a aac -b:a 128k output.mp4

Fix 3: Two-pass cu parametri compleți

# Prima trecere
ffmpeg -i input.mp4 -c:v libx264 -preset slow -b:v 2M -maxrate 3M -bufsize 6M \
    -pass 1 -an -f mp4 /dev/null

# A doua trecere
ffmpeg -i input.mp4 -c:v libx264 -preset slow -b:v 2M -maxrate 3M -bufsize 6M \
    -pass 2 -c:a aac -b:a 128k output.mp4

Fix 4: Two-pass cu scalare

# Prima trecere (fără scalare — doar analiză)
ffmpeg -i input.mp4 -c:v libx264 -b:v 2M -pass 1 -an -f mp4 /dev/null

# A doua trecere (cu scalare)
ffmpeg -i input.mp4 -c:v libx264 -b:v 2M -pass 2 -vf "scale=1280:720" -c:a aac output.mp4

Fix 5: Two-pass VP9

# Prima trecere
ffmpeg -i input.mp4 -c:v libvpx-vp9 -b:v 1M -pass 1 -an -f webm /dev/null

# A doua trecere
ffmpeg -i input.mp4 -c:v libvpx-vp9 -b:v 1M -pass 2 -c:a libopus output.webm

Folosește DodaTech Two-Pass Analyzer pentru a compara rezultatele între o singură trecere și two-pass.

Prevenție

  • Prima trecere produce fișiere de statistică (log-1-pass.log, log-2-pass.log).
  • Folosește aceiași parametri video în ambele treceri pentru rezultate consistente.
  • Prima trecere poate fi mai rapidă (fără audio, preset mai rapid).
  • Curăță fișierele de log după codare.

Greșeli Comune cu Two-Pass

  1. Parametri diferiți între treceri-preset, -crf sau alți parametri diferiți între prima și a doua trecere cauzează rezultate suboptimale.
  2. Uitarea parametrului -pass 1 / -pass 2 — fără -pass, a doua trecere nu folosește informațiile colectate.
  3. Folosirea CRF în two-pass — CRF nu funcționează cu two-pass; CRF este o metodă separată.

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 în două treceri pentru H.264 la 3Mbps, preset slow, maxim 4.5Mbps, bufsize 9Mbps, cu scalare la 1920x1080.

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

FAQ

### Când ar trebui să folosesc two-pass?

Când ai un bitrate țintă strict (de exemplu, pentru DVD, streaming cu bandă limitată) și vrei cea mai bună calitate posibilă la acel bitrate.

Cât de mult îmbunătățește two-pass calitatea?

Two-pass poate îmbunătăți calitatea cu 5-15% față de o singură trecere la același bitrate, prin alocarea mai inteligentă a bitrate-ului în scenele complexe.

Two-pass dublează timpul de codare?

Aproximativ. Prima trecere este de obicei mai rapidă (fără procesare audio, preset mai rapid). În total, two-pass durează cu 60-80% mai mult decât o singură trecere.

Built by the developers of DodaTech

Doda Browser, DodaZIP & Durga Antivirus Pro