den aufbau der datei kann man hier lernen:
i31www.ira.uka.de/do...5_AVI/main_html.html
werde mal kurz das wichtigste erklären:
Eine AVI-Datei besteht aus verschiedenen, ineinander verschachtelten Datenstrukturen, den sogenannten Chunks.
Die erste Einteilung ist zwischen den LIST-Chunks:
der erste Typ: hdrl (Informationen zum File)
zweiter Typ: movi (Eigentliche Bildinformationen)
dritter Typ: idx1 (nur optional, hier steht die Chunk-Aufteilung)
nun zum Headerlist-Chunk (hdrl) und die Einteilung:
der erste Chunk ist 'avih' (AVI-Header): allgemeine Informationen zur Datei so jetzt kommen die Stream List-Chunks, und zwar für jeden Stream in der Datei einer (also normale AVI-Datei, 2 Streams, 1x Audio 1x Video). Der Stream List-Chunk ist nochmal unterteilt: in Stream Header Chunk:allgemeinere Informationen zum Stream und Stream Format Chunk:genaueres zum Format des Streams (optional gibt es noch einen Stream Data Chunk) zur Identifikation dient der erste Wert im Stream Header:
für Video: vids
für Audio: auds
hier die Struktur bildlich dargestellt:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18:
| RIFF ('AVI ' LIST ('hdrl' 'avih'([Main AVI Header]) <--- allg. infos LIST ('strl' 'strh' ([Stream Header]) <---- hier wirds interressant 'strf' ([Stream Format]) <---- die infos über den stream 'strd' (zusaetzliche Header) ) ) LIST ('movi' <----- da stehen die ganzen bilddaten drin (SubChunk: LIST ('rec ' SubChunk1 SubChunk2 ) ) ['idx1' (AVIIndex)] ) ) |
für genauere Informationen über die Strukturen, schaut euch den Link oben an (dort steht wo iher die Auflösung und Länge findet).
nun zur Bitrate des Audiostreams:
und zwar findet ihr die im Stream Format Chunk des Audio Streams.
hier die Struktur (Quelle: VirtualDub):
WORD:wFormatTag: ID tag (0x0001 = PCM, 0x0055 = MP3)
WORD:nChannels: 1=mono, 2=stereo
DWORD:nSamplesPerSecond: sampling rate of uncompressed audio in Hz
DWORD:nAvgBytesPerSec: average bytes/s of compressed data <--- bitrate
WORD:nBlackAlign: size of a compressed sample in bytes
WORD:wBitsPerSample: bit/sample, for PCM only
WORD:cbSize: number of bytes of format-specific data that follow
(noch was zur Quelle: falls sich einige wundern, ja ich meine das Videobearbeitungstool Nr.1. Und zwar den integrierten HexEditor öffnen und dann Menü:Edit:Enable AVI Field Assist.)
Das ist zwar alles sehr trocken, ich hoffe ihr versteht es aber trotzdem. Quellcodes falls bedarf besteht kommen, sobald alles fertig umgesetzt ist(alles ist Auflösung, Länge, Videodatenrate, Audiodatenrate, und Codecs).
mfg M4EiB