DV-Daten im AVI-Dateiformat
[Das dieser Seite zugeordnete Feature DirectShow ist ein Legacyfeature. Es wurde durch MediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation ersetzt. Diese Features wurden für Windows 10 und Windows 11 optimiert. Microsoft empfiehlt dringend, dass neuer Code nach Möglichkeit MediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation anstelle von DirectShow verwendet. Microsoft schlägt vor, vorhandenen Code, der die Legacy-APIs verwendet, um nach Möglichkeit die neuen APIs zu verwenden.]
Microsoft hat das Format für die Speicherung digitaler Videodaten (DV) in AVI-Dateien angegeben. Die Einhaltung dieser Spezifikation stellt sicher, dass die AVI-Dateien, die in diesem Format erstellt wurden, mit zukünftigen Versionen der directShow-Digitalen Videoarchitektur für die Windows-Plattform kompatibel sind.
In diesem Artikel wird das Format von AVI-Dateien beschrieben, die DV-Daten enthalten. Es werden spezifische FOURCCs (Vierzeichencodes) für verschachtelte DV-Datenströme und DV-Kompressor-/Dekomprimierungsstreamhandler definiert. Die Streamformatstruktur für DV-Daten ist definiert. Spezifikationen für zwei Methoden zum Speichern von DV-Daten im AVI-Dateiformat sind angegeben.
Es wird davon ausgegangen, dass der Leser mit dem DV-Datenformat vertraut ist. (Dieses Format wird in der Spezifikation von Consumer-Use Digital VCRs definiert, die auch als Blue Book bezeichnet wird.)
Es gibt zwei Arten von DV AVI-Dateien: AVI-Dateien, die einen DV-Datenstrom enthalten, so genannte Typ-1-Dateien ; und AVI-Dateien, die DV-Video als "vids"-Stream und DV-Audio als "auds"-Streams enthalten, die als Typ-2-Dateien bezeichnet werden.
AVI-Dateien mit einem DV-Datenstrom (Typ-1)
Verschachtelte DV-Daten können im nativen Format als einzelner Stream in einer AVI RIFF-Datei gespeichert werden. Dies hat den Vorteil, dass die mindeste Menge an Datenspeicher für DV verwendet wird. Der Hauptnachteil besteht darin, dass dieses Dateiformat nicht abwärtskompatibel mit Video für Windows ist, da es weder einen Video-Vids- noch einen Audio-Auds-Stream enthält. Unterstützung für den verschachtelten DV-Stream wird über die mit DirectShow bereitgestellten DV Muxer- und DV-Splitterfilter bereitgestellt.
DV-Daten können in einem einzelnen Stream in einer AVI RIFF-Datei gespeichert werden, indem sie die FOURCCs "iavs" (interleaved audio and video stream) im fccType-Member und entweder die FOURCCs "dvsd", "dvhd" oder "dvsl" im fccHandler-Member des Headerblocks "strh" angeben. Die Frames pro Sekunde des Videostreams müssen in den Elementen dwRate und dwScale sowie die Gesamtanzahl der Videoblöcke im "movi"-Block im dwLength-Element angegeben werden.
Der "dvsd"-Streamhandler FOURCC gibt an, dass die DV-Daten wie in Teil 2 der Spezifikation der consumer-use Digital VCRs definiert sind. Video ist im Format von 525 Zeilen bei 29,97 Hz (525-60) oder 625 Zeilen bei 25,00 Hz (625-50).
Der "dvhd"-Streamhandler FOURCC gibt an, dass die DV-Daten wie in Teil 3 der Spezifikation von consumer-use Digital VCRs definiert sind. Das Video hat das Format von 1125 Zeilen bei 30,00 Hz (1125-60) oder 1250 Zeilen bei 25,00 Hz (1250-50).
Der "dvsl"-Streamhandler FOURCC gibt an, dass die DV-Daten wie in Teil 6 der Spezifikation von consumer-use Digital VCRs definiert sind. Video ist im Format von SD (SDL) mit hoher Komprimierung.
Hinweis
Der Rest dieses Artikels enthält Definitionen für dvsd-Streams.
Auf den Streamheaderblock muss ein DVINFO-Streamformatblock folgen.
Die tatsächlichen DV-Daten werden als "##dc"-Blöcke im Abschnitt "movi" gespeichert (das ## im Format stellt den Streambezeichner dar). Jeder Block enthält einen Datenrahmen, entweder 10 oder 12 DV DIF-Sequenzen für 525-60- oder 625-50-Systeme. Das DV SD ('dvsd') DIF-Sequenzformat ist in Teil 2 der Spezifikation der consumer-use Digital VCRs definiert.
Das folgende Beispiel zeigt das AIFF RIFF-Formular für eine AVI-Datei mit einem DV-Datenstrom, der mit abgeschlossenen Headerblöcken erweitert wird.
00000000 RIFF (0FAE35D4) 'AVI '
0000000C LIST (00000106) 'hdrl'
00000018 avih (00000038)
dwMicroSecPerFrame : 33367
dwMaxBytesPerSec : 3728000
dwPaddingGranularity : 0
dwFlags : 0x810 HASINDEX | TRUSTCKTYPE
dwTotalFrames : 2192
dwInitialFrames : 0
dwStreams : 1
dwSuggestedBufferSize : 120000
dwWidth : 720
dwHeight : 480
dwReserved : 0x0
00000058 LIST (0000006C) 'strl'
00000064 strh (00000038)
fccType : 'iavs'
fccHandler : 'dvsd'
dwFlags : 0x0
wPriority : 0
wLanguage : 0x0 undefined
dwInitialFrames : 0
dwScale : 100 (29.970 Frames/Sec)
dwRate : 2997
dwStart : 0
dwLength : 2192
dwSuggestedBufferSize : 120000
dwQuality : 0
dwSampleSize : 0
rcFrame : 0,0,720,480
000000A4 strf (00000020)
dwDVAAuxSrc : 0x........
dwDVAAuxCtl : 0x........
dwDVAAuxSrc1 : 0x........
dwDVAAuxCtl1 : 0x........
dwDVVAuxSrc : 0x........
dwDVVAuxCtl : 0x........
dwDVReserved[2] : 0,0
000000CC LIST (0FADAC00) 'movi'
0FADACD4 idx1 (00008900)
AVI-Dateien, die DV-Video- und DV-Audiostreams enthalten (Typ-2)
Verschachtelte DV-Daten können in einen Videostream und ein bis vier Audiostreams innerhalb einer AVI RIFF-Datei unterteilt werden. Dies hat den Vorteil, dass es mit Video für Windows abwärtskompatibel ist, da es einen Standardvideostream "vids" und mindestens einen Standard-Audiostream "auds" enthält. Der Hauptnachteil ist, dass für dieses Dateiformat die Audiodaten redundant als Audiodatenströme gespeichert werden müssen. Der "Video"-Stream ist tatsächlich der native verschachtelte DV-Datenstrom. Als Standardmäßiger "vids"-Stream mit dem Handlertyp "dvsd" wird jedoch der DV-Video-Decoder verwendet. Dieses Format erfordert auch die Verwendung des DV-Splitter-Filters , um "erfasste" Dateien aufzuteilen, bevor sie als AVI-Dateien geschrieben werden.
DV-Daten können als Videostream mit einer separaten Anzahl von Audiostreams in einer AVI RIFF-Datei gespeichert werden. Der Videostream wird mit einem Standardmäßigen Videostreamheader angegeben (der fccType-Memberwert ist "vids"). Das fccHandler-Element wird als "dvsd", "dvhd" oder "dvsl" angegeben. Die Frames pro Sekunde des Videostreams müssen in den Elementen dwRate und dwScale sowie die Gesamtanzahl der Videoblöcke im "movi"-Block im dwLength-Element angegeben werden.
In dieser AVI-Datei, die DV-Video als "vids"-Stream und DV-Audio als "auds"-Stream-Form von DV enthält, ist der Videostreamformatblock eine STANDARDMÄßIGE BITMAPINFOHEADER-Struktur . Der Streamformatblock kann optional erweitert werden, um den DVINFO-Block einzuschließen, indem die Größe der Datenstromformatblöcke von 40 Bytes (Größe der BITMAPINFOHEADER-Struktur ) auf 72 Bytes (Größe von BITMAPINFOHEADER und DVINFO-Strukturen ) erhöht wird und unmittelbar der BITMAPINFOHEADER-Datenstruktur eine DVINFO-Datenstruktur folgt.
Die Audiostreams werden mit einem Standard-Audiostreamheader angegeben (der fccType-Memberwert ist "auds"). Das fccHandler-Element wird nicht für Audiodatenströme verwendet.
Die DV-Videodaten werden als "##dc"-Blöcke gespeichert, wie in der vorherigen Beschreibung einer AVI-Datei mit einem DV-Daten definiert, und die Audiodaten werden als "##wb"-Blöcke im "movi"-Block gespeichert.
Hinweis
Die Spezifikation der digitalen Videorekorder für Verbraucher ist in einigen Sprachen und Ländern möglicherweise nicht verfügbar.
Das folgende Beispiel zeigt das AIFF RIFF-Formular für eine AVI-Datei, die DV-Video als "vids"-Stream und DV-Audio als "Auds"-Streams enthält, die mit abgeschlossenen Headerblöcken erweitert wurden (einschließlich optionaler DVINFO-Daten nach bitmapINFO im "strf"-Unterabschnitt für den "vids"-Stream).
00000000 RIFF (103E2920) 'AVI '
0000000C LIST (00000146) 'hdrl'
00000018 avih (00000038)
dwMicroSecPerFrame : 33367
dwMaxBytesPerSec : 3728000
dwPaddingGranularity : 0
dwFlags : 0x810 HASINDEX | TRUSTCKTYPE
dwTotalFrames : 2192
dwInitialFrames : 0
dwStreams : 2
dwSuggestedBufferSize : 120000
dwWidth : 720
dwHeight : 480
dwReserved : 0x0
00000058 LIST (00000094) 'strl'
00000064 strh (00000038)
fccType : 'vids'
fccHandler : 'dvsd'
dwFlags : 0x0
wPriority : 0
wLanguage : 0x0 undefined
dwInitialFrames : 0
dwScale : 100 (29.970 Frames/Sec)
dwRate : 2997
dwStart : 0
dwLength : 2192
dwSuggestedBufferSize : 120000
dwQuality : 0
dwSampleSize : 0
rcFrame : 0,0,720,480
000000A4 strf (00000048)
biSize : 40
biWidth : 720
biHeight : 480
biPlanes : 1
biBitCount : 24
biCompression : 0x64737664 'dvsd'
biSizeImage : 120000
biXPelsPerMeter : 0
biYPelsPerMeter : 0
biClrUsed : 0
biClrImportant : 0
dwDVAAuxSrc : 0x........
dwDVAAuxCtl : 0x........
dwDVAAuxSrc1 : 0x........
dwDVAAuxCtl1 : 0x........
dwDVVAuxSrc : 0x........
dwDVVAuxCtl : 0x........
dwDVReserved[2] : 0,0
000000F4 LIST (0000005E) 'strl'
00000100 strh (00000038)
fccType : 'auds'
fccHandler : ' '
dwFlags : 0x0
wPriority : 0
wLanguage : 0x0 undefined
dwInitialFrames : 0
dwScale : 1 (32000.000 Samples/Sec)
dwRate : 32000
dwStart : 0
dwLength : 2340474
dwSuggestedBufferSize : 4272
dwQuality : 0
dwSampleSize : 4
rcFrame : 0,0,0,0
00000140 strf (00000012)
wFormatTag : 1 PCM
nChannels : 2
nSamplesPerSec : 32000
nAvgBytesPerSec : 128000
nBlockAlign : 4
wBitsPerSample : 16
cbSize : 0
00000814 LIST (103D0EF4) 'movi'
103D1710 idx1 (00011210)
Zugehörige Themen