Per quelli tra di voi che seguono anche solo distrattamente Doom9, probabilmente sapete già di cosa si parla, ma mi sembra comunque giusto fare un'introduzione.
Avisynth è un utile strumento per chi vuole encodare, talmente utile che ormai se si vogliono fare cose anche solo a livelli pseudo decenti è indispensabile conoscerlo. Tuttavia avisynth presenta numerosissimi problemi, tra i quali i più importanti sono:
- La compatibilità esclusiva con windows, so che esiste avxsynth, ma è progetto nato morto e che non riesce a fornire un supporto adeguato.
- Un linguaggio di scripting obsoleto e complesso, alcune operazioni tranquillamente aggirabili in 2 righe coi linguaggi di alto livello, su avisynth può richiedere svariate righe, con costruzioni di clip e menate varie.
- Uno sviluppo ormai morente, sostanzialmente l'unico dev che fa ancora commit al repo è IanB, tutti gli altri si son ritirati da tempo.
- È single threaded, ovvero non importa se avete 54 core a 3GHz o un pentium D a 3GHz, le performance saranno le stesse in quanto avisynth riconosce un solo core (la versione MT è un bruttissimo hack che chiama processi multipli e che è quindi molto instabile e tende a crashare)
- Inserire nuove feature è praticamente impossibile in quanto il codice è sostanzialmente illeggibile a causa di un pessimo uso dell'inline asm in C++, nessuno riesce a cavarci niente da quel macello.
- Non supporta il VFR, che benché oggigiorno sia raro, non è comunque impossibile trovarlo e se lo trovate con avisynth son dolori
- Non supporta clip con più 8-bit, il che è un male visto che il dither package per manovrare clip a 16-bit è ormai diventato essenziale per chiunque abbia un minimo di conoscenza di avisynth.
- Tanta altra roba...
Per ovviare a questo problema è nato Vapoursynth, che è davvero il futuro ed è scritto in python, ovvero un linguaggio di alto livello molto potente, e che al contrario di Avisynth è compatibile pure con linux e mac, e soprattutto nuove features possono essere aggiunte a runtime in quanto è scriptabile. È un progetto che va avanti da mesi, ma prima di parlarne ho voluto aspettare degli sviluppi concreti e ho parlato molto anche col creatore di questo ambizioso progetto, ma credo che i tempi siano maturi. Vapoursynth supporta pienamente i plugin avisynth della 2.5.8 e tra i plugins nativi ritroviamo:
- dither package che prende il nome di fmtc (che contiene al suo interno kernel di resize, conversione spazio colore e quant'altro tutto per clip >8-bit)
- VIVTC porting del famoso TIVTC di avisynth, contiene quasi tutte le feature originali ed è più veloce, l'unica feature di cui si sente purtroppo la mancanza è la possibilità di usare gli ovr (ivtc manuale)
- generic filters che ricopre sostanzialmente tutto ciò che c'è all'interno dei masktools
- EEDI3, chi lo conosce sa a cosa serve
- NNEDI3, il miglior postprocessor e upscaler di sempre credo
- QTGMC, il miglior filtro di deinterlacciamento
Detto questo si può affermare con certezza che il progetto è a un ottimo punto, l'unico altro pezzo grosso che rimane è riscrivere una versione nativa e ottimizzata degli mvtools (il che velocizzerebbe MOLTISSIMO l'esecuzione di molti filtri come qtgmc). Vi rimando al
sito ufficiale del progetto e al
thread ufficiale su D9 (in lingua inglese), dove potrete seguire gli sviluppi di questo magnifico progetto (tra i più interessanti sicuramente il supporto al GPGPU).
Guida in inglese a Vapoursynth