Cum să folosești two-pass encoding cu FFmpeg
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
- Parametri diferiți între treceri —
-preset,-crfsau alți parametri diferiți între prima și a doua trecere cauzează rezultate suboptimale. - Uitarea parametrului
-pass 1/-pass 2— fără-pass, a doua trecere nu folosește informațiile colectate. - 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
Built by the developers of DodaTech
Doda Browser, DodaZIP & Durga Antivirus Pro