Vorrei specificare un frame rate variabile con un valore MASSIMO, e consentire a libx264 di ridurre il frame rate come meglio crede. L'idea qui è quella di ottenere una compressione extra quando c'è qualcosa come una cornice fissa estesa
A mio avviso, ciò può essere probabilmente in un modo relativamente goffo, ma è indesiderabile per alcune ragioni complesse e controintuitive
Anche se un flusso x264 ha un framerate (s), il frame rate è più un problema a livello di contenitore che uno di codec.
In una codifica VFR passthrough, ci sarà essenzialmente un file di testo che dettaglia la frequenza dei fotogrammi rispetto a quali frame / tempi e, nella codifica di una sorgente, una funzione come tcfile-in o tcfile-out passa i timestamp alla codifica , per mappare le posizioni delle tariffe e mantenere il video soggettivamente coerente dalla fonte.
L'idea a basso framerate è logica, ma non funziona per diversi motivi. Sebbene x264 sia compatibile con VFR con alcune funzionalità, non credo che esista una funzione di analisi che varierà il framerate rispetto al movimento al fine di ridurre le dimensioni del file (in modo analogo ai numerosi controlli bitrate).
Anche la fonte è un problema: le fonti VFR per impostazione predefinita manterranno la loro variabilità del frame, ma apparentemente codificare un file CFR a bitrate variabile (una buona idea a volte, specialmente quando è necessaria la telecine) produrrà semplicemente lo stesso CFR.
Ciò significa che probabilmente dovresti riscrivere il bitrate a mano (ovvero i timestamp di scene lente combinate nel file) o ricorrere a un algoritmo di decimazione del frame come dup, dedup ed esattaDedup per avisynth . Se il tuo video ha un movimento estremamente basso, alcuni fotogrammi (anche la metà?) Verrebbero eliminati. Il problema è che questi algoritmi non sono avanzati e non fanno buone scelte con filmati "di vita reale" su ciò che contribuirà alla codifica migliore.
Inoltre, la rimozione di fotogrammi che contengono elementi come i fotogrammi I e B riduce la quantità di dettagli disponibili nel tempo, il che fa apparire il movimento "irregolare" e può interferire con gli altri parametri video di base e causare artefatti come l'aliasing.
E a causa del modo in cui funzionano i quantizzatori, x264 riduce effettivamente il bitrate in modo sproporzionato ulteriormente in queste scene di movimento lento. A meno che tu non abbia una presentazione di immagini identiche, ci sarà movimento (se solo grano e altri artefatti) e ci sarà una perdita di qualità che non sarebbe visibile senza drastiche modifiche al bitrate.
E infine, la ragione per cui non ci sono molte opzioni per fare ciò che vuoi è che x264 è davvero bravo a gestire il bitrate usando solo la compressione temporale (registrando le modifiche in frame parziali). Passare a 1/2 framerate non ridurrà la dimensione del file a metà; Il 10% è probabilmente un guadagno realistico che ci si aspetta dal movimento lento o dall'animazione.
Quindi, in breve, eliminare il bitrate delle scene statiche farà molto poco per le dimensioni del file, ma aggiungerà una serie di problemi di qualità e sincronizzazione, per non parlare dell'incompatibilità con il software di editing video.
Se vuoi provare un decimatore, potresti essere in grado di limitare il nuovo frame rate massimo usando le opzioni dei livelli , ognuna delle quali ha una risoluzione massima e framerate. Sfortunatamente, dovresti probabilmente lavorare a risoluzioni molto basse per ottenere il tipo di frame rate che desideri, usando i profili. Torna a modificare le tariffe a mano, interamente o per correggere i frame rate che ritieni siano troppo alti. Ad ogni modo, ci vorrà la giocoleria per mantenere il suono sincronizzato con i nuovi framerate se vengono apportate modifiche dopo il processo di codifica quando il file tc viene conservato.
L'aspetto positivo è che passare il tempo a ottimizzare le numerose impostazioni di bitrate produrrà molto di più in termini di gestione delle dimensioni dei file e migliorerà la qualità del video, piuttosto che causare complicazioni per un piccolo guadagno. Preservare l'FPS originale è probabilmente la migliore idea a meno che tu non stia mirando a standard di trasmissione o multimediali. I lettori sono in grado di riprodurre bitrate variabili (a differenza degli editor) e maggiore è il numero di fotogrammi nel video, più fluida è la riproduzione e forse minore è la dimensione del file, a causa di minori cambiamenti nel movimento tra i fotogrammi.
Ecco una raccolta di collegamenti a informazioni sugli standard e discussioni nel forum che dovrebbero aiutare con questo aspetto confuso della codifica:
- strumenti di decimazione avisynth
- switch fps e -r
- x264 Generale (file tc, fps)
- standard dei file timecode
- Livelli e profili
- Riepilogo delle impostazioni CFR / VFR breve e chiaro (sezione "framerate")
doom9, videohelp, ecc. discussioni teoriche
1
2
3
4
5
6
7