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, IMFMediaEngine et Audio/Video Capture dans Media Foundation. Ces fonctionnalités ont été optimisées pour Windows 10 et Windows 11. Microsoft recommande vivement au nouveau code d’utiliser MediaPlayer, IMFMediaEngine et La 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 de vidéo numérique (DV) dans des fichiers AVI. La conformité à cette spécification garantit que les fichiers AVI créés dans ce format seront compatibles avec les futures versions de l’architecture vidéo numérique DirectShow pour la plateforme Windows.

Cet article décrit le format des fichiers AVI contenant des données DV. Des FOURCS (codes à quatre caractères) spécifiques 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 des 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 magnétoscopes numériques à l’usage des consommateurs, également appelée Livre bleu.)

Il existe deux types de fichiers AVI DV : les fichiers AVI qui contiennent un seul flux de données DV, appelé fichiers de type 1 ; et les fichiers AVI qui contiennent la vidéo DV en tant que flux « vids » et les fichiers 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 leur format natif en tant que flux unique dans 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 rétrocompatible avec Video pour Windows, car il ne contient ni un flux vidéo « vids » ni un flux audio « auds ». La prise en charge du flux DV entrelacé est fournie via les filtres DV Muxer et 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 les FOURCC « iavs » (flux audio et vidéo entrelacés) FOURCC (code à quatre caractères) dans le membre fccType et l’un des « dvsd », « dvhd » ou « dvsl » fourccs dans le membre fccHandler du segment d’en-tête de flux « strh ». Les images par seconde du flux vidéo doivent être spécifiées dans les membres dwRate et dwScale , ainsi que 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 telles que définies dans la partie 2 de la spécification des magnétoscopes numériques à l’usage des consommateurs. 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 des magnétoscopes 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 telles que définies dans la partie 6 de spécification des magnétoscopes numériques à usage consommateur. La vidéo est au format SD (SDL) à compression élevée.

Notes

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

 

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

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

L’exemple suivant montre le formulaire RIFF AIFF pour 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 vidéo DV et audio DV (type 2)

Les données DV entrelacées peuvent être fractionnées en un flux vidéo et un à quatre flux audio dans un fichier RIFF AVI. Cela présente l’avantage d’être rétrocompatible avec Video 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 décodeur vidéo DV est utilisé. Ce format nécessite également l’utilisation du filtre DV Splitter 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 AVI RIFF. Le flux vidéo est spécifié avec un en-tête de flux vidéo standard (la valeur du 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 les membres dwRate et dwScale , ainsi que le nombre total de blocs vidéo dans le segment « movi » dans le membre dwLength .

Dans ce fichier AVI contenant la vidéo DV en tant que flux « vids » et l’audio DV sous forme de flux « auds » de DV, le segment de format de flux vidéo est une structure BITMAPINFOHEADER standard. Le segment de format de flux peut être éventuellement étendu pour inclure le segment DVINFO , en augmentant la taille du segment de format de flux de 40 octets (taille de la structure BITMAPINFOHEADER ) à 72 octets (taille des structures BITMAPINFOHEADER plus 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 du membre fccType est « auds »). Le membre fccHandler n’est pas utilisé pour les flux audio.

Les données vidéo DV sont stockées sous forme de segments « ##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 segment « movi ».

Notes

La spécification des magnétoscopes numériques à usage consommateur peut ne pas être disponible dans certaines langues et certains pays.

 

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