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)

AVI-Dateiformat