Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
[La característica asociada a esta página, DirectShow, es una característica heredada. Se ha reemplazado por MediaPlayer, IMFMediaEnginey captura de audio y vídeo en Media Foundation. Esas características se han optimizado para Windows 10 y Windows 11. Microsoft recomienda encarecidamente que el nuevo código use MediaPlayer, IMFMediaEngine y captura de audio y vídeo en Media Foundation en lugar de DirectShow, siempre que sea posible. Microsoft sugiere que el código existente que usa las API heredadas se reescriba para usar las nuevas API si es posible.
Microsoft ha especificado el formato para el almacenamiento de datos de vídeo digital (DV) en archivos AVI. Conforme a esta especificación, se asegurará de que los archivos AVI creados en este formato serán compatibles con versiones futuras de la arquitectura de vídeo digital DirectShow para windowsplatform.
En este artículo se describe el formato de los archivos AVI que contienen datos DV. Se definen determinados FOURCC (códigos de cuatro caracteres) para flujos de datos DV intercalados y controladores de flujo de compresor/descompresión DV intercalados. Se define la estructura de formato de secuencia para los datos DV. Se especifican especificaciones para dos métodos de almacenamiento de datos DV en el formato de archivo AVI.
Se supone que el lector está familiarizado con el formato de datos DV. (Este formato se define en la especificación de los VCR digitales de uso del consumidor, también denominado libro azul).
Hay dos tipos de archivos DV AVI: archivos AVI que contienen una secuencia de datos DV, denominada archivos de tipo 1; y los archivos AVI que contienen vídeo DV como una secuencia "vids" y el audio DV como secuencias "auds", llamadas archivos de tipo 2.
archivos AVI que contienen un flujo de datos DV (tipo 1)
Los datos DV intercalados se pueden almacenar en su formato nativo como una sola secuencia dentro de un archivo RIFF avi. Esto tiene la ventaja de usar la cantidad mínima de almacenamiento de datos para DV. La principal desventaja es que este formato de archivo no es compatible con versiones anteriores con Video para Windows, ya que no contiene una secuencia de vídeo "vids" o de audio "auds". Se proporciona compatibilidad con la secuencia DV intercalada a través del DV Muxer y filtros de DV Splitter proporcionados con DirectShow.
Los datos DV se pueden almacenar en una sola secuencia dentro de un archivo RIFF avi especificando el "iavs" (secuencia de audio y vídeo intercalado) FOURCC (código de cuatro caracteres) en el miembro fccType y cualquiera de los miembros "dvsd", "dvhd" o "dvsl" FOURCC en el fccHandler miembro del fragmento de encabezado de secuencia "strh". Los fotogramas por segundo de la secuencia de vídeo deben especificarse en el dwRate de y miembros dwScale y el número total de bloques de vídeo en el fragmento "movi" del miembro dwLength.
El controlador de flujo "dvsd" FOURCC especifica que los datos DV se definen en la parte 2 de la especificación de de vcR digitales de uso del consumidor. El vídeo está en formato de 525 líneas a 29,97 Hz (525-60) o 625 líneas a 25,00 Hz (625-50).
El controlador de flujo "dvhd" FOURCC especifica que los datos DV se definen en la parte 3 de la especificación de de vcR digitales de uso del consumidor. El vídeo tiene el formato de 1125 líneas a 30,00 Hz (1125-60) o 1250 líneas a 25,00 Hz (1250-50).
El controlador de flujo "dvsl" FOURCC especifica que los datos DV se definen en la parte 6 de Especificación de VCR digitales de uso del consumidor. El vídeo está en el formato de SD (SDL) de alta compresión.
Nota
El resto de este artículo proporciona definiciones para secuencias "dvsd".
El fragmento de encabezado de secuencia debe ir seguido de un fragmento de formato de secuencia de DVINFO.
Los datos dv reales se almacenan como fragmentos "##dc" en el fragmento "movi" (el ## en el formato representa el identificador de flujo). Cada fragmento contiene un fotograma de datos, ya sea 10 o 12 secuencias dv DIF para sistemas 525-60 o 625-50, respectivamente. El formato de secuencia DIF DV SD ("dvsd") se define en la parte 2 de la especificación de VCR digitales de uso del consumidor.
En el ejemplo siguiente se muestra el formulario AIFF RIFF para un archivo AVI con un flujo de datos DV, expandido con fragmentos de encabezado completados.
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)
archivos AVI que contienen secuencias de audio DV y vídeo DV (tipo 2)
Los datos DV intercalados se pueden dividir en una secuencia de vídeo y una a cuatro secuencias de audio dentro de un archivo RIFF avi. Esto tiene la ventaja de ser compatible con versiones anteriores con Video para Windows, ya que contiene una secuencia de vídeo estándar "vids" y al menos una secuencia de audio estándar "auds" La desventaja principal es que este formato de archivo requiere que los datos de audio se almacenen con redundancia como secuencias de audio. La secuencia de "vídeo" es realmente el flujo de datos DV intercalado nativo. Sin embargo, como secuencia "vids" estándar con un tipo de controlador de "dvsd", se usa el dv Video Decoder. Este formato también requiere el uso del DV Splitter filtro para dividir los archivos "capturados" antes de escribirlos como archivos AVI.
Los datos DV se pueden almacenar como una secuencia de vídeo con un número independiente de secuencias de audio en un archivo RIFF avi. La secuencia de vídeo se especifica con un encabezado de secuencia de vídeo estándar (el fccType valor de miembro es "vids"). El miembro fccHandler se especifica como "dvsd", "dvhd" o "dvsl". Los fotogramas por segundo de la secuencia de vídeo deben especificarse en el dwRate de y miembros dwScale y el número total de bloques de vídeo en el fragmento "movi" del miembro dwLength.
En este archivo AVI que contiene vídeo DV como una secuencia "vids" y audio DV como secuencias "auds" de DV, el fragmento de formato de secuencia de vídeo es una estructura estándar BITMAPINFOHEADER. El fragmento de formato de secuencia se puede extender opcionalmente para incluir el fragmento de DVINFO, aumentando el tamaño del fragmento de formato de secuencia de 40 bytes (tamaño de la estructura BITMAPINFOHEADER de) a 72 bytes (tamaño de BITMAPINFOHEADER más estructuras DV INFO) y inmediatamente después de la estructura de datos BITMAPINFOHEADER con una estructura de datos DVINFO DVINFO.
Las secuencias de audio se especifican con un encabezado de secuencia de audio estándar (el fccType valor de miembro es "auds"). El miembro fccHandler no se usa para secuencias de audio.
Los datos de vídeo DV se almacenan como fragmentos "##dc", como se define en la descripción anterior de un archivo AVI con datos DV y los datos de audio se almacenan como fragmentos "##wb" en el fragmento "movi".
Nota
Es posible que la especificación de vcR digitales de uso del consumidor no esté disponible en algunos idiomas y países.
En el ejemplo siguiente se muestra el formulario AIFF RIFF para un archivo AVI que contiene vídeo DV como una secuencia "vids" y audio DV como secuencias "auds" expandidas con fragmentos de encabezado completados (incluidos los datos opcionales DVINFO después del BITMAPINFO en el subárbol "strf" para la secuencia "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)
Temas relacionados