Recensubs HQ

TS -> MKV made easy, with 200% more images

« Older   Newer »
  Share  
view post Posted on 22/12/2011, 17:43     +1   -1
Avatar

Snobbery Inside

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

Status:


Molti si chiederanno, ancora un'altra guida sui TS?
Ma se ce ne sono già 2, altro no?

Al che dico, è vero, ci sono guide, ma il problema non è tanto avere le informazioni, quanto invogliare la gente a sperimentare, iniziare a fare le cose nel modo giusto e far capire dove sta il merito di un metodo rispetto ad un altro.
Che è quello che manca, dato che quasi tutte le guide sono scritte o per il principiante, e quindi saltano tutto ciò che dovrebbe far capire perché sbattersi, o per l'esperto, e quindi sono Wall of Text chilometrici che non spiegano minimamente perché uno dovrebbe sbattersi a leggere e fare tutta quella roba.

Visto questa mancanza ho pensato di creare anch'io una guida, non solo sui ts, ma un po' sull'encoding in generale, dal TS al Matroska finale (dico Matroska perché mp4 presenta meno difficoltà, ma rende superflui alcuni punti che invece andrebbero approfonditi).
Oltre a questo fatto la guida presenta un'enorme differenza tra quelle già presenti, è fatta in modo pratico, perché si riferisce ad un TS in particolare, ovvero il dodicesimo di Horizon.
Se volete quindi seguire per bene la guida vi consiglio di scaricarlo e di provare voi stessi ad encodarlo, così da poter capire cosa davvero cosa vi sto dicendo di fare e perché dovreste farlo.

La guida si divide principalmente in 3 parti.
- Indicizzazione e IVTC
- Problemi dei TS e relative soluzioni (testo che scorre e field sminchiati)
- Encoding e Muxing

Ogni macroblocco avrà un suo post, visto che non ho voglia di stare qui ore e ore a scrivere.
Non verranno linkati i programmi utilizzati, a meno che non sia roba decisamente particolare e misconosciuta. Si suppone che il lettore sia abbastanza bravo da usare google e scaricarsi da sé il programma. Yatta comunque ve lo linko, nel caso non lo trovaste.

L'ultimo appunto è che questa guida spiega come lavorare TS con pattern costante, ovvero la stragrande maggioranza, per roba complessa è richiesto un procedimento ben diverso, ma non è questo il momento per affrontare la questione.
Partiamo invece con Horizon.

Indicizzazione e IVTC 5-10 minuti di tempo manuale max, difficoltà medio-bassa

1) Si dà per scontato che abbiate estratto il TS in una cartella adatta, nella quale faremo la maggior parte delle operazioni.
Per prima cosa dategli un nome decente con i caratteri orizzontali, consiglio "horizon12.ts".
A questo punto aprite DGIndex, che suppongo abbiate già usato per l'encoding di DVD o altro.
In DGIndex fate file->open e aprite il TS, assicuratevi che audio->output method sia su demux all tracks e fate file->save project e salvate il d2v (immagino come horizon.d2v).

2) finita l'indicizzazione aprire ymc, se è la prima volta dategli la directory dei plugin di avisynth e spuntate le due caselle nei settaggi.
Aggiungete il d2v a ymc, se il vostro schermo ha più di 1080 pixel di risoluzione verticale siete anche a posto così, altrimenti spuntate crop e cutter e mettete crop al primo posto, selezionatelo e cliccate su configure.
Croppate quindi tanti pixel quanti sono necessari per riportare la risoluzione del TS a una decisamente inferiore alla risoluzione del vostro schermo.
Date l'ok e uscite.

Il cutter si può ridimensionare quindi tutta questa parte non è affatto necessaria, evitate di perderci tempo.

Ora aprite cutter, qui dovete selezionare i frame delle pubblicità e addarli ai cut.
Nel dubbio se un frame è buono o non buono (interlacciato, ghosting del frame precedente ecc ecc) includetelo.
Alla fine dovreste aver tagliato via tutte le parti estranee all'anime, il risultato dovrebbe essere più o meno questo

Date ok.
Ora tornate su crop, togliete l'overcrop (potete metterlo a zero o lasciare un crop minimo, tipo 32 pixel per lato), a vostra scelta, se ci sono bande nere spesse il crop potrebbe aiutare nell'avere una metrica migliore. Non è questo il caso di Horizon, quindi fate un po' come volete.
Se volete rispostate crop sotto cutter, non dovrebbe cambiare niente ma tant'è.
(idem come sopra)

Selezionate telecide e decimate e siete pronti a partire.
ymc
Cliccate start e aspettate che ymc lavori su tutto il TS, quando avrà finito si chiuderà e avvierà YATTA.

3) Yatta se è la prima volta che si avvia vi chiederà la directory ecc ecc, impostatela, poi vi chiederà probabilmente se volete impostare "horizon12 PID 110 DELAY -256ms.aac" come audio del progetto. Imho non serve a niente, fate voi.
A questo punto dovete impostare Yatta.
Settings
yattasettings
E con questo siete a buon punto.
Nelle associazioni può essere utile settare Jump +05 Frames su PgUp e Jump -05 Frames su PgDn come consiglia mirko. Per questa guida comunque non credo sia fondamentale.

4) Abbiamo settato Yatta in 20 secondi, ora dobbiamo prepararci per la pattern guidance.
Il TS che abbiano ha pattern costante, ovvero il pattern cnncc si ripete in modo costante nei pezzi non interrotti da pubblicità, quindi una volta trovatolo possiamo recuperare lo stream progressivo a 24000/1001 frame al secondo con facilità.
Prima di tutto però dobbiamo dividere le zonenon interrotte dalla pubblicità.
Se ricordate bene queste sono intro + opening, parte A + eyecatch, parte B + ending, anticipazioni.
Inoltre è imho buona cosa dividere le sigle, visto che a volte i frame iniziali hanno un pattern leggermente diverso, nella ending di Horizon non serve visto che sfuma dall'episodio, nella opening è meglio farlo.
Quindi a questo punto andate all'inizio della opening, della parte a, della parte b e della anticipazioni e premete I.
In questo modo creeremo 5 sezioni, la prima che contiene l'intro, la seconda che contiene la opening, la terza che contiene parte a + eyecatch, la quarta che contiene parte b + ending e la quinta che contiene le anticipazioni.
Andando su tools->sections dovreste trovare
sections

5) Ora dobbiamo settare la pattern guidance.
pguidance1
poi andate su click destro -> set pattern e mettete
pguidance2
infine
pguidance3
Dopo aver fatto quest'ultima impostazione cliccate su pattern guidance.
Fatto, non dovrebbero venire fuori errori, avete fatto un ivtc perfetta.

6) O no?
Il dubbio c'è sempre, per levarlo facciamo subito una rapida ricerca nel TS per vedere ce si sono frame interlacciati.
Andate su Tools, Find e impostatelo così

cliccate su Next e il primo frame che dovreste trovare è quello rappresentato qui sopra, frame sputtanato dall'mpeg2, ma non interlacciato.
Chiudete i tools e spostatevi con la Freccia in su e Freccia in giù tra i frame con VMetric superiore a 90.
Non ne troverete nemmeno uno interlacciato, l'IVTC era perfetta (se è un TS con pattern costante non dovreste trovarne, a meno che non abbiate sminchiato qualcosa).
Però vi sarete accorti che il TS è preso da schifo, non è una novità, ma il fixarlo tutto va ben al di là degli scopo della guida, quindi non spaventatevi.

7) Click con il destro -> Additional -> Cropping and Resizing
croppingresize
Non siamo qui a fare il resize perfetto con meno di 0.0001% dall'AR, sbattevene il cazzo visto che tanto è possibilissimo che le trasmissioni tv abbiano l'AR leggermente sminchiato (però ovviamente non croppate 50 pixel in larghezza e 0 in altezza, se no rischiate davvero che ridimensionando le proporzioni finiscano per essere sballate).
Andate su un frame chiaro (se la finestra è troppo grande e non riuscite a spostarvi cliccate su "Show Resized") e valutate quanto bordo c'è da croppare.
Nel caso di Horizon non ci sono bande nere sui bordi ma un po' di merda varia, considerando che imho non si vede direi che si può non croppare nulla e inserire solo la risoluzione finale.
Ora chiudete.

*Nel caso dobbiate fare un Work Raw, questo è il momento di farla.
Salvate (save, click con il destro save overrides, non so quale esattamente salvi tutto, voi intanto per sicurezza cliccate ovunque, che non fa mai male XD).
A questo punto chiudete Yatta.
Andate a recuperare il file "horizon12.d2v.avs" apritelo con Avspmod e fate queste modifiche

La merda sopra lasciatela, se non vi dà problemi, però sostituite Spline36 con ResampleHQ.
Perché farlo?
Semplice, perché Spline36 normale non è gamma aware e quindi se deve fare la media tra un nero molto scuro e un bianco molto chiaro sbaglia e crea un grigio che, per l'occhio umano, non è luminoso la metà del bianco.
Si può mostrare la differenza con due immagini
earthlights_small2
Resize Corretto

earthlights_small1
Resize scorretto.

tl;dr, usatelo.
Se pensate di dover riutilizzare l'avs così modificato in seguito salvatelo con un altro nome, Yatta lo sovrascriverà la prossima volta che andrete a salvare. Generalmente direi che non ve ne farete più niente, quindi fregatevene.
Encodate il video come preferite

Per la WR però vi manca l'audio.
Scaricatevi Split_aud e installatevi Perl (direi ActivePerl).
Estraete split_aud nella cartella di lavoro e createvi un file .bat come questo

Avviatelo e la commandline farà quello che vedrete nell'immagine.
Il risultato sarà horizon12.mka, il file audio pronto per la WR.
Muxatelo con il video (encodato al passo precedente).
WR Pronta, prima parte della guida finita.

Appendice A

Se il TS non ha pattern costante e non volete sbattervi con Pattern Guidance fatta bene potete decidere di fregarvene dell'IVTC perfetta e imbrogliare un po'.
Invece di selezionare Telecide e Decimate in ymc mettete TFM + TeledecideMetrics e Tdecimate.
Cliccate configure su TFM + TeledecideMetrics e mettete

questi settaggi (lenti ma dovrebbero assicurare quasi nessun fail).
Fate partire ymc e poi saltate i passi dal 4 al 6.
Facendo così però il risultato sarà non ottimale e i passi successivi avranno come base un'IVTC inferiore.
Usate questa scorciatoia solo se strettamente necessario e non volete sbattervi ad imparare a fare Pattern Guidance seriamente (nel caso la guida di mirko dà diversi spunti).

Al prossimo post (non so quando) per la successiva parte.
Se trovate errori/cazzate segnalate, non ho riletto e non penso di essere infallibile, quindi va da sé che questa guida potrà essere continuamente migliorata con piccoli (o anche grandi) aggiustamenti.

Edited by Tada no Snob - 23/12/2011, 23:43
 
Web  Top
view post Posted on 22/12/2011, 17:45     +1   -1
Avatar

Snobbery Inside

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

Status:


Bene, eravamo arrivati alla WR, o, in alternativa alla fine dell'IVTC.
Ora è la volta di Problemi dei TS e relative soluzioni.

Prima di tutto dobbiamo settare un attimo il file del progetto.
Cercate "horizon12.d2v.yap" e apritelo con un editor di testo, io consiglio Notepad++.
Andate alla fine del file e prima di error log inserite: (N.B. copiando e incollando avrete %-s invece di %­s, dovete togliere la -)
CODICE
[Custom List 0]
"nnedi0start"
"nnedi0=nnedi3(0)"
""
2
0,0

[Custom List 1]
"nnedi1start"
"nnedi1=nnedi3(1)"
""
2
0,0

[Custom List 2]
"nnedi0"
"strange(%­s,%e,nnedi0)"
""
2

[Custom List 3]
"nnedi1"
"strange(%­s,%e,nnedi1)"
""
2

modyap

E scaricatevi anche strange, che trovate qui.
Salvate e siamo pronti a iniziare.

Testo che scorre meno di 5 minuti per parte, difficoltà media

Prima di iniziare vi serve ivtc_txt60mc.
CODICE
# Version 1.1
Function ivtc_txt60mc (clip src, int frame_ref, bool "srcbob", bool "draft")
{
       srcbob    = Default (srcbob, false)
       draft     = Default (draft,  false)

       field_ref = (srcbob) ? frame_ref : frame_ref * 2
       field_ref =      field_ref  % 5
       invpos    = (5 - field_ref) % 5
       pel       = (draft) ? 1 : 2

       src
         (srcbob) ? last
\        : (draft ) ? Bob ()
\        :            QTGMC (SourceMatch=1, Lossless=2, tr0=1, tr1=1, tr2=1)

       clean  = SelectEvery (5, 1 - invpos)
       jitter = SelectEvery (5, 3 - invpos, 4 - invpos)
       jsup   = jitter.MSuper (pel=pel)
       vect_f = jsup.MAnalyse (isb=false, delta=1, overlap=4)
       vect_b = jsup.MAnalyse (isb=true,  delta=1, overlap=4)
       comp   = jitter.MFlowInter (jsup, vect_b, vect_f, time=50, thSCD1=400)
       fixed  = comp.SelectEvery (2, 0)
       Interleave (clean, fixed)
       Trim (invpos / 2, 0)
}
#The src parameter is a 30 fps interlaced clip. The frame_ref parameter indicates on which frame begins the 3:2 pattern (first frame number of a clean-combed-combed-clean-clean sequence).
#http://doom10.org/index.php?topic=292.msg5499#msg5499

Come al solito mettete il tutto in un file .avsi e buttatelo nella cartella dei plugin di avisynth.
Attenzione che vi servono tutti i plugin per far funzionare QTGMC, fortunatamente li trovate tutti nel topic.

Prendete l'avs, che più o meno avete avuto modo di vedere nella fine della seconda parte, duplicatelo e date un nome diverso alla copia, io consiglio "horizon12.txt.d2v.avs".
Apritelo e cancellate tutto a parte
CODICE
DGDecode_Mpeg2Source("D:\fansub\horizon12.d2v")
Trim(903,5367)++Trim(7466,23708)++Trim(25509,48104)++Trim(49904,50052)

Ora dobbiamo vedere dove iniziano le zone con testo che scorre e come settare il filtro.
Aprite yatta e cercate la prima zona, vedrete che la è all'incirca compresa tra i frame 5332 e 5930 (1 frame in più non è un problema, uno in meno sì, controllate ma senza farvi troppe seghe mentali), la seconda tra 20947 e 21845.
Cominciamo a lavorare la prima, inseriamo quindi Trim(5332,5930) nello script.
In questo modo, e potete vederlo nella preview di AvsPmod, abbiamo isolato la zone con il testo che scorre.
A questo punto dobbiamo inserire il filtro, ma per farlo dobbiamo settare il parametro "frame_ref", ovvero dobbiamo dire al filtro la posizione del frame c nel primo pattern cnncc.
Fortunatamente YATTA ci indica il tipo di frame esattamente in alto a sinistra.
E siamo pure fortunati, perché il frame 5332 e 20947 sono entrambi il primo frame c del pattern cnncc.
Possiamo quindi inserire ivtc_txt60mc(0) nello script.
avsptxt
Più o meno dovrebbe uscire così, a parte che avrete solo il primo trim, inizialmente.
Aprite virtualdub e salvate la lossless della parte tra 5332 e 5930.
Ci vorrà parecchio, quindi preparatevi altro da fare mentre il pc elabora.

Finito il primo spezzone passiamo al secondo, questa volta inserite Trim(20947,21845) e togliete il trim di prima (o metteteci # davanti come ho fatto io).
Il 20947, come già detto in precedenza, è sempre il primo frame c del pattern cnncc quindi non dovete nemmeno modificare ivtc_txt60mc, salvate lo script, aprite in virtualdub e salvate una seconda lossless.

Fatto questo lasciatele lì che serviranno dopo.

Field Sminchiati anche più di 30 minuti, difficoltà medio/medio-alta

E ora arriviamo a quello che è davvero il motivo per cui usiamo Yatta, ovvero mettere a posto i frame sminchiati dall'MPEG2, in questo caso quelli nei cambi scena.
Prima di farlo però è giusto accennare alla natura del problema, e il problema sono i due frame N nel pattern CNNCC, infatti questi due frame non sono puliti come gli altri C, per intenderci in questa immagine, sarebbero i frame 3 e 4 della serie più a destra.
Questa cosa fa sì che, nel caso siano nel bel mezzo di un cambio scena, si sminchino quasi sempre, mostrando parti del frame precedente/successivo (dipende se il frame è l'ultimo prima del cambio di scena o il primo dopo), croma scazzato ecc ecc.
Il nostro scopo è cercare tutti questi punti e fare in modo che non si noti il problema.
I meccanismi sono nnedi3(0), nnedi3(1) e FreezeFrame.
Per spiegare che fanno meglio andare più sul pratico, per prima cosa andiamo su tools->Find e settiamo yatta.
find
20 è un valore un po' a caso, non è detto che per tutti gli anime vada bene.
Scegliete un compromesso tra falsi positivi e mancate inviduazioni.
Per anime con poca azione e frame di alta qualità potete tranquillamente scendere a 15 o anche meno, sopra il 20 rischiate di non beccare alcuni frame rovinati, quindi porrei più o meno qui la soglia.
Clicchiamo su Next e verremo portati al frame 11, che non ha alcun reale problema, a parte che non è conciato benissimo.
Ignoriamolo e clicchiamo sulla freccia in su, siamo arrivati al frame 261, che è conciato di merda.
E se fate attenzione noterete che quello schifo appena sopra all'orecchio sono in realtà i residui dei capelli di Futayo nel frame precedente (noterete anche che è un cambio scena).
Intanto guardiamoci la preview (F5)

Notate anche che il frame successivo è diverso, quindi non possiamo nemmeno riutilizzarlo.
La soluzione è utilizzare nnedi3, che scarta il field sminchiato e lo ricrea a partire da quello preso meglio.
Per usare nnedi3 abbiamo bisogno delle custom list che abbiamo inserito a inizio guida, se non l'avete ancora fatto chiudete la preview e cliccate su z e x, vedrete in alto a sinistra che z e x servono per scegliere la custom list.
Selezionare nnedi1 e premete due volte c. C serve per selezionare il frame iniziale e quello finale di applicazione, in questo caso a noi interessa fare questi lavori su un solo frame, quindi premete sempre c due volte.
Ora in alto dovreste avere
261after
Aprite ora la preview

C'è ancora un banding della madonna ecc ecc, però tutta la merda che c'era prima è sparita.
Freccia in su e andiamo alla prossima.
Frame 331, anche qui un po' di merda, blocking ecc ecc.
Se notate però il frame precedente è uguale, ma preso meglio.
Tornate al 331, cliccate su F, andate sul 330 e cliccate di nuovo F.
Avete freezeframeato il 331, infatti se tornate ora sul 331 vedrete in realtà il 330, che era di qualità superiore.
png
prima

331fixed
dopo

Freccia in su e andiamo alla prossima.
332, se notate il frame è N barrate e c'è scritto Decimate.
Questo vuol dire che questo frame verrà decimato, ovvero non si vedrà.
I frame segnate come decimate non vanno toccati, sarebbe tempo perso.
Freccia in su e andiamo oltre.
401, frame brutto, il 400 invece è preso bene. Freezeframe e via.
Freccia in su e alla prossima.
456, frame bruttino, ma non è un cambio scena, non è da riparare né con freeze né con nnedi.
Freccia in su e andiamo oltre.
461 idem con patate, freccia in su e andiamo oltre.

481, questo è il frame prima del cambio di scena, e quello prima non è identico.
Se guardiamo la preview si può notare un bel po' di merda, soprattutto sopra alle piante.

Usando z e c selezionate nnedi0 e premete due volte c.
481after
Aprite la preview

Molto meglio.

E con questo abbiamo coperto i freezeframe, nnedi1 e nnedi0.
Freezeframe lo useremo quando c'è un frame uguale ma preso meglio, nnedi1 generalmente nel frame dopo il cambio scena, nnedi0 generalmente nel frame prima del cambio scena.
Horizon ha un sacco di scene d'azione e di frame presi veramente malissimo, in questi casi nnedi1 o nnedi0 non servono praticamente a niente, anzi, a volte risultano essere controproducenti.
Potete provare, ma se vedete che il frame è un blocking unico e quelli precedenti/successivi non è che siano messi meglio saltatelo e stop, nnedi va bene in scene pulite dove c'è un field sporco da scartare, non in scene prese male dove ogni field è compresso a culo.

Detto questo potete sempre fare prove e vedere come viene in preview, se vedete che non migliora o che peggiora potete andare su tools->custom lists, selezionate la custom list inserita, cliccate con il destro sul frame che avete appena modificato e fate Delete.
Andate avanti per il resto dell'episodio.
Saltate a piè pari le parti con la scritta che scorre, quelle le prenderemo dalle lossless fatte al punto prima, quindi non ha senso che fixiate qui.
Detto questo non andrò a spiegare come fixare quei pezzi, però vi lascerò due righe di indizio, dovete in pratica fixarle qui e poi dovrete unire il frame fixato con la scritta della lossless di ivtc_txt60mc (con mask a mano o stackvertical). Roba avanzata comunque.
Evitate, se potete nnedi nelle sigle dove appare del testo scritto, tende un po' a sminchiarlo.

Dopo 30-45 minuti dovreste aver passato tutto l'episodio e inserito qualche decina di nnedi1, qualche decina di nnedi0 e almeno un centinaio di FreezeFrame.
Salvate e passiamo al punto successivo, mettere tutto insieme.


Riaprite horizon12.d2v.avs con AvsPmod, vedrete quasi 200 righe del vostro effort.
Ora andate dopo TDecimate, dove andremo ad inserire le lossless fatte con ivtc_txt60mc (dato che sono già decimate).
Caricatele entrambe con Avisource e date loro un nome decente.
Io ho optato per
CODICE
ivtctxt1=AVISource("J:\loss\horizon12.txt1.d2v.avi")
ivtctxt2=AVISource("J:\loss\horizon12.txt2.d2v.avi")

A questo punto dovete tagliuzzate il video decimato e inserire le lossless nei punti dove scorre il testo.
Ci serve sapere i frame, torniamo quindi su Yatta.
ivtctxt60mc
Questo frame è l'inizio della seconda parte, notate che nella parte sotto c'è scritto che il frame decimato è il 16758 (il frame non decimato lo sapevamo già, è quello usato per il trim mentre preparavamo la lossless, ed è quello che si legge in alto a sinistra).
(potete anche notare tutta la storia del pattern cnncc di cui avevo parlato all'inizio)
Questo vuol dire che fino al 16757 deve arrivare il video, poi inseriamo la nostra lossless, una volta finita rimettiamo il video.
In particolare abbiamo
4266 inizio prima parte, 4744 fine prima parte 16758 inizio seconda 17476 fine seconda parte.
Questo vuol dire che per inserirle nel video dobbiamo fare qualcosa come:
last.Trim(0,4265)++ivtctxt1++last.Trim(4745,16757)++ivtctxt2++last.Trim(17477,0)
Inseriamo quindi questa riga subito dopo il caricamento delle lossless.
Modifichiamo infine il resize reinserendo ResampleHQ.

http://pastebin.com/StE1tBgK
Questo dovrebbe essere all'incirca il risultato finale. (edit: in realtà in 2 o 3 punti ho imbrogliato un po' inserendo un freezeframe quando l'unica parte in movimento era la barriera del cavolo tra Toori e Horizon, non si nota e veniva molto meglio)
Io ho anche inserito Vinverse(), denoise e sharpening (non realmente necessari, ma tanto il 90% dei gruppi lo farebbe comunque, quindi tanto vale inserire 2 robe che sono all'incirca sensate).
Niente debanding perché punto ad encodare a 10bit, ma spiegherò meglio la cosa appena prima dell'encoding.

Salvate, fate una lossless e ci rivediamo nella terza parte.
Mi raccomando, una volta che avete fatto queste modifiche al .avs non salvate più da Yatta, o andrete a sovrascriverlo, con grande giramento di balle.

Appendice B

Scorrendo tutto il TS vi sarete accorti che ci sono diversi frame o addirittura molte parti che sono messe davvero male.
Lo scopo della guida non è quello di spiegarvi come fa mirko a perdere 3+ ore su un TS, ma per farvi vedere giusto le basi per fare un buon lavoro.
Ovviamente il modo per migliorare senza sbattersi troppo c'è, e voglio lasciare un indizio

CODICE
[Custom List 0]
"nnedi0start"
"nnedi0=nnedi3(0)"
""
2
0,0

[Custom List 1]
"nnedi1start"
"nnedi1=nnedi3(1)"
""
2
0,0

[Custom List 2]
"cleanstart"
"cleaned=Deblock_QED().nlmeanscl(h=1.5,plane=4)"
""
2
0,0

[Custom List 3]
"nnedi0"
"strange(%­s,%e,nnedi0)"
""
2

[Custom List 4]
"nnedi1"
"strange(%­s,%e,nnedi1)"
""
2

[Custom List 5]
"clean"
"strange(%­s,%e,cleaned)"
""
2

O se non vi va nlmeanscl va bene anche Deblock_QED().dfttest(tbsize=3).
Inutile dire che andreste ad applicare la custom list nelle zone da ripulire (in realtà è molto debole e non farà molto, un filtraggio serio richiede decisamente più custom list, così da scegliere la migliore per il frame in questione, ma andiamo già su roba che porta via davvero tanto tempo, e non è questo lo scopo della guida (non per niente questa è un'appendice).

Edited by Tada no Snob - 19/6/2012, 20:39
 
Web  Top
view post Posted on 22/12/2011, 17:45     +1   -1
Avatar

Snobbery Inside

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

Status:


E finalmente arriviamo alla terza e ultima parte, più breve e più di utilità generale (doppio fuck yeah).

Encode e Muxing 10 minuti a dire tanto, difficoltà bassa

A questo punto abbia la lossless, non dobbiamo far altro che encodarla.
Semplice?
Fino ad un certo punto, perché ovviamente noi andremo ad encodare a 10bit, quindi ci serve qualche filtro per rendere il tutto il più ottimale possibile.
Iniziate scaricando dither, e già che ci siete l'ultima revision di x264.

Per prima cosa dobbiamo preparare l'avs di input, la cosa non è difficile e potete tranquillamente aiutarvi con AvsPmod.
Consiglio qualcosa del tipo
CODICE
AVISource("J:\loss\horizon12.loss.avi")
GradFun3(thr=0.3,smode=3,lsb=true)
Dither_convey_yuv4xxp16_on_yvxx()

Ovvero, prima carico la lossless, debanding a 16bit e poi output corretto a 16 bit.
In questo modo abbiamo più o meno levato il problema del banding e ottenuto un video a 16bit quasi reali, o per lo meno che è a 16bit dove interessa a noi.
Salvatelo come horizon12.avs e proseguiamo.

A questo punto dobbiamo solo encodarlo con x264, penso che sappiate già encodare un avs con x264, però per gli input a 16 bit la cosa è un po' diversa, o almeno lo era fino alle nuove revision.
Ma prima di questo è il momento di divertirci creando il qpfile.
Cos'è il qpfile, è un file di testo che andremo a scrivere per dire a x264 dove posizionare i keyframe, questo ci servirà per fare seeking verso i capitoli, ma capirete meglio dopo.
Io consiglierei di aprire la lossless con virtualdub, a questo punto cercate l'inizio della opening, l'inizio della prima parte, l'inizio dell'eyecatch, l'inizio della seconda parte, l'inizio della ending e l'inizio della anticipazioni.
Segnatevi il numero del frame e mettetelo su un blocco di testo, un frame per riga.
A fianco di ogni frame scrivete " I -1".
Alla fine dovreste avere all'incirca
CODICE
1415 I -1
3572 I -1
16497 I -1
16567 I -1
32702 I -1
34643 I -1

Salvatelo come horizon12.qpf e proseguiamo.

Abbiamo detto che dalla nuova revision anche per i 16 bit si è fatto più semplice encodare.
Questo vuole dire che potete caricare direttamente l'avs senza bisogno di fare pipe.
Ovvero potete usare le commandline che avete usato fino a questo momento (se usavate megui questo è il momento di andare a inginocchiarsi sui ceci).
Quando la componete, a parte i soliti parametri, assicuratevi di inserire
CODICE
[...]--input-depth 16 --qpfile "horizon12.qpf" --output "horizon12.mkv" "horizon12.avs"
pause

Ovvero la bitdepth (x264 deve sapere a quanti bit è il video), il qpfile appena creato, input e output (ok, queste due cose erano anche ovvie).
Encodate.

A encoding finito è ora di caricare video e audio (che abbiamo preparato alla fine della prima parte, nella sezione della WR) in mkvmerge gui
muxing1
Muxate (probabilmente si potrebbe fare a meno di questo passaggio, ma preferisco avere i timecode scritti da mkvmerge) e tenete aperto mkvmerge gui.

Ora dobbiamo creare i capitoli.
Aprite Aegisub, caricate il mkv appena muxato.
Riaprite il qpfile.
Riprendete mkvmerge e andate su chapter editor, fate chapter editor->new chapters dal menu in alto.
Selezionate new chapter file e cliccate su add chapter.
Selezionate la edition e create tanti subchapter quanti ve ne servono.
O fate questo o ne prendete uno già fatto e lo moddate, il mio lo trovate qui.
A questo punto dovete dare i nomi ai capitoli e dare il timecode giusto.
Praticamente dovete: leggere il numero del frame dal qpfile, andare su aegisub, CTRL+G, inserire il numero di frame, dare l'ok, copiare il timecode dalla barra, incollarlo su mkvmerge gui dando il nome corretto e poi procedere al capitolo successivo.
Quest'immagine credo illustri bene il procedimento.

In questo caso siamo all'inizio dell'eyecatch (è il primo frame in cui si iniziano a vedere la banda nera in alto e quella bianca in basso).
Fate così per tutti i capitoli e poi salvate come horizon12.xml.
Chiudete pure il qpfile e aegisub.

Torniamo a mkvmerge gui, andate su Global, e nella sezione chapters selezionate il file e impostate il linguaggio italiano.
Consiglio anche di inserire in File/Segment Title il "nome" dell'episodio, Kyōkai Senjō no Horizon 12 o quello che preferite. Se usate mpc non è un'informazione che probabilmente vedrete, ma VLC la mostra nel titolo della finestra, quindi averlo corretto credo sia un plus.
Tornate sotto input, inserite l'.ass del softsub, selezionate le 3 tracce ad una ad una e mettetele tutte come default track "yes", selezionate la lingua corretta (il sub è importante che sia segnato come ita, per lo meno) e date loro un nome sensato.
Sotto attachments ricordatevi di muxare tutti i font, assicuratevi anche che tutti abbiano come MIME type "application/x-truetype-font", dato che Haali non carica font segnati in modo diverso.
Date un nome decente al file e fate il mux finale.
Basta, abbiamo finito.

Nel caso in particolare una volta finito l'effort potete prendere l'encode e buttarlo nel cesso, dato che abbiamo encodato da TVK, che è una delle reti peggiori possibili, ed è conosciuta per trasmettere in qualità ORRENDA.
A conti fatti, se non si è in possesso di TS di reti decenti, tanto vale remuxare encode fatti da altre reti.
Nel caso di Horizon direi che MBS e Chiba sono entrambe ottime alternative.

P.S. Il mio consiglio personale è quello di fare sempre i capitoli quando si encoda in matroska, ci vuole poco a farli e sono comodi per chi vuole saltare lo sigla, o magari riascoltarsela una volta senza star lì a cercarla nella timeline.
Inoltre non farli dà l'impressione di un lavoro sciatto, fatto di fretta e con poca cura.

Edited by Tada no Snob - 27/12/2011, 02:35
 
Web  Top
Nicky_i
view post Posted on 22/12/2011, 17:49     +1   -1




Bella guida, Tada.
 
Top
Byakko
view post Posted on 22/12/2011, 17:58     +1   -1




YMC mi stava lavorando l'episodio proprio adesso, grazie per gli hint :sigh:
 
Top
view post Posted on 22/12/2011, 19:45     +1   -1
Avatar

Bimbosp

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

Status:


<mirkosp> Chibi_Goku Per prima cosa dategli un nome decente con i caratteri orizzontali, consiglio "horizon12.ts".
<mirkosp> orizzontali => occidentali
<mirkosp> Aggiungete il d2v a ymc, se il vostro schermo ha più di 1080 pixel di risoluzione verticale siete anche a posto così, altrimenti spuntate crop e cutter e mettete crop al primo posto, selezionatelo e cliccate su configure.
<mirkosp> Croppate quindi tanti pixel quanti sono necessari per riportare la risoluzione del TS a una decisamente inferiore alla risoluzione del vostro schermo.
<mirkosp> Date l'ok e uscite.
<mirkosp> guarda che ora la finestra del cutter accetta resize
<mirkosp> puoi downscalare la finestra tranquillamente se è troppo grande
<mirkosp> Selezionate telecide e decimate e siete pronti a partire.
<mirkosp> fagli mettere anche scxvid...
<mirkosp> almeno hanno le info dei cambi scena
<mirkosp> e i cambi scena sminchiati li controllano con ctrl+su
<mirkosp> che è più sicuro che fare vmetric
<mirkosp> visto che solo con vmetric può scappare roba e prendi falsi positivi
<mirkosp> quindi è meglio fare tutti i cambi scena da scxvid e poi un secondo giro con vmetric alta per fixare la roba palese che non è nei cambi scena
<mirkosp> poi vi chiederà probabilmente se volete impostare "horizon12 PID 110 DELAY -256ms.aac" come audio del progetto. Imho non serve a niente, fate voi.
<mirkosp> questo serve a chi vuole re-encodare l'audio
<mirkosp> perché yatta crea il file avs per l'audio
<mirkosp> che carica l'audio e mette i trim e il normalize
<mirkosp> non hai fatto pattern guidance -> set minimal length
<mirkosp> che è da mettere a 5 per i Real Men
<mirkosp> certo è che con questo metodo non serve
<mirkosp> serve se fai le sezioni con scxvid
<mirkosp> e lì devi spiegare più che pattern guidance a forzare i pattern con try/use pattern
<mirkosp> Non siamo qui a fare il resize perfetto con meno di 0.0001% dall'AR, sbattevene il cazzo visto che tanto è possibilissimo che le trasmissioni tv abbiano l'AR leggermente sminchiato (però ovviamente non croppate 50 pixel in larghezza e 0 in altezza, se no rischiate davvero che ridimensionando le proporzioni finiscano per essere sballate).
<mirkosp> indicativamente l'errore che devi avere è di circa il 25% selezionando par 1.0
<mirkosp> quindi se vedi che sei sotto il 24% o sopra il 26% allora è meglio overcroppare dove si può

La roba di scxvid serve per seguire la roba della seconda sezione che deve ancora fare, a meno che abbia intenzione di farvi fare tutto tramite vmetric, però a quel punto serve una vmetric molto bassa (10-15) e diventa pesante, meglio scxvid+secondo giro con vmetric medio-alta (30-40).
Per il 25% dell'errore di resize, si intende da 1440x1080 che va resizato a 16:9, ovviamente.
 
Web  Top
view post Posted on 22/12/2011, 20:30     +1   -1
Avatar

Snobbery Inside

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

Status:


Ci vorrebbe una guida solo per la pattern guidance vera e tutti i trucchetti.
Però è roba complessa e francamente :effort:, e bisogna comunque avere davvero idea di quello che si sta andando a fare, cosa che io suppongo molta gente non abbia, e forse non è neanche interessata ad avere.
tl;dr se sei capace bene, se no non sarò io a dirti come fare.
Allo stesso modo controllare i cambi scena in un anime di azione diventa una rottura di cazzo visto che Xvid ci mette 579845994 keyframe, anche qui, l'utilità è discutibile, e il tempo perso tanto, ed è roba che farebbero solo 4 nerd di encoder.
E saremmo al punto di partenza, non serve una guida del genere, e se servisse tanto varrebbe fare il WoT nerdoso, tanto se uno ha intenzione di perderci ore per fare l'encode perfetto può leggersi anche una guida solo testo, anzi, farebbe pure prima.

Per l'aspect ratio tanto non se ne accorgerà nessuno, quindi why bother?
Considerando che difficilmente si avrà da overcroppare in una direzione e non nell'altra, lo considero un falso problema.
Ed è tutta roba che uno può approfondire in seguito, quando avrà imparato l'abc e vorrà documentarsi meglio.

(bello invece che il cutter ora abbia il resize, ero rimasto fermo alla versione prima di yatta, meno sbattimento per tutti \o/)
 
Web  Top
view post Posted on 23/12/2011, 23:51     +1   -1
Avatar

Snobbery Inside

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

Status:


Herp derp, postata la seconda parte (la più effortosa).
 
Web  Top
view post Posted on 24/12/2011, 00:04     +1   -1
Avatar

Bimbosp

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

Status:


CITAZIONE (Tada no Snob @ 22/12/2011, 17:45) 
Ovviamente il modo per migliorare senza sbattersi troppo c'è, e voglio lasciare un indizio

Per fare filtraggio in punti specifici è meglio utilizzare i preset e sfruttare le sezioni, che se uno vuole fare il lavoro perfetto ha già dal passaggio di scxvid, altrimenti basta crearsele.
Inoltre, se si aveva fatto scxvid, è meglio controllare direttamente i cambi scena con ctrl+su e ctrl+giù, per vedere quali sono sminchiati, e poi farsi un passaggio a vmetric (solo V, non from previous) attorno al 30-40.
 
Web  Top
view post Posted on 24/12/2011, 00:08     +1   -1
Avatar

Snobbery Inside

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

Status:


Beh, quasi mai la sezione copre perfettamente la parte da filtrare, e a volte si può voler filtrare solo il frame N sminchiato (tipo quando ci sono le esposioni, e solo in frame N ha del blocking).
A conti fatti usare le CL pure lì è una soluzione abbastanza comoda (per lo meno finché ne hai poche), inoltre non avevo voglia di mettermi lì a spiegare il funzionamento delle sezioni :P
 
Web  Top
view post Posted on 25/12/2011, 01:19     +1   -1
Avatar

Snobbery Inside

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

Status:


Terza e ultima parte postata (fortunatamente la più breve).
 
Web  Top
terrablu2003
view post Posted on 26/12/2011, 16:10     +1   -1




Grazie mille altro che "snob" diamogli del Tada "il santo" e snob comunque!!! :D

Bella guida,con tante immagini e non tanto complicata,ci voleva proprio.Spero.....meglio,voglio che quast'angolo diventi un "archivio" dove poter "tirare" su le nuove leve e non , dell'fansub italico"di qulità"!!! ;)
 
Top
Byakko
view post Posted on 27/12/2011, 16:40     +1   -1




Uhm, nel momento in cui preparo la lossless generale, o almeno, in cui dovrei prepararla Virtualdub mi da questo errore quando provo a caricare l'.avs, mentre AvsPmod lo apre senza problemi.
Come posso fa' per risolvere?

Ho provato in ogni caso a mettere il dithering a 16bit post resize nell'.avs principale, e x264 lo accetta tranquillamente.
 
Top
view post Posted on 27/12/2011, 19:59     +1   -1

Junior Member

Group:
Utente abilitato
Posts:
40
Reputation:
0

Status:


prova con virtualdubmod, a me worka
 
Top
view post Posted on 27/12/2011, 22:19     +1   -1
Avatar

Apprendista encoder

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

Status:


CITAZIONE (Ithilion @ 27/12/2011, 19:59) 
prova con virtualdubmod, a me worka

:ban:
 
Top
18 replies since 22/12/2011, 17:42   4546 views
  Share