Pagina 1 di 1

[RISOLTO]x264 e sorgente interlacciata

Inviato: gio mag 02, 2013 15:10
da rik70
Salve di nuovo a tutti.

Per puro esercizio di stile, sto provando a convertire alcuni frammenti di dvd in h264-720p. So che non è il massimo della vita per quel che riguarda la qualità, ma devo dire che con alcuni il risultato non è malaccio.

Alla fine mi sono imbattuto in un dvd a 25 fps interlacciato, e qui casca l'asino (io): che fare? Ho provato a deinterlacciarlo coi filtri yadif e kerndeint, ma la perdita è "mostruosa". In pratica si notano in maniera "drammatica" i "postumi" del deinterlacciamento. Leggo in rete che per preservare la qualità bisognerebbe codificarlo interlacciato, ma sinceramente non so come si fa e c'ho capito poco e nulla.

Qualcuno che ha buone dritte?

Per la codifica utilizzo x264, ffmpeg/ffmbc, mplayer e mkvtoolinix.

Grazie in anticipo come sempre.

Ciao

Re: x264 e sorgente interlacciata

Inviato: gio mag 02, 2013 16:33
da ponce
io per deinterlacciare i dvd utilizzo -vf yadif=2:0:0 con ffmpeg ma devo dire di non riscontrare perdita di qualita'.

puo' darsi che quella sia dovuta all'upscaling (che andrebbe evitato), convertendo una sorgente da 576p (la risoluzione dei dvd) a 720p...

Re: x264 e sorgente interlacciata

Inviato: gio mag 02, 2013 16:39
da rik70
ponce ha scritto:io per deinterlacciare i dvd utilizzo -vf yadif=2:0:0 con ffmpeg ma devo dire di non riscontrare perdita di qualita'...


Ciao,

grazie proverò :)

P.s.
In effetti - se non ho capito male - codificarlo interlacciato presuppone che poi l'hardware o il software che lo decodifica faccia l'inverso.

Sto testando il tutto su un decoder HD DTT.

Vabbè, provo il tuo "trucco" e faccio sapere.

Grazie

Re: x264 e sorgente interlacciata

Inviato: gio mag 02, 2013 21:45
da miklos
mi sono imbattuto in un problema simile.
a parte che l'upscaling nn te lo consiglio nemmeo io a prescindere perchè la qualità è abbastanza scarsa(tipicamente perdi in nitidezza), forse il problema dipende da come ordini i filtri.
io uso mplayer in pipe col binario x264 e ho notato che se applico una qualsiasi forma di scaling prima del deinterlacciamento viene una porcheria, se invece deinterlaccio con yadif=0(o yadif=2 come suggeriva ponce) eppoi effettuo lo scaling il risultato è molto buono.

Re: x264 e sorgente interlacciata

Inviato: gio mag 02, 2013 21:52
da ponce
questo e' un comando di esempio che ho usato per fare un rip qualche tempo fa dove encodo un titolo di dvd in flash (h264/aac e altre opzioni abbastanza basiche) e faccio un leggero resize

Codice: Seleziona tutto

ffmpeg -i /data/scratch/title.vob -vf yadif=2:0:0 -async 44100 -f flv -s 864:480 -aspect 9:5 -codec:a libfaac -ar 44100 -ab 192k -codec:v libx264 -preset slower -b 1400k rippato.flv

Re: x264 e sorgente interlacciata

Inviato: ven mag 03, 2013 8:22
da rik70
Ok, ho fatto un pò di prove con yadif:

@miklos
hai ragione, l'upscaling fa perdere parecchio in nitidezza, forse è meglio non salire troppo. Lasciando la risoluzione originale le cose vanno molto meglio. Anche perché di suo il decoder digitale fa l'upscaling a 1080i su porta hdmi, il che aggiunge ulteriore disturbo. Per la sequenza filtri: sì, anch'io uso mettere yadif o kerndeint prima dello scaling della risoluzione.

@ponce
Ok, proverò anch'io a fermarmi prima dei 720p, vediamo se migliora. Vedo però che tu usi dei settaggi più votati alla qualità. Io utilizzo diciamo così impostazioni per una codifica + veloce visto l'hw che ho a disposizione. Poi tu usi '-s XxY' per lo scaling, mentre io utilizzo i filtri video 'scale' e all'occorrenza 'crop' e 'pad'. Ancora: per il bitrate io utilizzo -crf. Non so però se sbaglio qualcosa.

Vabbè ....posto il comando:

Codice: Seleziona tutto

mplayer dvd://1 -chapter 2-2 -dumpstream -dumpfile >(ffmpeg-git -i - -vf yadif=mode=2:parity=-1:deint=1,scale=1280:720:flags=0x200 -aspect 1.78 -vcodec libx264 -preset ultrafast -profile:v main -tune film -x264opts crf=23:bframes=2:subme=1:me=dia:trellis=1 -acodec libfaac -ac 2 -ab 224k -v 0 -y x264-720p.mkv ) -really-quiet


La versione di ffmpeg è una git recente. Da notare lo scaling fatto coi filtri video, dove 'scale' è seguito da 'flags=0x200' che imposta il filtro Lanczos, equivalente a -sws 9 di mpayer/mencoder.

Comunque con yadif impostato in quel modo il risultato è buono, almeno alla risoluzione originale (720x576). Proverò poi scalando a 480p.

Re: x264 e sorgente interlacciata

Inviato: ven mag 03, 2013 10:01
da miklos
utilizzando il crf 23 con quella risoluzione il risultato è molto scarso.. dovresi usare almeno il 20 o ancora meglio il 18(se non ancora piu' basso).
per quanto riguarda le considerazioni se sia meglio una codifica a 'qualità' costante come il crf o una tecnica a bitrate fisso(magari a piu' passaggi) credo che la differenza piu' importante sia che con usando il bitrate fisso hai maggiore controllo sulla dimensione finale del file.

comunque guardando i tuoi settaggi(codifica veloce e qualità di conseguenza) non so quanto ti convenga a sto punto usare meglio un xvid piuttosto che l'x264.. che comunque è piu' "leggero" e potresti paradossalmente ottenere risultati migliori(ribadisco.. visti i preset che usi tu)

altro suggerimento è l'utilizzo del filtro hq3dn (io ne uso uno molto 'leggero' hq3dn=2:1:2:2) che rende piu' morbida l'immagine (riducendone il disturbo) con una conseguente migliore compressibilità.

altro piccolo suggerimento è quello di nn effettuare alcuno scaling. i dvd PAL tipicamente hanno una risoluzione di 720x576 che poi il player riscala in modo da avere l'aspetto corretto (per i 16:9 1024x576).
se comprimi senza fare lo scaling lavori su un'immagine piu' "piccola"

comunque la codifica audio/video è un mondo abbastanza vasto e di consigli/opinioni ne troverai a bizzeffe... devi fare diverse prove fino ad ottenere il risultato desiderato :D

Re: x264 e sorgente interlacciata

Inviato: ven mag 03, 2013 10:55
da rik70
@miklos
Grazie.

Allora, ho ottenuto ottimi risultati in questo modo:

crf 20 ==> in questo modo, come dicevi, aumenta considerevolmente il bitrate video e la qualità finale non ne risente - è molto vicina all'originale.

Per la risoluzione:
scale=848:480:flags=0x200 -aspect 1.766

yadif è impostato così:
yadif=mode=1:parity=-1:deint=1 ==> dovrebbe essere equivalente a ' yadif=1:-1:1 '

Con mode=1 viene generato in uscita un fotogramma per ogni campo, portando il framerate da 25 a 50fps, senza nessuna perdita di sincronia audio video. Il deinterlacciamento (deint=1) viene applicato solo sui fotogrammi segnati come interlacciati. il parity=-1 rileva in automatico il tipo di interlacciamento del video in ingresso, ripiegando se fallisce su tff.

Ora non so se tutto questo rientri negli standard, però il raddoppio del framerate porta benefici tangibili: scompare quella sensazione visiva di perdita di fluidità dovuta al deinterlacciamento - o almeno su schermo lcd. La qualità è buona se non di più, e puntando su preset meno veloci - come medium o slower - non si percepiscono grosse differenze.

Notavo che molti filmati americani sul web sono a 60fps - nascar.com ad esempio - segno forse che anche loro fanno una cosa del genere quando codificano.

Ah dimenticavo: il decoder DTT si beve il tutto senza problemi.

Proverò poi col 720p.

A voi l'ardua sentenza.

Re: x264 e sorgente interlacciata

Inviato: sab mag 04, 2013 9:10
da 414N
My 2 cents:
  • evita qualsiasi riscalatura verso l'alto durante la codifica. Questo è poco sensato con qualsiasi codec video (che non sia vettoriale), in quanto l'immagine viene ingrandita tramite un'interpolazione (leggasi: i pixel mancanti vengono inventati di sana pianta prendendo spunto dai vicini).
  • io sono solito ricodificare le mie registrazioni dal digitale terrestre (formato MPEG2 molto simile a quello dei DVD) usando crf > 20 (tipicamente 24/25), yadif per il deinterlacciamento e un qualche filtro di denoise se serve (occhio che hqdn3d di mplayer è molto "forte" anche quando usato con media intensità, a mio avviso)

Re: x264 e sorgente interlacciata

Inviato: sab mag 04, 2013 9:18
da rik70
Uhau, va anche il 720p. Anche se sono bit sprecati: 480p va + che bene.

Comunque i risultati migliori li ottengo con -profile High e -preset medium. In questo caso il crf imposta il bitrate a valori molto + bassi rispetto all' ultrafast che usavo prima, senza però perdere in qualità.

Però è il parametro subme=6 che fa la differenza. Viene impostato a questo valore a partire dal preset fast. Ponce utilizza addirittura il preset slower, che setta 'subme' a 9 !!! Valori del genere per il mio hw sono proibitivi. Ma questo lo sapevo già 8)

Ok, metto risolto allora.

P.s.
Per i sottotitoli su .mkv come vi regolate? Subrip?

Ciao e grazie ancora.

Re: [RISOLTO]x264 e sorgente interlacciata

Inviato: sab mag 04, 2013 9:22
da rik70
@414N

Grazie, terrò a mente.

Re: [RISOLTO]x264 e sorgente interlacciata

Inviato: gio mag 23, 2013 12:16
da miklos
riuppo questo post per avere eventuali suggerimenti su un 'problema' che ho riscontrato deinterlacciando con yadif delle sorgenti interlacciate.
in pratica sporadicamente in alcune sequenze (non per forza di cose con movimenti rapidi dei soggetti) viene un fastidioso effetto 'slow motion' non inteso pero' come video che scatta causa player, sembra proprio che alcuni frame vengano duplicati, e altri rimossi per tenere il sincronismo audio.

ho risolto usando al posto di yadif il filtro pp=ci.

ho letto da qualche parte che lo si puo' anteporre a yadif per ottenere risultati pressocchè perfetti, ma a me sta cosa nn mi convince troppo.

voi che ne pensate?!?!??!?