Rimozione del packed bitstream da un video in 2 minuti
Con alcuni player Divx Xvid da salotto capita che lo scorrere del film non sia fluido, cioè va a scatti. Questo succede perché alcuni film sono packetizzati bitstream, per sapere cos'è questo packed leggiamo l'articolo in fondo alla guida.
Per questa operazione useremo il programmino free MPEG4Modifer che troviamo:
Clicca qui per il Link.Il programma richiede almeno il NET Framework 1.1, comunque quando si esegue in caso ci avvisa, Framework 1.1 e superiori sono scaricabili dal sito Microsoft.
Come solito il testo è riferito alla figura sovrastante, purché non vi sia un richiamo ad altra figura.
Procedura:

Abbiamo scaricato, scompattato ed eseguito il programmino. Ci troviamo in questa finestra che sarà sempre la stessa. Click freccia viola, localizziamo e carichiamo il video, comparirà come figura seguente.

Caricato il video vediamo subito nel cerchiato blu che è packetizzato bitstream, si vede anche dalla lettera p indicata dalla freccia verde. Un click sul pulsante Video Info e vedremo alcune info sul video, come mostrato nella figura seguente.

Click sul pulsante X e torniamo nella finestra principale, figura seguente.

Spuntare il flag Unpack e se non è spuntato anche Auto, vedremo subito che è sparita la lettera p come indicato dalla freccia verde. A questo punto la rimozione è solo virtuale. Non facciamo null'altro e click su Save, vedremo come figura seguente.

Impostiamo destinazione e nome poi click Save, partirà il processo e vedremo come nella figura seguente.

Aspettiamo qualche secondo, se cambiamo idea click su Cancel, al termine compare una finestrella di avviso avvenuta rimozione, cofermiamo.

Siamo tornati alla schermata identica alla fig.01, possiamo ricominciare con altro video, se no chiudiamo.
Lo Staff Di FreeDivX declina ogni responsabilità per eventuali danni arrecati al Vostro sistema da queste guide e Vi ricorda che masterizzare o passare interi Film DVD in DivX è illegale se non per uso strettamente personale facendosi una copia di backup.
Cos'è il packed bitstream. Articolo tratto dalla rete
Il packed bitstream e' una mostruosita' che fu introdotta da DivX Networks quando aggiunse i B-frame al suo codec. Gli estensori degli standard (MPEG e VCEG) trovarono molto presto la soluzione piu' vantaggiosa per memorizzare uno stream composto da frame I, P e B, ed e' quello di memorizzare prima i frame riferiti, poi i referenti (anche se questi verrebbero prima temporalmente).
Ad esempio, supponiamo che la sequenza temporale dei frame sia fatta
in questo modo: IBBPBBPBBP...
L'ordine di memorizzazione nel bitstream diventa questo: IPBBPBBPBB...
Questo stratagemma semplifica molto la decodifica. Basta fare una simulazione di decodifica:
Istante 0:
leggo il frame I, e non emetto niente in uscita
Istante 1:
leggo il frame P, ed emetto il frame I che ho letto all'istante 0
Istante 2:
leggo il frame B, ed emetto il frame B che ho letto adesso (lo posso fare perche' ho sia il frame I letto all'istante 0, che quello P, letto all'istante 1, che sono i due referenti del frame corrente)
Istante 3:
leggo il frame B, ed emetto il frame B che ho letto adesso
Istante 4:
leggo il frame P, ed emetto il frame P che ho letto all'istante 1
Istante 5:
leggo il frame B, ed emetto il frame B che ho letto adesso (lo posso fare perche' all'istante 4 ho letto il frame P che e' il suo successivo referente)
e cosi' via...
Come puoi verificare, i frame vengono emessi in ordine temporalmente corretto. L'unico svantaggio e' che vengono emessi con un ritardo di un frame, rispetto ai tempi di lettura.
Puoi anche divertirti a verificare che questo processo puo' continuare indefinitamente, senza avere mai interruzioni nel flusso di emissione dei frames.
Inoltre, e' facile verificare che la correttezza del processo e' indipendente dal numero di B-frame consecutivi: io ho fatto l'esempio con 2 B-frames, ma funziona allo stesso identico modo anche con un numero diverso.
Questa tecnica di memorizzazione e' efficace, ma il fatto che introduce un ritardo tra flusso letto e flusso in uscita, lo rendeva incompatibile con le specifiche delle funzioni delle vecchie e poco lungimiranti API Microsoft VFW (che non prevedevano concetti come i B-frames), quindi, i tizi di DivX Networks, dato che volevano fornire una dll VFW (per motivi vari, primo fra tutti perche' se non lo avessero fatto avrebbero rischiato di perdere popolarita' nella comunita' degli utilizzatori di codec) hanno inventato il famigerato "packed bitstream": questo consiste nell'impaccare occasionalmente due frame concreti dentro lo stesso "frame virtuale AVI".
Per farti capire meglio, tornando all'esempio sopra, se nel primo frame dell'AVI vengono memorizzati sia il frame I che quello P, quando al decoder (tramite funzione delle API VFW) arriva il primo frame, lui si trova per le mani i primi due frame, ed e' come se si trovasse direttamente all'istante 1 (in pratica, salta l'istante 0), e quindi puo' gia' emettere il primo frame in uscita, rispettando il significato della funzione VFW.
Questa tecnica ha il vantaggio di rendere MPEG4 con B-frames compatibile con le API VFW, ma ha alcuni svantaggi: innanzitutto complica la vita a chi deve scrivere un decoder (che dovra' rilevare e gestire in modo opportuno questo caso speciale), poi, ancora peggio, da' luogo a un bitstream non corretto (per compensare i "frame impaccati", occorre introdurre dei frame fittizi, chiamati "dummy N-VOP", che sono coerenti con la sintassi MPEG-4, ma che falsificano il bitstream da un punto di vista di sequenza temporale: in pratica, un decoder deve saper distinguere tra N-VOPs "veri" e "dummy", per gestire in modo corretto i "timecodes").
Gli sviluppatori di XviD, per non essere da meno (immagino per paura di non poter competere con XviD nell'ambito degli utenti Windows) fecero altrettanto, cioe' introdussero anche loro il packed bitstream per poter usare B-frames tramite VFW, con l'aggravante che XviD permette un numero maggiore di B-frames consecutivi...
A questo punto, la mia ipotesi e' che i progettisti di alcuni lettori da tavolo potrebbero aver gestito correttamente i packed bistream nel caso di un solo B-frame, e gestito male quelli con piu' B-frame (che si ottengono solo con XviD). Questa dovrebbe essere la situazione dei lettori basati su chip Mediatek (i miei lettori gestiscono bene tutti i casi).
Con il diffondersi di piu' recenti codec H.264 (come x264), l'inadeguatezza delle specifiche VFW si e' fatta ancora piu' marcata, e questo ha portato in un primo momento alcuni sviluppatori a creare versioni speciali di x264 per VFW, (presumo allo scopo di poter continuare a utilizzare VirtualDub per codifiche con x264), mentre mi pare che la maggior parte degli appassionati sia adesso orientata ad abbandonare VFW, in favore dell'uso di specifiche librerie...
Questo vuol dire che a chi e' interessato a codificare in x264, conviene abituarsi a utilizzare programmi che non usano codec VFW...