Partager via


Données DV au format de fichier AVI

[La fonctionnalité associée à cette page, DirectShow, est une fonctionnalité héritée. Il a été remplacé par MediaPlayer, IMFMediaEngineet audio/vidéo capture dans Media Foundation. Ces fonctionnalités ont été optimisées pour Windows 10 et Windows 11. Microsoft recommande vivement que le nouveau code utilise MediaPlayer, IMFMediaEngine et capture audio/vidéo dans Media Foundation au lieu de directShow, lorsque cela est possible. Microsoft suggère que le code existant qui utilise les API héritées soit réécrit pour utiliser les nouvelles API si possible.]

Microsoft a spécifié le format de stockage des données vidéo numériques (DV) dans les fichiers AVI. Conformément à cette spécification, les fichiers AVI créés dans ce format seront compatibles avec les futures versions de l’architecture vidéo numérique DirectShow pour Windowsplatform.

Cet article décrit le format des fichiers AVI contenant des données DV. Des fourCCs spécifiques (codes à quatre caractères) pour les flux de données DV entrelacés et les gestionnaires de flux de compression/décompresseur DV sont définis. La structure de format de flux pour les données DV est définie. Les spécifications pour deux méthodes de stockage de données DV au format de fichier AVI sont spécifiées.

Il est supposé que le lecteur est familiarisé avec le format de données DV. (Ce format est défini dans la spécification des VCR numériques à usage consommateur, également appelée Blue Book.)

Il existe deux types de fichiers DV AVI : les fichiers AVI qui contiennent un flux de données DV, appelé fichiers de type 1 ; et les fichiers AVI qui contiennent la vidéo DV sous forme de flux « vids » et d’audio DV en tant que flux « auds », appelés fichiers de type 2.

fichiers AVI contenant un flux de données DV (type-1)

Les données DV entrelacées peuvent être stockées dans son format natif en tant que flux unique au sein d’un fichier RIFF AVI. Cela présente l’avantage d’utiliser la quantité minimale de stockage de données pour DV. Le principal inconvénient est que ce format de fichier n’est pas compatible avec la vidéo pour Windows, car il ne contient pas de vidéo « vids » ou d’un flux audio « auds ». La prise en charge est fournie pour le flux DV entrelacé via le DV Muxer et filtres DV Splitter fournis avec DirectShow.

Les données DV peuvent être stockées dans un seul flux au sein d’un fichier RIFF AVI en spécifiant le fourCC (flux audio et vidéo entrelacés) FOURCC (code à quatre caractères) dans le membre fccType et l’un des « dvsd », « dvhd » ou « dvsl » dans le fccHandler membre de l’en-tête de flux « strh ». Les images par seconde du flux vidéo doivent être spécifiées dans le dwRate et membres dwScale et le nombre total de blocs vidéo dans le segment « movi » dans le membre dwLength.

Le gestionnaire de flux « dvsd » FOURCC spécifie que les données DV sont définies dans la partie 2 de la spécification de des vcR numériques à usage consommateur. La vidéo est au format 525 lignes à 29,97 Hz (525-60) ou 625 lignes à 25,00 Hz (625-50).

Le gestionnaire de flux « dvhd » FOURCC spécifie que les données DV sont définies dans la partie 3 de la spécification de des vcR numériques à usage consommateur. La vidéo est au format 1125 lignes à 30,00 Hz (1125-60) ou 1250 lignes à 25,00 Hz (1250-50).

Le gestionnaire de flux « dvsl » FOURCC spécifie que les données DV sont définies dans la partie 6 de la spécification de spécification des VCR numériques à usage consommateur. La vidéo est au format de SD à compression élevée (SDL).

Note

Le reste de cet article fournit des définitions pour les flux « dvsd ».

 

Le bloc d’en-tête de flux doit être suivi d’une bloc de format de flux DVINFO.

Les données DV réelles sont stockées en tant que blocs « ##dc » dans le bloc « movi » (le ## au format représente l’identificateur de flux). Chaque bloc contient une trame de données, soit 10 ou 12 séquences DIF DV pour les systèmes 525-60 ou 625-50, respectivement. Le format de séquence DIF ('dvsd') DV est défini dans la partie 2 de la spécification spécification des VCR numériques à usage consommateur.

L’exemple suivant montre le formulaire RIFF AIFF d’un fichier AVI avec un flux de données DV, développé avec des blocs d’en-tête terminés.

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)

fichiers AVI contenant des flux audio DV vidéo et DV (type 2)

Les données DV entrelacées peuvent être fractionnées en flux vidéo et un à quatre flux audio au sein d’un fichier RIFF AVI. Cela présente l’avantage d’être compatible avec la vidéo pour Windows, car il contient un flux vidéo standard « vids » et au moins un flux audio standard « auds » Le principal inconvénient est que ce format de fichier nécessite que les données audio soient stockées de manière redondante en tant que flux audio. Le flux « vidéo » est en fait le flux de données DV entrelacé natif. Toutefois, en tant que flux « vids » standard avec un type de gestionnaire « dvsd », le DV Video Decoder est utilisé. Ce format nécessite également l’utilisation de l'DV Splitter filtre pour fractionner les fichiers « capturés » avant de les écrire en tant que fichiers AVI.

Les données DV peuvent être stockées sous forme de flux vidéo avec un nombre distinct de flux audio dans un fichier RIFF AVI. Le flux vidéo est spécifié avec un en-tête de flux vidéo standard (la valeur de membre fccType est « vids »). Le membre fccHandler est spécifié comme « dvsd », « dvhd » ou « dvsl ». Les images par seconde du flux vidéo doivent être spécifiées dans le dwRate et membres dwScale et le nombre total de blocs vidéo dans le segment « movi » dans le membre dwLength.

Dans ce fichier AVI contenant la vidéo DV sous forme de flux « vids » et d’audio DV sous la forme de flux « auds » de DV, le bloc de format de flux vidéo est un bloc standard BITMAPINFOHEADER structure. Le bloc de format de flux peut éventuellement être étendu pour inclure le bloc DVINFO, en augmentant la taille du bloc de format de flux de 40 octets (taille de la structure BITMAPINFOHEADER) à 72 octets (taille de BITMAPINFOHEADER plus structures de DVINFO) et en suivant immédiatement la structure de données BITMAPINFOHEADER avec une structure de données DVINFO.

Le ou les flux audio sont spécifiés avec un en-tête de flux audio standard (la valeur de membre fccType est « auds »). Le membre fccHandler n’est pas utilisé pour les flux audio.

Les données vidéo DV sont stockées en tant que blocs « ##dc », comme défini dans la description précédente d’un fichier AVI avec une donnée DV, et les données audio sont stockées en tant que blocs « ##wb » dans le bloc « movi ».

Note

La Spécification des VCR numériques à usage consommateur peut ne pas être disponible dans certaines langues et pays.

 

L’exemple suivant montre le formulaire RIFF AIFF d’un fichier AVI contenant une vidéo DV sous forme de flux « vids » et d’audio DV en tant que flux « auds » développés avec des blocs d’en-tête terminés (y compris des blocs d’en-tête facultatifs DVINFO les données suivant les BITMAPINFO dans le sous-segment « strf » pour le flux « 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)

format de fichier AVI