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)
Rubriques connexes