Il freno a mano utilizza l'encoder x264 per la conversione video. C'è un sito con una panoramica di tutte le opzioni x264 e le loro controparti FFmpeg . Tuttavia, questi sono un po 'deprecati e alcune di queste opzioni non funzionano più o potrebbero essere state rinominate. Dovresti usare i profili x264 per la maggior parte delle opzioni di dettaglio, ma ci arriveremo.
Molte delle opzioni di base del freno a mano (ad esempio la frequenza dei fotogrammi) non sono specifiche per x264 e sono sparse nella documentazione online di FFmpeg .
Prima di iniziare, controlla di utilizzare una versione FFmpeg recente. Il loro sito di download ha build statiche per tutti i principali sistemi operativi.
Andiamo:
--input "d:\input.mpg" --output "d:\output.mp4"
La sintassi di FFmpeg è ffmpeg -i input.mpg … d:\output.mp4
.
--rate 29.97
Specificare la frequenza dei fotogrammi video con -r 29.97
. (Il freno a mano --cfr
imposta solo un frame rate costante. Non è necessario qui).
--arate 44.1
Impostare la frequenza di campionamento audio con -ar 44100
(in Hz).
--format mp4
Non necessario perché FFmpeg sa che vuoi MP4.
--width 1920 --height 1080 --custom-anamorphic --display-width 1920 --keep-display-aspect --modulus 8 --crop 0:0:0:0
Ciò non fa nulla a parte impostare le dimensioni su 1920 × 1080. In FFmpeg, farlo con -s:v 1920x1080
, o se si desidera utilizzare i filtri, -filter:v "scale=1920:1080"
.
--encoder x264 --vb 5200
Impostare l'encoder con -c:v libx264
e la velocità in bit su costante con -b:v 5200K
. Nota che non siamo ancora presenti quando si tratta di impostazioni di qualità.
--aencoder faac --ab 128 --mixdown stereo
Simile a sopra, con -c:a libfaac -b:a 128K -ac 2
. Si noti che FAAC non è più supportato in FFmpeg; utilizzare invece l'encoder FFmpeg integrato con -c:a aac -b:a 128K
.
-x bitrate=5200:vbv-bufsize=5200:vbv-maxrate=5200
Questo imposta la modalità di codifica su VBV che ha come obiettivo uno scenario di streaming anziché solo un bitrate costante o una qualità costante. La qualità costante è anche chiamata CRF , il valore predefinito per x264 - si chiama "Rate Factor" nel freno a mano. Mentre CRF di solito ti offre i migliori codici di qualità, la modalità VBV ti offre un file che è più adatto per lo streaming online o per alcuni dispositivi con capacità limitate.
Per impostare VBV, utilizzare le opzioni -maxrate 5200K
e -bufsize 5200K
in ffmpeg.
Per impostare CRF, utilizzare -crf 23
in ffmpeg.
level=42
Usa -level 42
. Questo è il livello H.264 .
bframes=2:min-keyint=60:keyint=60:ref=4
Impostare il numero di cornici B con -bf 2
. L'intervallo minimo di fotogrammi chiave è impostato con -keyint_min 60
e l'intervallo massimo con -g 60
. Il numero di immagini di riferimento è impostato con -refs 4
.
me=umh:merange=64:subme=7:8x8dct:cabac=1
Queste sono opzioni che puoi impostare in ffmpeg in aggiunta a -x264-params me=umh:merange=64:subme=7:8x8dct:cabac=1
- come qualsiasi altra impostazione dell'encoder x264 che non è direttamente associata alle opzioni di ffmpeg.
Ecco la versione "TL; DR" se sei pigro, non ti preoccupare dei dettagli, o se le cose non funzionano: Usa -preset:v medium
(o lascialo fuori, poiché la preimpostazione media è predefinita). I preset x264 scelgono una serie di opzioni che scambiano la velocità di codifica per l'efficienza di compressione. Stanno comodamente nominati da ultrafast
, superfast
, veryfast
, faster
, fast
, medium
a slow
, slower
e veryslow
. Scegli quello con cui ti senti a tuo agio.
Quindi, per riassumere, la versione lunga:
ffmpeg -i input.mpg -c:v libx264 -r 29.97 -s:v 1920x1080 -b:v 5200K -maxrate 5200K -bufsize 5200K -level 42 -bf 2 -keyint_min 60 -g 60 -refs 4 -x264-params me=umh:merange=64:subme=7:8x8dct:cabac=1 -c:a aac -b:a 128K -ar 44100 d:\output.mp4
O quello breve che userei (con la codifica VBV e alcune opzioni di dettaglio rimosse):
ffmpeg -i input.mpg -c:v libx264 -r 29.97 -s:v 1920x1080 -b:v 5200K -maxrate 5200K -bufsize 5200K -c:a aac -b:a 128K -ar 44100 d:\output.mp4
Passando alla codifica di qualità costante per una conversione per tutti gli usi, utilizzare questo e modificare il -crf
parametro da 18 a 28, dove inferiore indica una qualità migliore e 23 è l'impostazione predefinita:
ffmpeg -i input.mpg -c:v libx264 -r 29.97 -s:v 1920x1080 -crf 23 -c:a aac -b:a 128K -ar 44100 d:\output.mp4