Partilhar via


Dados DV no formato de arquivo AVI

[O recurso associado a esta página, DirectShow, é um recurso herdado. Foi substituído por MediaPlayer, IMFMediaEngine e Audio/Video Capture in Media Foundation. Esses recursos foram otimizados para Windows 10 e Windows 11. A Microsoft recomenda fortemente que o novo código use MediaPlayer, IMFMediaEngine e Audio/Video Capture in Media Foundation em vez de DirectShow, quando possível. A Microsoft sugere que o código existente que usa as APIs herdadas seja reescrito para usar as novas APIs, se possível.]

A Microsoft especificou o formato para armazenamento de dados dv (vídeo digital) em arquivos AVI. Em conformidade com essa especificação, os arquivos AVI criados nesse formato serão compatíveis com versões futuras da arquitetura de vídeo digital do DirectShow para o Windowsplatform.

Este artigo descreve o formato dos arquivos AVI que contêm dados DV. FourCCs específicos (códigos de quatro caracteres) para fluxos de dados DV intercalados e manipuladores de fluxo de compressor/descompactador DV são definidos. A estrutura de formato de fluxo para dados DV é definida. Especificações para dois métodos de armazenamento de dados DV no formato de arquivo AVI são especificadas.

Supõe-se que o leitor esteja familiarizado com o formato de dados DV. (Esse formato é definido na Especificação de VCRs digitais de uso do consumidor, também chamado de Livro Azul.)

Há dois tipos de arquivos DV AVI: arquivos AVI que contêm um fluxo de dados DV, chamado arquivos tipo 1 ; e arquivos AVI que contêm vídeo DV como um fluxo 'vids' e áudio DV como fluxos 'auds', chamados arquivos tipo 2 .

Arquivos AVI que contêm um fluxo de dados DV (tipo 1)

Os dados de DV intercalados podem ser armazenados em seu formato nativo como um único fluxo dentro de um arquivo RIFF da AVI. Isso tem a vantagem de usar a quantidade mínima de armazenamento de dados para DV. A principal desvantagem é que esse formato de arquivo não é compatível com versões anteriores com Vídeo para Windows, pois não contém um vídeo 'vids' ou um fluxo de áudio 'auds'. O suporte é fornecido para o fluxo de DV intercalado por meio dos filtros DV Muxer e DV Splitter fornecidos com o DirectShow.

Os dados dv podem ser armazenados em um único fluxo dentro de um arquivo AVI RIFF especificando os 'iavs' (fluxo de áudio e vídeo intercalado) FOURCC (código de quatro caracteres) no membro fccType e qualquer um dos FOURCCs 'dvsd', 'dvhd' ou 'dvsl' no membro fccHandler da parte de cabeçalho de fluxo 'strh'. Os quadros por segundo do fluxo de vídeo devem ser especificados nos membros dwRate e dwScale e o número total de blocos de vídeo na parte 'movi' no membro dwLength .

O manipulador de fluxo 'dvsd' FOURCC especifica que os dados de DV são definidos na Parte 2 da Especificação de VCRs Digitais de Uso do Consumidor. O vídeo está no formato de 525 linhas a 29,97 Hz (525-60) ou 625 linhas a 25,00 Hz (625-50).

O manipulador de fluxo 'dvhd' FOURCC especifica que os dados de DV são definidos na Parte 3 da Especificação de VCRs Digitais de uso do consumidor. O vídeo está no formato de 1125 linhas a 30,00 Hz (1125-60) ou 1250 linhas a 25,00 Hz (1250-50).

O manipulador de fluxo 'dvsl' FOURCC especifica que os dados de DV são definidos na Parte 6 da Especificação de VCRs Digitais de Uso do Consumidor. O vídeo está no formato SDL (SDL de alta compactação).

Observação

O restante deste artigo fornece definições para fluxos 'dvsd'.

 

A parte do cabeçalho de fluxo deve ser seguida por uma parte de formato de fluxo DVINFO .

Os dados reais do DV são armazenados como partes '##dc' na parte 'movi' (o ## no formato representa o identificador de fluxo). Cada parte contém um quadro de dados, 10 ou 12 sequências DV DIF para sistemas 525-60 ou 625-50, respectivamente. O formato de sequência DIF do DV SD ('dvsd') é definido na Parte 2 da Especificação de VCRs Digitais de Uso do Consumidor.

O exemplo a seguir mostra o formulário AIFF RIFF para um arquivo AVI com um fluxo de dados DV, expandido com partes de cabeçalho concluídas.

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)

Arquivos AVI que contêm fluxos de áudio DV e vídeo DV (Tipo 2)

Os dados de DV intercalados podem ser divididos em um fluxo de vídeo e de um a quatro fluxos de áudio dentro de um arquivo RIFF da AVI. Isso tem a vantagem de ser compatível com versões anteriores com Vídeo para Windows, pois contém um fluxo de vídeo padrão 'vids' e pelo menos um fluxo de áudio padrão 'auds'. A principal desvantagem é que esse formato de arquivo exige que os dados de áudio sejam armazenados com redundância como fluxos de áudio. O fluxo de "vídeo" é, na verdade, o fluxo de dados DE DV intercalado nativo. No entanto, como um fluxo 'vids' padrão com um tipo de manipulador de 'dvsd', o Decodificador de Vídeo DV é usado. Esse formato também requer o uso do filtro divisor DV para dividir arquivos "capturados" antes de gravá-los como arquivos AVI.

Os dados dv podem ser armazenados como um fluxo de vídeo com um número separado de fluxos de áudio em um arquivo AVI RIFF. O fluxo de vídeo é especificado com um cabeçalho de fluxo de vídeo padrão (o valor do membro fccType é 'vids'). O membro fccHandler é especificado como 'dvsd', 'dvhd' ou 'dvsl'. Os quadros por segundo do fluxo de vídeo devem ser especificados nos membros dwRate e dwScale e o número total de blocos de vídeo na parte 'movi' no membro dwLength .

Neste arquivo AVI que contém vídeo DV como um fluxo 'vids' e áudio DV como a forma de fluxos 'auds' de DV, a parte de formato de fluxo de vídeo é uma estrutura BITMAPINFOHEADER padrão. Opcionalmente, a parte de formato de fluxo pode ser estendida para incluir a parte DVINFO , aumentando o tamanho da parte do formato de fluxo de 40 bytes (tamanho da estrutura BITMAPINFOHEADER ) para 72 bytes (tamanho de BITMAPINFOHEADER mais estruturas DVINFO ) e imediatamente após a estrutura de dados BITMAPINFOHEADER com uma estrutura de dados DVINFO .

Os fluxos de áudio são especificados com um cabeçalho de fluxo de áudio padrão (o valor do membro fccType é 'auds'). O membro fccHandler não é usado para fluxos de áudio.

Os dados de vídeo DV são armazenados como partes '##dc', conforme definido na descrição anterior de um arquivo AVI com um dado DV, e os dados de áudio são armazenados como partes '##wb' na parte 'movi'.

Observação

A especificação de VCRs digitais de uso do consumidor pode não estar disponível em alguns idiomas e países.

 

O exemplo a seguir mostra o formulário AIFF RIFF para um arquivo AVI que contém vídeo DV como um fluxo 'vids' e áudio DV como fluxos 'auds' expandidos com partes de cabeçalho concluídas (incluindo dados DVINFO opcionais após o BITMAPINFO na subcadeia 'strf' para o fluxo '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)

Formato de arquivo AVI