Repository 32bit  Forum
Repository 64bit  Wiki

[RISOLTO]x264 e sorgente interlacciata

Postate qui per tutte le discussioni legate a Linux in generale.

Moderatore: Staff

Regole del forum
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Gnu/Linux in genere, se l'argomento è specifico alla Slackware usate uno dei forum Slackware o Slackware64.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.

[RISOLTO]x264 e sorgente interlacciata

Messaggioda rik70 » gio mag 02, 2013 14:10

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
Ultima modifica di rik70 il sab mag 04, 2013 8:19, modificato 1 volta in totale.
rik70
Linux 3.x
Linux 3.x
 
Messaggi: 1280
Iscritto il: gio mar 10, 2011 9:21
Slackware: 14.1
Kernel: generic-smp
Desktop: Xfce

Re: x264 e sorgente interlacciata

Messaggioda ponce » gio mag 02, 2013 15:33

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...
Avatar utente
ponce
Master
Master
 
Messaggi: 1514
Iscritto il: mer mar 05, 2008 16:45
Località: Pisa
Nome Cognome: Matteo Bernardini
Slackware: slackware64-current
Kernel: 3.18-rc2
Desktop: lxde

Re: x264 e sorgente interlacciata

Messaggioda rik70 » gio mag 02, 2013 15:39

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
rik70
Linux 3.x
Linux 3.x
 
Messaggi: 1280
Iscritto il: gio mar 10, 2011 9:21
Slackware: 14.1
Kernel: generic-smp
Desktop: Xfce

Re: x264 e sorgente interlacciata

Messaggioda miklos » gio mag 02, 2013 20:45

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.
ho visto cose che voi astemi non potete immaginare
miklos
Linux 3.x
Linux 3.x
 
Messaggi: 1277
Iscritto il: lun lug 16, 2007 16:39
Località: Roma
Slackware: 14.1 64bit
Kernel: 3.16.3
Desktop: openbox 3.5.2

Re: x264 e sorgente interlacciata

Messaggioda ponce » gio mag 02, 2013 20:52

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
Avatar utente
ponce
Master
Master
 
Messaggi: 1514
Iscritto il: mer mar 05, 2008 16:45
Località: Pisa
Nome Cognome: Matteo Bernardini
Slackware: slackware64-current
Kernel: 3.18-rc2
Desktop: lxde

Re: x264 e sorgente interlacciata

Messaggioda rik70 » ven mag 03, 2013 7:22

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.
rik70
Linux 3.x
Linux 3.x
 
Messaggi: 1280
Iscritto il: gio mar 10, 2011 9:21
Slackware: 14.1
Kernel: generic-smp
Desktop: Xfce

Re: x264 e sorgente interlacciata

Messaggioda miklos » ven mag 03, 2013 9:01

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
ho visto cose che voi astemi non potete immaginare
miklos
Linux 3.x
Linux 3.x
 
Messaggi: 1277
Iscritto il: lun lug 16, 2007 16:39
Località: Roma
Slackware: 14.1 64bit
Kernel: 3.16.3
Desktop: openbox 3.5.2

Re: x264 e sorgente interlacciata

Messaggioda rik70 » ven mag 03, 2013 9:55

@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.
rik70
Linux 3.x
Linux 3.x
 
Messaggi: 1280
Iscritto il: gio mar 10, 2011 9:21
Slackware: 14.1
Kernel: generic-smp
Desktop: Xfce

Re: x264 e sorgente interlacciata

Messaggioda 414N » sab mag 04, 2013 8:10

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)
Avatar utente
414N
Iper Master
Iper Master
 
Messaggi: 2882
Iscritto il: mer feb 13, 2008 16:19
Località: Bulagna
Slackware: 14.0 (x64)
Kernel: 3.2.29
Desktop: LXDE

Re: x264 e sorgente interlacciata

Messaggioda rik70 » sab mag 04, 2013 8:18

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.
rik70
Linux 3.x
Linux 3.x
 
Messaggi: 1280
Iscritto il: gio mar 10, 2011 9:21
Slackware: 14.1
Kernel: generic-smp
Desktop: Xfce

Re: [RISOLTO]x264 e sorgente interlacciata

Messaggioda rik70 » sab mag 04, 2013 8:22

@414N

Grazie, terrò a mente.
rik70
Linux 3.x
Linux 3.x
 
Messaggi: 1280
Iscritto il: gio mar 10, 2011 9:21
Slackware: 14.1
Kernel: generic-smp
Desktop: Xfce

Re: [RISOLTO]x264 e sorgente interlacciata

Messaggioda miklos » gio mag 23, 2013 11:16

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?!?!??!?
ho visto cose che voi astemi non potete immaginare
miklos
Linux 3.x
Linux 3.x
 
Messaggi: 1277
Iscritto il: lun lug 16, 2007 16:39
Località: Roma
Slackware: 14.1 64bit
Kernel: 3.16.3
Desktop: openbox 3.5.2


Torna a Gnu/Linux in genere

Chi c’è in linea

Visitano il forum: Exabot [Bot], Google [Bot], Yahoo [Bot] e 1 ospite