Domanda

I stava cercando di imparare un po 'h264, cercando in bitstream di un file video con un editor esadecimale. Ho trovato qui i codici di inizio di un jet oggetto video ( 0x000001b6) e per I-frame (0x000001b600).

Ma non riesco a trovare molti di questi byte in file video. Il più delle volte questi codici di inizio appaiono all'inizio di un file con solo pochi morsi in mezzo. Mi aspettavo loro di presentarsi regolarmente, in uguale distanza in tutto il file!?

Is è ancora ok per guardare un file con un editor esadecimale in questo modo? Che esistono altri codici di inizio e come viene organizzato un file h264?

È stato utile?

Soluzione

Il codice di inizio 0x000001b6 applica in MPEG-4 parte 2 il video che è il profilo semplice. Ciò corrisponde a codec come XviD e DivX. H.264 è MPEG-4 Part 10, che è la codifica video profilo avanzato. H.264 utilizza diversi codici di inizio.

Io non sono come familiarità con la parte 10, come io sono con la parte 2, ma un breve sguardo attraverso lo standard (ISO 14496-10) mostra che il flusso di bit è suddiviso in sezioni chiamate unità NAL. Queste unità hanno il codice a 24 bit 0x000001 li precede per la sincronizzazione di cui al punto B.1.1. Il seguente byte è costituito campi forbidden_zero_bit, nal_ref_idc e nal_unit_type cui al punto 7.3.1.

Non sono sicuro se queste unità NAL sono separati su limiti di frame o meno. Si può solo avere per ottenere una sospensione della norma che espone tutta la sintassi bitstream.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top