Domanda

Sono nelle primissime fasi di lavoro su un editor di tag per i file mp4 e più in particolare quelli di iTunes AAC. Dopo aver fatto qualche curiosare in giro sembra che la struttura del file non è così complicato come pensavo prima ed è costruito in una sorta di albero come il seguente

4 Bytes [Atom Length]  4 Bytes [Atom Name]  X Bytes [Atom Data]

i dati di un atomo è grande quanto la lunghezza e può contenere sia dati (informazioni) o di un altro atomo. Quello che sto cercando di capire è come si determina se i dati sono informazioni o un atomo reale. Tutta la comprensione sarebbe molto apprezzato.

È stato utile?

Soluzione

Dopo un sacco di curiosare in giro sembra che l'unico modo per determinare se un nodo porta a dati o un altro nodo è conoscendo la struttura dei dati. Come me interessa solo nei tag contenuta la struttura è abbastanza facile da capire. Tutti i tag sono contenute nella seguente gerarchia:

moov.udta.meta.ilst

Quando scavare nel ilst nodo di ogni tag è rappresentato come un atomo di bambino che si chiama determina quali dati in esso contenuti. Per quanto riguarda i dati effettivi, ogni atomo bambino trasporta un bambino proprio, che contiene le informazioni reali e una bandiera da che tipo di informazioni è per esempio testo o numeri, quindi tutto sommato è simile a questa:

moov.udta.meta.ilst.[atom size][atom name].[data]

Naturalmente questo lascia ancora il problema con le etichette self made memorizzati nel uuid atomo nodo che aziende come l'uso di Sony per aggiungere più informazioni al file. Immagino che ogni bambino nel uuid negozi i suoi figli allo stesso modo ilst si fa ma non posso essere sicuro.

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