Hardware Upgrade Forum

Hardware Upgrade Forum (https://www.hwupgrade.it/forum/index.php)
-   Editing e Codec video (https://www.hwupgrade.it/forum/forumdisplay.php?f=29)
-   -   [GUIDA] Convertire Da Blu-ray a MKV lossless no recoding (qualità 1:1) (https://www.hwupgrade.it/forum/showthread.php?t=2242524)


sc82 06-12-2010 09:37

Guida FANTASTICA!!! :ave:


Segnalo un paio di cose:

- MPC-HC sembra ignorare completamente i flag di default o di forced che vengono messi con MKVmerge, per cui se si vuole creare un mkv con due o più tracce audio (o sottotitoli) e fare in modo che parta in automatico quella che vogliamo noi, occorre spostarla in alto come prima della lista sempre su MKVmerge (usando i bottoni UP e DOWN si sposta l'ordine delle tracce).
MPC-HC infatti apre in automatico la prima traccia audio e la prima traccia sottotitoli che trova.


- Spesso le tracce audio contengono un'informazione sul delay da applicare durante la riproduzione. Questo delay viene in automatico fixato da StreamExtractor, ma in questo modo capita di frequente che resti un disallineamento di qualche ms che non riesce a correggere.
(Naturalmente è impossibile notare il problema ai fini pratici, è che io vado alla ricerca della perfezione assoluta :D)
Per risolvere io preferisco non far correggere il delay a StreamExtractor, il quale in pratica aggiunge o toglie qualche frame all'inizio della traccia audio per renderla allineata, ma estrarla così com'è, prendere nota di quanto dev'essere il ritardo/anticipo e impostarlo identico in MKVmerge.

- MKVmerge non supporta le tracce audio PCM :(

DMD 06-12-2010 10:31

Grazie per la precisazione in merito sul delay audio, anche se non mi ero accorto del problema, quindi se non ho capito male estrai così come sono i flussi con StreamExtractor , poi utilizzi Mediainfo per verificare il ritardo/anticipo in in ms del flusso audio in modo da da applicarlo a MKVmerge?

Per quanto riguarda le tracce audio in pcm, speriamo che sia possibile farlo con le prossime release di MKVToolnix.

Un saluto

sc82 06-12-2010 11:00

Me ne sono accorto solo andando a spulciare i log di StreamExtractor ;)


Nel dettaglio io faccio così:

StreamExtractor indica, se presente, il delay della traccia audio alla fine della descrizione dello stesso (spesso il campo è troppo lungo e bisogna andarci sopra col mouse per visualizzarlo tutto), supponiamo di trovare segnalato "80ms".

StreamExtractor a questo punto fixa in automatico questo delay (si vede l'operazione di correzione del log), ma io non voglio che lo faccia, e per ottenere questo aggiungo nel campo "+options" un delay OPPOSTO, quindi in questo caso scrivo "-80ms". Dal log non appare più nessuna operazione di correzione.

Quando vado a creare l'MKV, seleziono la traccia audio, vado su "Format specific options" e li trovo un campo delay nel quale vado a scrivere "80".



In questo modo sono sicuro che l'audio sarà sincronizzato preciso al millesimo come nell'originale! :)

DMD 06-12-2010 11:15

Ho capito, non mi trovavo, in quanto non accade con tutti i film.

Questo è AVATAR






p.s. Ma StreamExtractor perchè non corregge bene questo problema?

Boh!

sc82 06-12-2010 11:25

In quel caso non c'è nessun delay, altrimenti l'avresti trovato indicato alla fine della voce che hai correttamente evidenziato col mouse.

Se c'era, nel log avresti trovato

Codice:

[a03] Applying (E-)AC3 delay...
[a03] A remaining delay of +4ms could not be fixed.

sicuramente una scritta come quella verde, seguita (spesso) da quella rossa che indica il ritardo residuo non corretto, che è quello che non voglio avere.

DMD 06-12-2010 11:33

Difatti me ne sono accorto, ho editato il post di sopra.

Comunque se hai gia verificato che la "correzione" di Stream Extractor non è efficace come dovrebbe, correggo la guida con questo importante appunto.

sc82 06-12-2010 12:34

Quote:

Originariamente inviato da DMD (Messaggio 33849893)
p.s. Ma StreamExtractor perchè non corregge bene questo problema?

Boh!

Non è un bug di StreamExtractor, ma un limite inevitabile del modo in cui lavora.
Infatti per correggere il delay, StreamExtractor allunga o accorcia la traccia audio all'inizio, aggiungendo o sottraendo dei frames.
I frames non hanno una lunghezza a piacere, penso dipenda dal tipo di flusso ma comunque si parla di lunghezze tipo 16ms o 32ms. Se il delay da correggere è, per esempio 111ms, non lo si può correggere perfettamente non essendo multiplo della lunghezza di un frame.
In questo case StreamExtractor approssima al frame più vicino e segnala nel log lo scarto residuo.

Eventualmente si potrebbe anche lasciar fare questa operazione, e andare a riportare in MKVmerge solamente il delay residuo del log.
Io comunque preferisco non far fare nessuna operazione di correzione a StreamExtractor e inserire l'intero delay originario in MKVmerge.



Segnalo anche un'altra cosa: StreamExtractor salva in txt la suddivisione in capitoli, ed è possibile inserire anche questa nell'mkv! :)

DMD 06-12-2010 13:11

Bene, allora provedo al perfezionamento della guida.

Grazie alla tua collaborazione. :)

Un'altra cosa, alla fine come si può verificare il perfetto allineamento degli stream?

Un saluto

sc82 06-12-2010 13:40

Nel caso il delay iniziale sia positivo è molto semplice.
Supponiamo di avere StreamExtractor che segnala un delay di 100ms, si segue tutta la procedura come descritta, e per verificare si apre l'mkv creato sempre con StreamExtractor: la traccia audio avrà ancora quei 100ms indicati.

Se il delay è negativo la questione è un po' più complessa, e inizialmente mi ha lasciato spiazzato: a fronte di un delay iniziale di -8ms mi sono trovato un mkv che riportava 3ms in positivo!
Dopo vari esperimenti sono giunto alla conclusione che MKVmerge non può/vuole impostare delay negativi, per cui se gliene si imposta uno lui provvede a tagliare i frames approssimando per difetto e poi a inserire un piccolo delay positivo in automatico (se necessario) per allineare il tutto.
Spero si capisca come spiegazione, è molto simile alla logica spiegata prima per StreamExtractor comunque.




Se vuoi aggiungi anche la parte riguardante la suddivisione in capitoli.
L'estrazione in txt con StreamExtractor penso non necessiti di spiegazioni particolari, e per MKVmerge è sufficiente impostare il txt in questione alla voce "Chapter file" nella scheda Global.



Sono molto perfezionista su queste cose per cui segnalo volentieri qualunque cosa scopro utile a cercare di rispettare l'1:1 il più possibile! :)

DMD 06-12-2010 17:53

Allora giusto per verificare se ho capito bene la procedura:


1- Verificare l'eventuale delay, se riportato






2- Inserire il valore opposto, in modo che Stream Extractor non possa correggerlo






3- Nella fase di Muxing, in particolare nella sezione “Format specific options” inseriamo il valore opposto a quello rilevato da StreamExtractor.






4- In fase di verifica, caricare il file MKV con Stream extractor e controllare il delay, in questo esempio (Avatar) ottengo un valore positivo, ossia di 9 ms.

Forse sono andato in tilt io, però una cosa non mi è chiara.
Se il flusso audio ha un ritardo di -9ms e Stream Extractor non lo ha corretto, perche in fase di demux gli ho inserito un valore opposto, quindi lo stream audio ha ancora un suo ritardo (-9ms).
Poi in MKVMerge inserisco un valore opposto (9ms), in fase di verifica non dovrebbe essere uguale a zero? In quanto mi ritrovo un valore positivo di 9ms :what:



sc82 06-12-2010 18:04

Il punto 3 è sbagliato, in MKVmerge va inserito lo stesso valore rilevato da StreamExtractor, quindi nel tuo caso "-9".
Il valore opposto lo si usa solo al punto 2 per annullare la correzione automatica. ;)

Prima ho anche scambiato qualche mail con l'autore del programma (persona gentilissima, mi ha risposto subito) per chiedergli spiegazioni sul comportamento con delay negativo, mi ha confermato quello che pensavo, ovvero che Matroska NON supporta valori negativi!

ps. nella guida puoi anche dire che tutto sto lavoro è per i maniaci, dato che anche se lo si ignora completamente l'errore rimanente è comunque di pochi ms, impossibili da notare. :D

DMD 06-12-2010 18:24

Grazie per la precisazione.

p.s. ma quale maniaci, le cose si fanno per bene, nel limite delle conoscenze.
Comunque adesso vedo se anche nell'altra guida DVD>MKV vi è sto problema.

DMD 06-12-2010 20:14

Adesso ho finito fare il test con Avatar, quindi dopo aver rilevato -9ms, ho impostato il suo opposto (9ms) annullando la correzione di Stream Extractor.
Quindi nel Muxing ho inserito il valore rilevato da Stream Extractor (-9ms), però adesso nella verifica mi ritrovo un valore di 2ms :confused:


sc82 06-12-2010 20:20

E' giusto!

Perchè hai un delay di partenza negativo, e Matroska non li gestisce, quindi effettua un opportuno taglio dei frames iniziali e aggiusta la differenza residua in positivo, come dicevo prima.

A conferma di ciò riporto esattamente anche la spiegazione che mi ha dato via mail l'autore di MKVmerge

Quote:

mkvmerge implements negative delay by throwing away audio packets. It
always throws away full audio packets. Different audio codecs have
different lengths for their audio packets; therefore you might end up
with a small positive delay.

Example: An audio codec in which each packet is 23ms long, and you want
to adjust by -35ms. Then mkvmerge will discard the first two packets
(which were 46ms total). The first audio packet will therefore have its
first timecode at +9ms.

Con i delay positivi invece non c'è questa limitazione, se parti con +200ms alla fine ti ritrovi ancora con +200ms!

DMD 06-12-2010 20:27

Allora è meglio questo valore di 2ms che il valore zero ottenuto con la correzione automatica di Stream Extractor per i motivi di cui sopra.

Però una domanda che mi viene spontanea è...:

Come diavolo hai fatto ad accorgetene che con la correzione automatica di Stream Extractor la cosa non ti quadrava?

sc82 06-12-2010 20:34

Quel valore di 2ms è quello che ti rende l'audio perfettamente allineato.
Se non ci fosse avresti l'audio 2ms in anticipo rispetto al film originale.

Me ne sono accorto solo perchè spulciando i log ho trovato le famigerate righe tipo
"A remaining delay of 4ms could not be fixed."
e ho voluto approfondire per capire quale fosse il problema.

DMD 06-12-2010 21:01

Grazie ai tuoi approfondimenti, ho modificato la guida citandoli

http://www.hwupgrade.it/forum/showpo...79&postcount=3

Quindi ringraziamenti in prima pagina come giusto che sia.

Redoc 10-12-2010 22:10

Integrazione guida
 
Ciao DMD e complimenti per la guida più che chiara. Volevo premettere prima di fare una richiesta che sono possessore di diversi blu ray originali e mi accingo a creare una mia piccola videoteca in HD; dovendo però fare il backup di sicurezza sarò costretto a comprare diversi hard disk date le dimensioni dei file MKV 1:1 (tu parlavi di 20GB di media con punte di 35 per avatar). Ora ti chiedevo: potresti integrare la tua ottima guida inserendo una procedura per chi come me vorrebbe ridurre le dimensioni dei file mkv? Grazie anticipatamente per la risposta
P:S. avevo pensato a programmi come BD rebuilder che riducono il bluray a dimensioni che ciascuno può scegliere a proprio piacimento prima ancora di convertirlo ...ma non essendo un esperto mi rimetto ad un tuo eventuale consiglio. Ciao

DMD 11-12-2010 07:37

La procedura di riduzione è fattibile, però dovro aprire altro Thread , in quanto questo è proprio riservato a tutte le tecniche lossless no recoding.

Un saluto

scarano76 24-12-2010 10:18

ma una volta ottenuto il file MKV, si può leggere con il dvd dell'home theater anche tramite entrata usb?


Tutti gli orari sono GMT +1. Ora sono le: 00:59.

Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
Hardware Upgrade S.r.l.