Recensubs HQ

La vera guida a come cavolo si encoda per davvero - Episodio 3: Indexing e altro (teoria e pratica), guida sponsorizzata da Shin Vision/Fool Frame/EXA Media/GSL

« Older   Newer »
  Share  
view post Posted on 24/1/2014, 01:38     +1   -1
Avatar

Bimbosp

Group:
Administrator
Posts:
9,780
Reputation:
+929
Location:
Gallarate (VA)

Status:


C'eravamo lasciati ormai più di due mesi fa con la promessa di installare alcuni dei programmi che andremo ad utilizzare, quindi direi che è anche il momento di portarci un po' avanti. Del resto a dicembre ho rellato Love Lab visto che facevate storie.

Consci di cosa sia un pattern, di come riconoscerlo, e di come trattare le situazioni più comuni a livello teorico, il primo passo a questo punto è anzitutto caricare la sorgente a nostra disposizione per poterci poi lavorare a dovere all'atto pratico.



Prologo: If it ain't broke, don't fix it

Dato che la situazione con avs+ e vsynth è ancora un po' quella che è, per questa guida faremo ancora riferimento ad avisynth come software di base, che alla fin della fiera fa il suo sporco lavoro in maniera più che soddisfacente.

La versione che mi sento di suggerire in questo momento è la più recente, ovvero l'alpha 5, reperibile da qui:
http://sourceforge.net/projects/avisynth2/...Alpha_Releases/

Assieme ad AVS, andremo ad utilizzare di sicuro DGIndex, di cui consiglio la build SSE reperibile da qui:
http://hank315.nl/

Oltre a questo, per chi ha una gpu nvidia con supporto PureVideo VP2 o superiore (fate riferimento a questa tabella), e abbia 15 dollari da "donare" a neuron2, un altro strumento utilissimo in certe situazioni è DGDecNV:
http://neuron2.net/dgdecnv/dgdecnv.html

Per gli altri, e per situazioni in cui ci siano altri file da caricare, la soluzione migliore attualmente è utilizzare LWLibavVideoSource. Per riferimento:
http://avisynth.nl/index.php/LSMASHSource (prendete la versione 32bit-Libav)

Bene, ora installiamo il tutto.

Per Avisynth 2.6a5, l'installazione Standard va più che bene.
Per DGIndex, scompattate lo zip in una cartella a vostra scelta e copiate il file DGDecode.dll nella cartella plugins del percorso di installazione di Avisynth, che in un sistema operativo a 64bit normalmente è "C:\Program Files (x86)\AviSynth 2.5\plugins\".
Per DGDecNV fate lo stesso, con la differenza che la dll da copiare si chiama DGDecodeNV.dll ─ per il procedimento di attivazione del software fate riferimento al sito ufficiale (e non ditemi che non capite l'inglese, pls...).
Per L-SMASH-Works, avrete bisogno del file LSMASHSource.dll presente nella cartella AviSynth del file .7z, sempre da incollare nella cartella plugins di avisynth; ricordatevi inoltre di copiare il file msvcr120.dll da qualche parte nel vostro PATH di Windows, in genere si raccomanda di incollare in "C:\Windows\SysWOW64" (che sarebbe la cartella per le .dll 32bit su OS 64bit) o "C:\Windows\System32" (per gli OS 32bit), ma correggetemi se sbaglio.

Con tutto questo installato, è giunto il momento di installare un altro software che può sempre tornare utile, ovvero MediaInfo:
http://mediaarea.net/it/MediaInfo
Prestate attenzione durante l'installazione, perché l'installer cercherà di rifilarvi del crapware nel mentre, quindi non fatevi fregare. Io ho avvisato.
Avviatelo subito, perché alla prima installazione dovrete configurare brevemente le preferenze. Nulla di complesso, semplicemente scegliete l'italiano come lingua (o usate pure l'inglese se volete), usate Testo come formato destinazione e assicuratevi che tutti e quattro i check siano attivi. Le altre tab ignoratele tranquillamente. A questo punto date l'OK e chiudete pure MediaInfo.

Ok, ora i preparativi sono completi, cominciamo.



Capitolo 1: diversi formati, diversi procedimenti

Se avete letto i primi due episodi, saprete bene che questa guida non è pensata per chi vuole fare due click col "programmino verde", quindi in linea generale scordatevi di usare raw .mp4/.mkv: qui si fa tutto come si deve.
Cominciamo con un po' di teoria: formati e codec sono due cose diverse.

L'insieme di regole che formano uno standard con un nome preciso si definiscono formato.
L'implementazione dello standard a livello di codice per l'effettivo impiego è il codec.

E quindi AVC/H.264/MPEG-4 Part 10 Video è un formato video. X264 è un encoder video.
Capita poi che l'impementazione ufficiale di un formato abbia talvolta il nome identico al formato stesso, quindi per esempio il formato FLAC ha come codec FLAC.

Questa distinzione non è fondamentale all'atto pratico, ma è utile per evitare confusione, soprattutto perché spesso capita che si utilizzi la parola codec per definire un formato, per quanto questa sia in realtà un'imprecisione.

Un'altra distinzione, questa sì più importante, è quella da fare tra container, formati audio e formati video.
Di base il container non è altro che una scatola, al cui interno vengono riposti gli oggetti, che sono i vari flussi audio/video/salcazzi. In base alla scatola ci possono stare dentro più o meno cose, e questo quindi definisce la flessibilità e l'utilità di un container rispetto a un altro.

Formati container comuni che avrete senza dubbio presente sono .MKV, .MP4 e .AVI.
Formati video sono invece AVC, ASP, VP8, UTVideo e altri.
Formati audio sono AAC, FLAC, Opus, Vorbis, MP3 e così via.

È senza dubbio possibile tenere a sé stante un flusso video o audio senza avere un container: l'utilità del container è dire ad un sistema di playback che un particolare flusso video va accoppiato a quell'altro flusso audio per riprodurre il tutto assieme.

Ovviamente ci sono anche diversi formati di sottotitoli, capitoli e altro, ma questo è un discorso che al momento ci interessa poco e male che vada verrà ripreso più avanti.

Con queste idee in testa, è bene capire quali sono i formati con cui ci troveremo ad avere a che fare più spesso.

Per registrazioni televisive, comunemente avremo a che fare con file con estensione .ts o .trp.
Per i DVD, avremo per le mani file con estensione .VOB.
Per i Blu-ray Disc, i file saranno con estensione .m2ts.

Visto che encodiamo animu, in tv ci ritroveremo formati video MPEG Video oppure AVC.
Con i DVD, ci si ritrova con l'MPEG Video come formato video.
Con i BD, potreste trovarvi con AVC (oggigiorno più comune), MPEG Video (relativamente comune nei primissimi BD), oppure VC-1 (tendenzialmente BD del primo periodo, quando ancora c'era la guerra tra BD e HDDVD).

Riguardo ai formati audio, in TV wapanese comunemente troverete l'AAC.
Nei DVD, si va dall'AC3 al PCM passando per il DTS o anche MPEG. Generalmente nei DVD giapponesi troverete o LPCM o AC3.
Nei BD oltre ai formati audio dei DVD ci sono anche principalmente DTS-HD MA e TrueHD. Di norma nei BD giapponesi troverete LPCM, DTS-HD MA o TrueHD.

Per il momento, la cosa che ci interessa di più è capire che formato video abbiamo per le mani, cosa dubbia fondamentalmente solo per BD e cap televisivi.

Potete capire cos'avete facendo click destro sul vostro file e scegliendo MediaInfo dalla lista.

Controllate la voce "Formato" nella sezione "Video".

Se avete MPEG Video potete usare DGMPGDec o DGDecNV o LWLibavVideoSource.
Se avete AVC potete usare DGDecNV o LWLibavVideoSource.
Se avete VC-1 potete usare DGDecNV o LWLibavVideoSource.

La varie alternative sono ordinate per "convenienza", ovvero: usate DGIndex quando potete, altrimenti usate DGDecNV se potete. E se proprio non potete fare altrimenti, usate LWLibavVideoSource.

Ora che ci siamo, passiamo avanti.



Capitolo 2A: DGIndex

DGMPGDec è un sistema di decode che supporta i file video MPEG. DGIndex è la parte della suite che si occupa dell'index e creazione dei progetti .d2v, che possono poi essere utilizzati in diversi programmi, ed è ciò che andremo a vedere al momento.

dgindexh8s93

Questa è l'interfaccia con cui vi si presenterà DGIndex appena aperto.
Come vedete, nell'interfaccia risaltano una timeline e quattro pulsantoni.
[ serve per indicare il punto iniziale dell'area da selezionare.
] serve per indicare il punto finale dell'area da selezionare.
< passa al GOP precedente rispetto a quello attuale.
> passa la GOP successivo rispetto a quello attuale.

Se non sapete ancora cosa fosse, il GOP (group of pictures) è letteralmente un gruppo di immagini, che inizia sempre con un frame I (intra, noti anche come keyframe), ed è seguito da frame P (predictive) e frame B (bipredictive). Nell'MPEG-1 esistevano anche i frame D che fondamentalmente servivano per poter avere delle preview veloci durante un seeking rapido, ma data la scarsa utilità il concetto non è stato ripreso in futuro. Attualmente questo non ci interessa molto, ma in futuro probabilmente torneremo a parlare di GOP.
Normalmente comunque non vi conviene selezionare l'area di interesse, ma usare il trim poi in avisynth, visto che vi consente di tagliare in modo molto più accurato.

Analizziamo ora i menu in alto.
Nota Bene: sono quasi tutte info intuitive o inutili, quindi metto sotto spoiler.
Quelle che andrete a usare più spesso sono:
- File -> Open
- File -> Save Project
- Video -> Field Operation
- Audio -> Output Method

Altre voci che potreste voler tenere a mente ma raramente andrete a usare sono:
- File -> Save Project and Demux Video
- File -> Preview
- Stream -> Set PIDs
- Video -> iDCT Algorithm
- Options -> Playback Speed

File:
- Open: per caricare file video compatibili.
- Load project: per caricare i progetti .d2v che DGIndex crea.
- Close: chiude i file attualmente aperti in DGIndex.
- Save Project: crea il progetto .d2v partendo dai file caricati.
- Save Project and Demux Video: crea il progetto .d2v e demuxa un .m2v dallo stream video dell'area selezionata.
- Save BMP: crea un'immagine BMP del frame attualmente visualizzato.
- Demux Audio-Only Stream: demuxa l'audio senza analizzare il video e senza controllarne l'eventuale delay.
- Preview: fa partire la preview del video attuale, mostrando le informazioni a lato, partendo dall'inizio del video.
- Play: fa partire la preview, mostrando le informazioni a lato, partendo dal punto attualmente evidenziato nella timeline.
- Stop: ferma la preview.
- Pause/Resume: mette in pausa/riprende la preview.
- Exit: chiude DGIndex.
Tra Pause/Resume ed Exit c'è anche una lista degli ultimi file aperti in DGIndex.

Stream:
- Detect PIDs: PAT/PMT: serve per trovare i PID nei transport stream. Normalmente DGIndex è in grado di scegliere automaticamente il PID corretto per audio e video, ma a volte capita che si sbagli, e volendo si può utilizzare questo menu per sistemarlo, anche se personalmente reputo più comodo controllare il PID da mediainfo e fare direttamente Set PID.
- Detect PIDs: PSIP: come sopra, ma serve per i transport stream di standard ATSC (dubito ci avrete mai a che fare).
- Detect PIDs: Raw: per i casi disperati in cui DGIndex non riesce a riconoscere i PID, in questo modo vedete tutto, anche se però audio e video non verranno accoppiati a dovere.
- Set PIDs: per settare a mano i PID degli stream. Potrebbe capitarvi di farne uso con alcuni canali che cambiano tra broadcast SD e broadcast HD tra un programma e l'altro, o magari hanno due programmi diversi in onda contemporaneamente su PID diversi (roba del genere può capitare con Teletama/TOKYO MX/mietv e altri canali). Come vi dicevo, è comodo controllare i PID di vostro interesse tramite MediaInfo e specificarli da qui.

Video:
- iDCT Algorithm: algoritmo per invertire la compressione DCT dei dati. Idealmente, tra le varie scelte, IEEE-1180 Reference ha la qualità migliore e Skal SSE MMX e SSE2 MMX sono i più rapidi. Nella realtà dei fatti la differenza qualitativa è in tutto onestà impercettibile a occhio nuddo ed effettivamente assurdamente minima anche controllando con subtract (sentitevi liberi di provare voi stessi). La differenza a livello di velocità è già più percettibile, ma fondamentalmente ininfluente (normalmente avrete altro a fare da bottleneck in qualsiasi caso).
Di seguito dei test che ho fatto con AVSMeter, solo per le tre opzioni indicate su:

Sorgente SD:
IEEE: 316 fps di media
Skal: 694.3 fps di media
SSE2: 784.7 fps di media

Sorgente HD:
IEEE: 111.4 fps di media
Skal: 224.2 fps di media
SSE2: 229.6 fps di media

Di default vi trovate selezionato Skal, che male non è. Se volete la velocità estrema, usate SSE2, se volete la fedeltà massima allo standard IEEE, usate il reference. Fondamentalmente uno vale l'altro, in quanto lo standard MPEG-2 di per sé non prevede un risultato bit exact per l'iDCT, quindi la differenza entro certi margini è tollerata e IEEE compliant (e tutte le opzioni offerte da DGIndex lo sono), per cui sentitevi liberi. Qualitativamente vi cambia DAVVERO poco, a parte qualche misera differenza di filesize (principalmente con Simple MMX che taglia qualcosinainaina ma realisticamente potete far finta di niente), ci si riduce quindi a un discorso di velocità il più delle volte.
Se avete ancora dei dubbi fate dei test per decidere cosa preferite.
VERSIONE TL;DR: Cambia un cazzo tenete Skal.
- Field Operation: una delle opzioni più importanti di DGIndex, serve a gestire l'RFF dell'MPEG-2, di cui ho già parlato nell'Episodio 2 della guida. Con Honor verrà rispettato l'RFF, con Ignore non verrà rispettato e semplicemente i frame verranno riportati 1:1 dal video (se è vfr rischiate di fare casini, la sconsiglio ai principianti), con Force Film potete ripristinare il 24p partendo da un soft pulldown. Per capire cos'avete per le mani, fate prima andare Honor Pulldown e controllate il Video Type. Se vi segnala Film con una percentuale molto alta (idealmente prossima al 100%, superiore al 94-95% dovrebbe essere il più delle volte accettabile), vuol dire che a parte qualche cosina nera o logo o pubblicità avete un soft pulldown per le mani e potete rifare il progetto in Force film, altrimenti se avete NTSC o una percentuale Video, dovrete fare l'IVTC da voi col progetto in Honor Pulldown, sempre ammesso che si debba fare IVTC.
ACHTUNG BABY: se qualche volta dovete fare Force Film, ricordatevi di rimettere Honor Pulldown la volta seguente. È capitato anche a me di dimenticarmente (è un'evenienza fin troppo rara) e accorgermene solo più tardi, quando non riuscivo a capire che diamine stesse succedendo nella roba che avevo per le mani.
- YUV -> RGB: ovvero se usare PC Scale o TV Scale RGB per l'output se DGDec è costretto a fare conversione RGB. Normalmente non vi capiterà di sfruttare questa cosa, ma nel caso è quasi sempre giusto usare PC Scale (TV Scale RGB è fondamentalmente un aborto che non dovrebbe esistere e serve solo in uno o due casi particolari).
- HD Display: come mostrare i frame in caso di video in alta risoluzione. Lo Shrink by Half di default è comodo per non ritrovarsi il monitor intero occupato da DGIndex.
- Luminance Filter: vi stacco le braccine. L'unico caso in cui potrebbe avere senso è con certe release americane e inglesi che scagano il gamma, ma credo accada solo nei BD (che io sappia), che vengono di norma encodati in AVC (e DGDecNV manco ha quest'opzione), e in qualsiasi caso è meglio regolarlo da avisynth direttamente. Evitate di toccare i colori se non avete ragioni precise e se non sapete quello che state facendo (se avete bisogno di questa guida probabilmente è ancora troppo presto perché lo sappiate, a volte mi vengono dubbio).
- Cropping Filter: oddio, se proprio volete ok, ma io suggerirei di occuparsene in avisynth nel caso (anche perché probabilmente farò pare tante per il crop quando arriverà il momento di parlarne).
- Copy frame to clipboard: copia il frame negli appunti (ovvero potete poi fare incolla/CTRL+V in paint o giù di lì).

Audio:
- Output Method: ovvero che fare delle tracce audio. Con Disable ignorerà l'audio quando salvate il progetto, Demux Tracks demuxerà le tracce che gli indicate tramite PID, Demux All Tracks le demuxa tutte, Decode AC3 Track to WAV converte l'audio AC3 in WAV (posto che l'audio di ciò che caricate sia effettivamente AC3). Usate l'opzione che più vi aggrada, ma salvo che l'AC3 sia di bitrate elevato, vi sconsiglio di re-encodarlo successivamente, quindi al posto di convertirlo in WAV sul momento, tenetelo come tale per splittarlo e muxarlo direttamente nell'encode finale. Io normalmente tengo Demux All Tracks per comodità, ma anche le altre opzioni sono utili in base al caso.
- Select Track(s): per dire cosa demuxare se scegliete Demux Tracks. Fate una lista dei PID separati dalle virgole. Io direi che scegliere i PID è sbatta e preferisco demuxare tutto e al limite cancellare poi la roba che non mi serve, tanto lo spazio ce l'ho. ( ´_ゝ`)
- Dolby Digital Decode: qui ci andrebbe un WoT riguardo l'audio AC3, ma è roba che non fotte a nessuno, anche perché la maggior parte delle volte è bene evitare di convertire in WAV gli AC3. :V
- 48 -> 44.1KHz: per convertire la frequenza dell'audio quando convertite gli AC3 in WAV. Don't.
- Normalization: again, roba per la conversione AC3->WAV. Evitate.
Se proprio siete ancora curiosi per le questioni AC3->WAV leggetevi direttamente il manuale di DGIndex.

Options:
- Loop Playback: quando si fa play o preview, a fine video riprende da capo.
- Playback Speed: normal è il framerate del video, maximum la velocità massima che la cpu regge, single step è frame by frame con >, fast 2xfps, slow 10fps, super slow 5fps.
- Process Priority: difficilmente utile visto che ci vuole poco-niente a indexare.
- Use Full Paths: nei file .d2v e .avs generati userà i path interi anziché relativi, consiglio di fare così (e quindi tenere checkata la voce).
- Force Fusion-Style Audio: roba che riguarda un problema delle capture card di una certa marca, ovvero nulla che riguardi DVD e cap televisivi weaboo.
- Force Open GOPs in D2V File: l'Open GOP è un sistema di encode che consente ai frame all'interno di un GOP di prendere come riferimento frame all'esterno del GOP stesso. Normalmente questo viene segnalato a dovere e il decode viene fatto di conseguenza. Tuttavia può capitare che non sia segnalato a dovere, e quindi ci si ritrova con sblocchettamenti assurdi ed errori di decode vari (esempio con open-gop di avc: correttoerrato).
- Log Quant Matrices: per sapere le matrici di quantizzazione usate per l'encode. Un tempo usare matrici custom aiutava a fare mezzi miracoli in encode, oggi giorno è roba del paleolitico che serve appunto solo se si encoda in mpeg-2, ma comunque fondamentalmente non ve ne frega niente per il decode e quindi ignorate sereni.
- Log Timestamps: salva a parte i timestamp PTS/DTS di audio e video. Potrebbe tornarvi utile se dovete fare roba particolare con un ignore pulldown flags, salvandovi prima i timestamp dell'honor pulldown flags (nel file dei timestamp vi mette anche i riferimenti dei frame I/P/B dei GOP vari) e poi rifacendo il progetto con ignore senza sovrascrivere i timestamp, ma è un casino. Un'altra situazione in cui può tornare utile è quando ci sono problemi di sincronizzazione audio per delay particolari, ma ne parliamo dopo.
- AVS Template: potete creare un template avs da indicare a dgindex, che quando finirà di indexare sputa fuori anche l'avs pronto oltre al d2v. Tecnicamente utile, ma visto che andremo a usare YATTA ce ne si fa poco, visto che in YMC passeremo direttamente i d2v.
- BMP Save Path: dove andrà a salvare le BMP quando si fa File > Save BMP.
- Enable Info Log: quando salvate un progetto, noterete che compare una finestrella con le informazioni. Se avete questo check, le informazioni verranno poi salvate in un file log a parte. Può tornare utile, io lo tengo attivo.

Tools:
- Analyze Sync: controlla il delay audio. Se avete problemi di sincronizzazione audio, dovreste provare a usarlo. Vi servirà avere a disposizione il log dei timestamp. Non ho personalmente mai avuto bisogno di questa caratteristica di DGIndex, ma non si può mai sapere; nel caso trovate più informazioni nel manuale.
- Fix D2V: di rado capita che DGIndex vi segnali degli "errori" nel progetto .d2v e si offra di correggerli. Quest'opzione in pratica dice già a DGIndex di aggiustare il .d2v in caso si verificassero quegli errori. Gli "errori" non sarebbero altro che dei cambi di field order durante lo stream. Poiché non tutti i software supportano un cambio di field order, DGIndex nel .d2v aggiustato fa delle modifiche in modo tale da avere un field order costante per tutto il video. Tenete presente, però, che in caso anche solo parte dello stream avesse gli RFF (e quindi fosse softpulldown), è bene evitare di fare questa correzione. In qualsiasi caso, quando dovesse verificarsi l'evenienza di cambio order, DGIndex vi informa anche se non avete checkato quest'opzione, e comunque vi conviene controllare entrambi i .d2v (sia quello corretto che quello originale) per vedere un po' come stanno le cose nel caso specifico. Buttate sempre un'occhio sul Video Type, comunque, perché se è Film o Video significa che ci sono delle RFF nello stream.
- Parse D2V: vi crea un log con un'analisi dello stream, potrebbe esservi utile per farvi un'idea di dove sono i gop soft pulldown in caso di materiale ibrido, visto che vi dice quali frame vengono ripetuti, ma onestamente ne potete fare anche a meno.

Help:
- Detect SIMD: ovvero le ottimizzazioni disponibili con la vostra cpu. Default è ok.
- VFAPI Plugin: VFAPI è un sistema di frameserve di fake avi. Evitate di usarlo pls (tanto di base non è abilitato visto che bisogna cattare roba a parte).
Seguono i vari link a guide, informazioni e siti. Il manuale di DGIndex vi tornerà utile se avete ancora dubbi, perplessità e curiosità.


Posto che abbiate letto almeno le voci che ho segnalato su, e che se avete dubbi vi conviene leggere il manuale di DGIndex direttamente, passiamo avanti.

Oltre a File -> Open potete semplicemente trascinare i file su DGIndex per aprirli.
Nota Bene: per i DVD, capita di avere i contenuti spalmati su più VOB, causa limitazioni del file system dei DVD che limita i singoli filesize a 1GB di dimensione. Semplicemente indexate assieme i .VOB appartenenti allo stesso VTS (Video Title Set). Generalmente avrete tipo VTS_01_0.VOB con solo qualche menu o giù di lì, e i contenuti in VTS_01_1.VOB e seguenti, con eventuali contenuti extra in VTS_02/03/etc. In altri casi è tutto presente nel VTS_01, in altri ancora è possibile che ogni singolo episodio sia in un VTS diverso.

Dopo aver sistemato le opzioni del caso (fate riferimento al WoT sotto spoiler), è il momento di salvare il progetto.
Mentre lo salva, vi comparirà un box di informazioni. Queste informazioni le ritroverete poi anche nel .log che vi butterà fuori una volta chiuso il box informazioni. Le voci che ci interessano principalmente sono Video Type e Colorimetry, ma tenete d'occhio anche Frame Rate, che se è 23.976024 fps significa che avete fatto Force Film. Cosa fare in base al Video Type è già dettagliato sotto spoiler.
Se per qualche motivo DGIndex non vi mostra tutte le info, potete comunque vederle facendo Preview. Tenete presente che in questo caso,per avere informazioni accurate riguardo il Video Type, dovete far scorrere la preview per tutto il video, altrimenti riguarderà solo la porzione di video che avete riprodotto in preview (discorso che vale pure per il bitrate, di cui però ci interessa poco). Per fare prima potete settare la Playback Speed su Maximum.

Ok, a questo punto avete il vostro file .d2v pronto per l'uso e abbiamo discusso dettagliatamente DGIndex, possiamo passare a DGIndexNV, che è comunque simile.



Capitolo 2B: DGIndexNV

DGDecNV è un sistema simile a DGMPGDec, che si appoggia al decoder Pure Video presente in alcune GPU NVIDIA per fare decode di video MPEG, AVC e VC-1.
È quindi palese che la controparte di DGIndex che andremo ad analizzare sia DGIndexNV.

dgindexnvxsd0s

Uguu~
Rispetto a DGIndex i pulsantoni sono aumentati, e pure le voci offerte dai menu in alto sono un po' diverse.
Prendendo con riferimento le quadre, e dicendo che [ è (1) e ] è (5), vediamo di descrivere i pulsantoni.
[ e ] funzionano come in DGIndex, e segnano l'area di lavoro del progetto.
Il pulsante (2) è identico alla funzione File -> Rewind, e riporta il cursore della timeline all'inizio del progetto.
I pulsanti (3) e (4) funzionano come i pulsanti < e > di DGIndex, passando al GOP precedente/successivo.
Il pulsante (6) equivale a File -> Stop, mentre il (7) a File -> Pause/Resume.
Il pulsante (8) equivale a File -> Step, il (9) a File -> Preview, il (10) a File -> Play.

Sotto spoiler i vari menu. Come per DGIndex, la maggior parte della roba non vi è d'interesse. Le voci che userete normalmente sono:

File -> Open
File -> Save Project

Mentre voci che userete un po' più di rado ma che è comunque bene ricordare sono:

File -> Output Trimmed TS
File -> Save Project and Demux Video
File -> Preview
Stream -> Set PIDs
Options -> Playback Speed

Ci sono poi voci che una volta impostate non avrete più bisogno di toccare (e quasi tutte sono già corrette di default per la verità), ovvero:

Video -> PureVideo Deinterlacer
Video -> Cropping Filter
Audio -> Audio Demux
Options -> Always Crop 1088->1080
Options -> AVS Template

Segue principalmente un shameless copypaste di tutta la roba comune con DGIndex, con giusto le modifiche del caso.

File:
- Open: per caricare file video compatibili.
- Load project: per caricare i progetti .dgi che DGIndexNV crea.
- Close: chiude i file attualmente aperti in DGIndexNV.
- Output Trimmed TS: crea un transport stream contenente un trim con l'area di lavoro selezionata, senza re-encodare il video.
- Save Project: crea il progetto .dgi partendo dai file caricati.
- Save Project and Demux Video: crea il progetto .dgi e demuxa un file .m2v (per video MPEG), .264 (per video AVC) o .vc1 (per video VC-1) dallo stream video dell'area selezionata. Sì, stando al manuale di DGIndexNV per AVC crea un file .avc, ma a me risulta .264 quando lo uso, quindi boh. Trattasi comunque di elementary stream.
- Save BMP: crea un'immagine BMP del frame attualmente visualizzato.
- Preview: fa partire la preview del video attuale, mostrando le informazioni a lato, partendo dall'inizio del video.
- Play: fa partire la preview, mostrando le informazioni a lato, partendo dal punto attualmente evidenziato nella timeline.
- Step: manda avanti di un frame il video.
- Rewind: porta il cursore a inizio progetto.
- Stop: ferma la preview.
- Pause/Resume: mette in pausa/riprende la preview.
- Exit: chiude DGIndex.
Tra Pause/Resume ed Exit c'è anche una lista degli ultimi file aperti in DGIndexNV.

Stream:
- Detect PIDs: PAT/PMT: serve per trovare i PID nei transport stream. Normalmente DGIndexNV è in grado di scegliere automaticamente il PID corretto per audio e video, ma a volte capita che si sbagli, e volendo si può utilizzare questo menu per sistemarlo, anche se personalmente reputo più comodo controllare il PID da mediainfo e fare direttamente Set PID.
- Detect PIDs: Raw: per i casi disperati in cui DGIndex non riesce a riconoscere i PID, in questo modo vedete tutto, anche se però audio e video non verranno accoppiati a dovere.
- Set PIDs: per settare a mano i PID degli stream. Potrebbe capitarvi di farne uso con alcuni canali che cambiano tra broadcast SD e broadcast HD tra un programma e l'altro, o magari hanno due programmi diversi in onda contemporaneamente su PID diversi (roba del genere può capitare con Teletama/TOKYO MX/mietv e altri canali). Come vi dicevo, è comodo controllare i PID di vostro interesse tramite MediaInfo e specificarli da qui.

Video:
- PureVideo Deinterlacer: fondamentalmente il male visto che ce ne occuperemo noi di deinterlacciare il video in caso non sia progressivo, ma comunque qui è solo per la preview (anche se le info se usate double rate ─ ovvero bob deinterlace ─ corrispondono al playback normale), visto che nel caso, per usufruirne direttamente poi, dovrete usare il parametro deinterlace di DGSource. Ma ripeto, evitate, pls.
- Display HD Full Sized: di base i video HD vengono mostrati in Half Size come per DGIndex, ma al posto di avere tot opzioni diverse, qui vi consente semplicemente di vederlo pieno anziché dimezzato.
- Disable Display: fondamentalmente un'opzione di debug per sapere che fps toccate in decode senza limiti. Utilità è relativamente minima, piuttosto vi conviene impiegare direttamente AVSMeter poi.
- Cropping Filter: siccome 1080 non è mod16, internamente gli stream HD sono 1088, con 8 pixel di pad in basso per standard. Di default, il cropping filter è settato in modo tale che se avete un video 1088, ve lo croppa direttamente a 1080 togliendo gli 8 pixel da basso di informazione inutile (tendenzialmente specchiati o neri o roba del genere). Per ulteriore crop vi consiglio di utilizzare avs.
- Copy frame to clipboard: copia il frame negli appunti (ovvero potete poi fare incolla/CTRL+V in paint o giù di lì).

Audio:
- Audio Demux: avete una lista degli stream disponibili e potete decidere quali demuxare. In realtà, è meglio utilizzare eac3to per occuparsi dell'audio dei BD. Se volete potete usare comunque DGIndexNV per demuxarlo, eh, ma nella pratica vi suggerisco di togliere il check a Enable audio processing e non pensarci più.

Options:
- Loop Playback: quando si fa play o preview, a fine video riprende da capo.
- Playback Speed: normal è il framerate del video, maximum la velocità massima che la cpu regge, fast 2xfps, slow 10fps, super slow 5fps. Lo stepping frame by frame è stato spostato a sé stante sotto File in DGIndexNV rispetto a DGIndex, per questo non è più presente qui.
- Process Priority: difficilmente utile visto che ci vuole poco-niente a indexare.
- Use Full Paths: nei file .dgi e .avs generati userà i path interi anziché relativi, consiglio di fare così (e quindi tenere checkata la voce).
- Always Crop 1088->1080: come spiegato sopra, internamente l'immagine viene memorizzata come 1088 per essere mod16, ma gli 8 pixel in basso sono informazioni inutili e non reali, per cui tenetelo checkato.
- Always Ignore Mismatched Audio: a volte, principalmente on cap televisivi, capita che il tipo di audio segnalato nel .ts e quello che viene riconosciuto da DGIndexNV non coincida (esempio: il .ts segnala MPA, DGIndexNV riconosce AC3). Quando ciò accade, vi esce un popup per dirvi cosa fare, e premere annulla disabilita la traccia audio in questo. Mettere il check equivale a clickare sempre annulla senza che vi compaia il popup. Considerando che vi conviene usare eac3to per l'audio, potete fare come preferite.
- AVS Template: potete creare un template avs da indicare a dgindexnv, che quando finirà di indexare sputa fuori anche l'avs pronto oltre al dgi. Siccome YATTA non supporta il formato dgi e dovrete caricare un file AVS in YMC, vi suggerisco di utilizzare un template. Come codice nel file template vi basta mettere:
CODICE
DGSource("__vid__")

In realtà il template vi consente di fare più robe, ma visto che l'audio non conviene caricarlo mai in avisynth e visto che poi questo avs va eventualmente caricato in YMC o comunque ci dovrete mettere mano di volta in volta, questo template è più che sufficiente.
- Enable Info Log: quando salvate un progetto, noterete che compare una finestrella con le informazioni. Se avete questo check, le informazioni verranno poi salvate in un file log a parte. Può tornare utile, io lo tengo attivo.
- Log Timestamps: salva a parte i timestamp PTS/DTS di audio e video. Siccome da DGIndexNV non è possibile fare Force Film e siccome non dovreste avere a che fare con l'audio in DGIndexNV, l'utilità di questo log è estremamente ridotta.
- List GPU Devices: vi fa una lista delle GPU compatibili (ovvero con VP2 o superiore) che avete.

Help:
Vari crediti, manuali e siti. Nell'about è indicato un codice che vi serve per l'attivazione del software.


Il procedimento qui è fondamentalmente identico a DGIndex. Trascinate il video che dovete indexare, eventualmente selezionando solo l'area di interesse, e salvate il progetto .dgi.
Con DGIndexNV non potete fare Force Film quindi sotto un certo punto di vista è un pensiero in meno. La prima volta comunque ricordatevi di avere settato tutto giusto, in particolare per quanto riguarda il cropping (che dovrebbe comunque già essere a posto di default) e la creazione dell'avs tramite template (più per comodità che non per altro). Di come creare file avs comunque se ne parla poco più avanti, quindi nel caso tornate qui a creare il template dopo aver imparato.


Sempre come per DGIndex, se save project non vi mostra info che vi interessano (la colorimetria, principalmente, il framerate dovrebbe segnarlo sempre), potete usare la preview (oppure controllare da mediainfo, quantomeno per la colorimetria).

Ok, a questo punto rimane solo da capire come creare i file AVS e per caricare i progetti creati o usare LWLibavVideoSource.



Capitolo 3: Il primo script AVS

Ok, abbiamo il .d2v/.dgi o comunque il file video da caricare con LWLibavVideoSource nel peggiore dei casi.
Ora non ci resta che creare il file AVS.
Da questo punto in poi suppongo abbiate come minimo Windows Vista e abbiate installato AviSynth con le impostazioni Standard.

Nella cartella del progetto/video di vostro interesse, fate click destro in un punto vuoto e scegliete Nuovo > AviSynth Script, dandogli il nome che più vi aggrada.
Fateci doppio click, e si aprirà il Blocco note.
Al momento ci si para di fronte il vuoto, e per ora faremo una sola cosa semplice semplice, ovvero caricare ciò che ci interessa.

AviSynth è una sorta di linguaggio di programmazione, quindi come potrete immaginare per usarlo dovrete scrivere codice.
Fortunatamente è estremamente semplificato, e quindi non vi troverete a dover fare ragionamenti complessi, salvo dover scrivere cose avanzate, che magari vedremo in altra sede più avanti nel tempo.

Per dire ad avisynth cosa fare si utilizzano comandi, che normalmente consentono di specificare parametri tra parentesi. Questi parametri possono essere obbligatori o facoltativi.

Per aprire un video, avremo bisogno di un comando apposito che si occupi di caricare il video, e come parametro dovremo quantomeno passare il percorso del video da aprire.
Visto che il percorso è una stringa di testo, per convenzione, in AviSynth, viene passata fra doppi apici.
Comodamente, il percorso di un file è già contenuto tra doppi apici se fate maiuscolo+click destro > copia come percorso.

E quindi, incollando dentro le parentesi del comando quanto copiato, avremo fatto la nostra riga di caricamento video.

Per poter caricare i file .d2v si utilizza il comando MPEG2Source.
Per poter caricare i file .dgi si utilizza il comando DGSource.
Per caricare direttamente altri file ci sono svariati comandi, ma in linea generale, per i fini di questa guida specifica, useremo LWLibavVideoSource.

Quindi, mettendo assieme quanto visto prima, incollando tra le parentesi di un comando il percorso tra doppi apici, si ottiene:
CODICE
MPEG2Source("C:\cartella\progetto.d2v")

Per caricare il file "progetto.d2v" che è salvato nel percorso "C:\cartella".

Similmente, per caricare il file "progetto.dgi" salvato nel percorso "C:\cartella", servirà:
CODICE
DGSource("C:\cartella\progetto.dgi")


Mentre, per caricare direttamente un video, ad esempio "video.m2ts", dovremo fare:
CODICE
LWLibavVideoSource("C:\cartella\video.m2ts")


Tuttavia, come segnala Maddo nei commenti, è bene remuxare in mkv prima di caricare con LWLibavVideoSource, onde evitare file di index enormi.
Per fare questo, cattatevi MKVToolNix e, una volta installato/scompattato (in base a che abbiate preso l'installer o il portable), aprite mkvmerge GUI, trascinateci su il file .m2ts/.ts/salcazzi e clickate su Start muxing/Avvia muxing (in base alla lingua che avete dato al software, modificabile da File -> Opzioni). Una volta finito il remux clickate OK sul popup e chiudete pure mkvmerge GUI.
Parleremo più nel dettaglio di mkvmerge GUI più avanti nel tempo, per il momento limitiamoci a questo e torniamo ad avisynth.
Una volta creato il file potete usare LWLibavVideoSource sull'mkv, e quindi:
CODICE
LWLibavVideoSource("C:\cartella\video.mkv")


Nota Bene: fin qui ho usato il maiuscolo per alcune lettere dei comandi, ma è bene fare presente che avisynth è assolutamente case-insensitive (ovvero non distingue tra lettere maiuscole e minuscole per comandi, parametri e nomi di variabili), quindi anche se scrivete tutto maiuscolo o tutto minuscolo non fa differenza.

Ok, meraviglia delle meraviglie, potete già salvare il vostro file .avs, perché il vostro primo script AVS è pronto.
C'è però ancora molto da dire, e nel prossimo episodio parleremo più approfonditamente di AviSynth e cominceremo ad utilizzare anche AvsPmod, perché utilizzare Blocco note è decisamente scomodo.

Edited by mirkosp - 30/3/2015, 22:35
 
Web  Top
view post Posted on 24/1/2014, 01:46     +1   -1
Avatar

Snobbery Inside

Group:
Utente abilitato
Posts:
2,197
Reputation:
+1,005
Location:
Favolandia

Status:


Però la grande domanda che tutti si pongono è la seguente:
mirkosp finirà prima le guide o Love Lab?

Sono aperte le scommesse.
 
Web  Top
view post Posted on 24/1/2014, 01:58     +1   -1
Avatar

Bimbosp

Group:
Administrator
Posts:
9,780
Reputation:
+929
Location:
Gallarate (VA)

Status:


Io dico nessuna delle due per lasciarmi un buon margine di sicurezza.
 
Web  Top
view post Posted on 24/1/2014, 09:57     +1   -1
Avatar

Apprendista encoder

Group:
Utente abilitato
Posts:
611
Reputation:
+213
Location:
Loli Island

Status:


Un appunto per quanto riguarda LWlibavvideosource:
Il supporto per i vari container MPEG-TS(.ts/.trp/.m2ts e salcazzi) è broken as fug e nel migliore dei casi vi ritroverete il video giusto con index di >3GB. Nel peggiore dup all'inizio, framerate raddoppiati e via dicendo(resta comunque frame-accurate come ordine di frame). Ora sul forum dicono tutti repeat=true per il framerate raddoppiato, ma la soluzione universalmente più semplice è quella di demuxare/remuxare in mkv/m2v e container meno broken per evitare cazzi. Per i BD progressivi invece è sempre da raccomandare LWLibavvideosource in quanto ok, perderete una quindicina di minuti tra remux in mkv e creazione dell'indice, ma è esponenzialmente più veloce delle altre soluzioni, ne vale la pena. Non ho sbatta di leggere tutta la guida e piuttosto che chiedere anime del cazzo come love lab chiedo: tatami where? jintai dokò?
 
Top
view post Posted on 24/1/2014, 10:40     +1   -1
Avatar

Snobbery Inside

Group:
Utente abilitato
Posts:
2,197
Reputation:
+1,005
Location:
Favolandia

Status:


Se proprio uno deve rimuxare in mkv (e ha video AVC) allora tanto vale FFmpegSource, almeno una volta creato l'index non ci vogliono 5s a caricarlo perché è di centinaia di MB.
 
Web  Top
view post Posted on 24/1/2014, 10:56     +1   -1
Avatar

Apprendista encoder

Group:
Utente abilitato
Posts:
611
Reputation:
+213
Location:
Loli Island

Status:


Il punto è quello: no. Ti porto l'esempio del film di aura su cui ho tanto porconato: lwlibavvideosource dell'm2ts 3.79GB. ffindex 10mb.
Aura rimuxato in mkv: ffindex 3mb. Lwlibavvideosource 8.75Mb.

Viene più grosso ma 8mb non ti bottleneckano un cazzo, il più grosso in assoluto rimuxato in mkv è stato di 25mb se ben ricordo, che non ti bottleneckano neanche se hai un 5400rpm come il sottoscritto.
 
Top
view post Posted on 24/1/2014, 11:06     +1   -1
Avatar

Snobbery Inside

Group:
Utente abilitato
Posts:
2,197
Reputation:
+1,005
Location:
Favolandia

Status:


Eh, minchia, alla fine la comodità era quella di non doversi sbattere a far mux di decine di GB (che porta via un botto di tempo), se però il risultato è che bisogna farlo lo stesso se no l'index è bloat sto cazzo.
Meglio pigliarsi una scheda nvidia, pagare 15$ e tanti saluti (io ho fatto così).
 
Web  Top
view post Posted on 24/1/2014, 11:23     +1   -1
Avatar

Senior Member

Group:
Administrator
Posts:
17,253
Reputation:
+730
Location:
Agenzia Acchiappafantasmi di Reiko Mikami

Status:


CITAZIONE (Mad_Hatter™ @ 24/1/2014, 10:56) 
del film di aura

indiana_jones_and_the_last_crusade
 
Top
view post Posted on 24/1/2014, 13:32     +1   -1
Avatar

Bimbosp

Group:
Administrator
Posts:
9,780
Reputation:
+929
Location:
Gallarate (VA)

Status:


Aggiornata la guida. Quotazzo comunque Chibi.
 
Web  Top
Byakko
view post Posted on 24/1/2014, 15:30     +1   -1




CITAZIONE (Tadao Yokoshima @ 24/1/2014, 11:23) 
CITAZIONE (Mad_Hatter™ @ 24/1/2014, 10:56) 
del film di aura

(IMG:http://chandlersfantasyblog.com/wp-content...ast_crusade.jpg)

Aura onna to seishun otoko: road to 2023
 
Top
view post Posted on 24/1/2014, 16:21     +1   -1

Member

Group:
Utente abilitato
Posts:
968
Reputation:
+161
Location:
Trentino Alto Adige

Status:


Io leggo e ringrazio, per la chiarezza e per i link.

-------------------------------------

Edito il post per una domanda da "niubbo" dell'encode.

Se da BD estraggo tutto con TSMuxer e creo un MKV (specificando formato e framerate) al quale accedo via AVS con FFVideoSource... che rischi corro?

Edited by rocksel - 24/1/2014, 17:07
 
Top
view post Posted on 24/1/2014, 19:35     +1   -1
Avatar

Bimbosp

Group:
Administrator
Posts:
9,780
Reputation:
+929
Location:
Gallarate (VA)

Status:


FFMS2 rispetto a LWLibavVideoSource ha qualche problemino nella gestione di encode provenienti da BD, specialmente se sono interlacciati.
Ma se sono interlacciati, ti conviene metterti l'anima in pace, cattarti una nvidia e spendere quei 15 dollari.
 
Web  Top
view post Posted on 24/1/2014, 20:35     +1   -1
Avatar

Apprendista encoder

Group:
Utente abilitato
Posts:
611
Reputation:
+213
Location:
Loli Island

Status:


O cattarti DiAVC e rassegnarti alla sua tremenda lentezza, o bilivare che lwlibav worki(il più delle volte sì, ma altre no).
 
Top
view post Posted on 24/1/2014, 21:08     +1   -1

Member

Group:
Utente abilitato
Posts:
968
Reputation:
+161
Location:
Trentino Alto Adige

Status:


Ok. Donati 11.32 euro al sig. Donald Graft.
Adesso spero che le mie capacità di encoder valgano quella cifra.
:D
 
Top
view post Posted on 24/1/2014, 21:48     +1   -1
Avatar

Bimbosp

Group:
Administrator
Posts:
9,780
Reputation:
+929
Location:
Gallarate (VA)

Status:


CITAZIONE (Mad_Hatter™ @ 24/1/2014, 20:35) 
O cattarti DiAVC e rassegnarti alla sua tremenda lentezza, o bilivare che lwlibav worki(il più delle volte sì, ma altre no).

DiAVC è solo AVC però. Se sei sfigato e ti becchi VC-1 (io di animu in VC-1 ricordo solo animatrix) dovresti usare comunque l-smash-works. Appunto, tanto vale cattarsi dgdecnv.
 
Web  Top
20 replies since 24/1/2014, 01:38   3014 views
  Share