Freigeben über


DV-Daten im AVI-Dateiformat

[Das dieser Seite zugeordnete Feature DirectShow-ist ein Legacyfeature. Es wurde von MediaPlayer, IMFMediaEngineund Audio/Video Capture in Media Foundationersetzt. Diese Features wurden für Windows 10 und Windows 11 optimiert. Microsoft empfiehlt dringend, dass neuer Code MediaPlayer-, IMFMediaEngine und Audio-/Videoaufnahme in Media Foundation anstelle von DirectShow-verwendet, wenn möglich. Microsoft schlägt vor, dass vorhandener Code, der die Legacy-APIs verwendet, um die neuen APIs zu verwenden, falls möglich umgeschrieben werden.]

Microsoft hat das Format für die Speicherung digitaler Videodaten (DV) in AVI-Dateien angegeben. Die Einhaltung dieser Spezifikation stellt sicher, dass die in diesem Format erstellten AVI-Dateien mit zukünftigen Versionen der digitalen DirectShow-Videoarchitektur für die Windowsplatform kompatibel sind.

In diesem Artikel wird das Format von AVI-Dateien beschrieben, die DV-Daten enthalten. Spezifische FOURCCs (vierstellige Codes) für interleavierte DV-Datenströme und DV-Kompressor/Dekomprimierungsstromhandler werden definiert. Die Datenstromformatstruktur für DV-Daten wird 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 ist in der Spezifikation digitaler VCRsfür Verbraucher definiert, auch als Blue Book bezeichnet.)

Es gibt zwei Arten von DV AVI-Dateien: AVI-Dateien, die einen DV-Datenstrom enthalten, der als Typ 1 Dateien bezeichnet wird; und AVI-Dateien, die DV-Video als "vids"-Stream und DV-Audio als "auds"-Datenströme enthalten, die Typ-2- Dateien genannt werden.

AVI-Dateien mit einem DV-Datenstrom (Typ-1)

Interleavierte DV-Daten können in ihrem systemeigenen Format als einzelner Datenstrom in einer AVI RIFF-Datei gespeichert werden. Dies hat den Vorteil, die Mindestmenge an Datenspeichern für DV zu verwenden. Der Hauptnachteil besteht darin, dass dieses Dateiformat nicht abwärtskompatibel mit Video für Windows ist, da es weder einen Video-'vids' noch einen Audiodatenstrom "auds" enthält. Unterstützung für den überlappenden DV-Datenstrom über die DV Muxer und DV Splitter Filter, die mit DirectShow bereitgestellt werden.

DV-Daten können in einem einzigen Datenstrom in einer AVI RIFF-Datei gespeichert werden, indem sie den FOURCCs (interleaved audio and video stream) FOURCC (vierstelligen Code) im fccType Member und eines der 'dvsd', 'dvhd' oder 'dvsl' FOURCCs im fccHandler Member des Kopfzeilenblocks 'strh' angeben. Die Frames pro Sekunde des Videodatenstroms müssen in der dwRate und dwScale Member und die Gesamtanzahl der Videoblöcke im dwLength Member angegeben werden.

Der "dvsd"-Datenstromhandler FOURCC gibt an, dass die DV-Daten in Teil 2 der Spezifikation für digitale VCRsfür Verbrauchernutzung definiert sind. Video ist im Format von 525 Linien bei 29,97 Hz (525-60) oder 625 Linien bei 25,00 Hz (625-50).

Der "dvhd"-Datenstromhandler FOURCC gibt an, dass die DV-Daten in Teil 3 der Spezifikation für digitale VCRsfür Verbrauchernutzung definiert sind. Video ist im Format von 1125 Linien bei 30,00 Hz (1125-60) oder 1250 Linien bei 25,00 Hz (1250-50).

Der STREAM-Handler FOURCC "dvsl" gibt an, dass die DV-Daten in Teil 6 von Spezifikation digitaler VCRs für Verbrauchernutzungdefiniert sind. Video ist im Format von SD (High-Compression SD, SDL) enthalten.

Anmerkung

Im restlichen Teil dieses Artikels finden Sie Definitionen für "dvsd"-Datenströme.

 

Auf den Datenstromheaderabschnitt muss ein DVINFO Datenstromformatabschnitt folgen.

Die tatsächlichen DV-Daten werden als "##dc"-Blöcke im Datenblock "movi" gespeichert (die ##-Daten im Format stellen den Datenstrombezeichner dar). Jeder Block enthält einen Datenrahmen, entweder 10 oder 12 DV DIF-Sequenzen für 525-60- bzw. 625-50-Systeme. Das DIF-Sequenzformat DV SD ('dvsd') ist in Teil 2 der Spezifikation der digitalen VCRsfür Verbrauchernutzung definiert.

Das folgende Beispiel zeigt das AIFF RIFF-Formular für eine AVI-Datei mit einem DV-Datenstrom, erweitert mit abgeschlossenen Kopfzeilenblöcken.

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 mit DV-Video- und DV-Audiostreams (Typ-2)

Interleavierte DV-Daten können in einen Videostream und einen bis vier Audiostreams in einer AVI RIFF-Datei aufgeteilt werden. Dies hat den Vorteil, abwärtskompatibel mit Video für Windows zu sein, da es einen Standardvideo-Stream "vids" und mindestens einen Standardmäßigen Audio-"Auds"-Stream enthält. Der Hauptnachteil besteht darin, dass für dieses Dateiformat die Audiodaten redundant als Audiodatenströme gespeichert werden müssen. Der "Video"-Stream ist tatsächlich der systemeigene interleavierte DV-Datenstrom. Als Standarddatenstrom "vids" mit einem Handlertyp von "dvsd" wird jedoch der DV Video Decoder verwendet. Dieses Format erfordert auch die Verwendung des DV Splitter Filter, 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 Videodatenstrom wird mit einer standardmäßigen Videostreamheader angegeben (der fccType Memberwert ist "vids"). Der fccHandler Member wird als "dvsd", "dvhd" oder "dvsl" angegeben. Die Frames pro Sekunde des Videodatenstroms müssen in der dwRate und dwScale Member und die Gesamtanzahl der Videoblöcke im dwLength Member angegeben werden.

In dieser AVI-Datei, die DV-Video als "vids"-Stream und DV-Audio als "auds"-Streams form von DV enthält, ist der Videostream-Formatblock ein Standard BITMAPINFOHEADER Struktur. Der Datenstromformatblock kann optional erweitert werden, um den DVINFO--Block einzuschließen. durch Erhöhen der Datenstromformatgröße von 40 Bytes (Größe der BITMAPINFOHEADER- Struktur) auf 72 Bytes (Größe von BITMAPINFOHEADER plus DVINFO Strukturen) und unmittelbar nach der BITMAPINFOHEADER- Datenstruktur mit einer DVINFO Datenstruktur folgen.

Der Audiodatenstrom(n) wird mit einem Standardmäßigen Audiostreamheader angegeben (der fccType Memberwert ist "auds"). Der fccHandler Member 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 einer DV-Daten definiert, und die Audiodaten werden als "##wb" Blöcke im "Movi"-Block gespeichert.

Anmerkung

Die Spezifikation der digitalen VcRs für Verbrauchernutzung 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"-Datenströme enthält, die durch abgeschlossene Headerblöcke erweitert wurden (einschließlich optionaler DVINFO- Daten nach dem BITMAPINFO- im Unterabschnitt "strf" für den Datenstrom "vids").

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