AVI Stream Headers

Windows Mobile Not SupportedWindows Embedded CE Supported

9/8/2008

O cabeçalho principal é seguido por um ou mais 'strl' blocos. (Uma 'strl' parte é exigido para cada fluxo de dados.) Desses pedaços contêm informações sobre os fluxos no arquivo.

Cada 'strl' parte deve conter um cabeçalho transmitir e transmitir formato parte.

  • Fluxo cabeçalho Blocos são identificados pela FourCC (quatro-código de caractere) 'strh'.
  • Fluxo formato blocos são identificados pela FOURCC 'strf'.

Juntamente com o cabeçalho transmitir e transmitir formato partes, a 'strl' parte também pode conter um transmitir - parte dados cabeçalho e um transmitir nome parte.

  • Fluxo-cabeçalho dados blocos são identificados pela FOURCC 'strd'.
  • Fluxo nome blocos são identificados pela FOURCC 'strn'.

A estrutura cabeçalho transmitir contém informações cabeçalho para uma única transmitir de um arquivo.

typedef struct {
  FOURCC fccType;
  FOURCC fccHandler;
  DWORD dwFlags;
  DWORD dwPriority;
  DWORD dwInitialFrames;
  DWORD dwScale;
  DWORD dwRate;
  DWORD dwStart;
  DWORD dwLength;
  DWORD dwSuggestedBufferSize;
  DWORD dwQuality;
  DWORD dwSampleSize;
  RECT rcFrame;
} AVIStreamHeader;

Comentários

O cabeçalho transmitir especifica o tipo de dados que a transmitir contém, such as áudio ou vídeo, by means of um FourCC.

  • fccType
    Contém um FOURCC que especifica o tipo dos dados contidos na transmitir.

    O seguinte padrão valores AVI Para vídeo e áudio são definidos.

    Valor Definição

    'vids'

    Indica a transmitir vídeo contém dados. A parte formato transmitir contém um BITMAPINFO estrutura que pode incluir informações paleta.

    'auds'

    Indica a transmitir contém áudio dados. A parte formato transmitir contém um WAVEFORMATEX Ou PCMWAVEFORMAT estrutura, consulte a seção " Comentários " abaixo.

    'txts'

    Indica que a transmitir contém dados de texto.

  • fccHandler
    Opcionalmente, contém um FOURCC que identifica um manipulador dados específicos. Manipulador de dados é o manipulador preferencial para a transmitir. Para áudio e vídeo fluxos, isto especifica o compactador instalável ou descompactador.
  • dwFlags
    Contém sinalizadores para o fluxo de dados. Os bits de alta-palavra ordem desses sinalizadores são específicos para o tipo de dados contidos na transmitir.

    O seguinte padrão sinalizadores são definidos.

    Sinalizador Definição

    AVISF_DISABLED

    Indica este transmitir não deve ser habilitado Por padrão.

    AVISF_VIDEO_PALCHANGES

    Indica este vídeo transmitir contém alterações paleta.

    Este sinalizador avisa o software de reprodução que ele precisará animar a paleta.

  • dwPriority
    Especifica prioridade de um tipo transmitir. De exemplo, em um arquivo com múltiplo áudio fluxos, aquele com a maior prioridade pode ser a transmitir usar como padrão.
  • dwInitialFrames
    Especifica quanto áudio dados são inclinados Ahead of o vídeo quadros na intercalados arquivos. Normalmente, isso é cerca de 0,75 segundos.

    Se você estiver criando arquivos intercalados, especificar o número de quadros no arquivo prior to o quadro inicial da seqüência de AVI nesse membro.

    Para obter mais informações sobre o conteúdo desse membro, consulte "especial de informações para Interleaved arquivos" Em Vídeo para Windows Programmer ' s Guide.

  • dwScale
    Usado com dwRate Para especificar a escalabilidade tempo que este transmitir usará. Dividir dwRate Por dwScale Retorna o número de amostras por segundo.

    Para vídeo fluxos, essa taxa devem ser a taxa quadro.

    Para áudio fluxos, essa taxa deve corresponder ao tempo necessário para nBlockAlign bytes de áudio, que de áudio PCM simplesmente reduz a taxa de exemplo.

  • dwRate
    Consulte dwScale.
  • dwStart
    Especifica o tempo de início do arquivo AVI. As unidades são definidas pelo dwRate e dwScale members in the main file header. Geralmente, isso é zero, mas ele pode especificar um tempo de retardo para transmitir um que não iniciar concurrently with o arquivo.
  • dwLength
    Especifica o comprimento deste transmitir. As unidades são definidas pelo dwRate e dwScale Membros do cabeçalho da transmitir.
  • dwSuggestedBufferSize
    Especifica como grande uma reserva deve ser usada para ler esse transmitir. Normalmente, isso contém um valor correspondente para a maior parte presente na transmitir.

    Usar o tamanho do buffer correto torna reprodução mais eficiente.

    Use zero se você não souber o tamanho do buffer correto.

  • dwQuality
    Especifica um indicador de qualidade dos dados a transmitir.

    Qualidade é representada como um número entre 0 e 10.000. Para dados compactados, essa geralmente representa o valor do parâmetro de qualidade passado para o software compactação.

    Se os drivers definida como – 1, usam o valor qualidade usar como padrão.

  • dwSampleSize
    Especifica o tamanho de um único exemplo de dados.

    Isso é definido como zero se os exemplos podem variar de tamanho.

    Se esse número é diferente de zero, múltiplo amostras de dados podem ser agrupadas em uma única parte dentro de arquivo.

    Se for zero, cada exemplo de dados (such as um vídeo quadro) deve estar em um separar parte.

    Para vídeo fluxos, esse número é geralmente zero, embora ele possa ser diferente de zero se todos os vídeo quadros são o mesmo tamanho.

    Para áudio fluxos, esse número deve ser igual a nBlockAlign membro das WAVEFORMATEX estrutura descrevendo o áudio.

  • rcFrame
    Especifica o retângulo para transmitir um texto ou vídeo dentro do retângulo de filme especificado pelo destino de dwWidth e dwHeight Os membros das Cabeçalho principal AVI estrutura.

    O rcFrame membro é geralmente usado no suporte de múltiplo vídeo fluxos. Defina esse retângulo como as coordenadas correspondente ao retângulo de filme para atualização o retângulo filme inteiro.

    As unidades para esse membro são pixels. É o canto superior esquerdo do retângulo de destino relativo para o canto superior esquerdo do retângulo de filme.

Comentários

Os últimos oito membros descrever as características de reprodução da transmitir. Esses fatores incluem o seguinte:

  • (Taxa de reproduçãodwScale e dwRate)
  • Tempo do (a seqüência iniciandodwStart)
  • Comprimento do (a seqüênciadwLength)
  • Tamanho do (a reserva de reproduçãodwSuggestedBuffer)
  • Indicador de (qualidade de dadosdwQuality)
  • (Tamanho de exemplodwSampleSize)

Alguns membros na estrutura de cabeçalho transmitir também estão presentes na estrutura de cabeçalho principal. Os dados no cabeçalho principal se aplica ao arquivo inteiro, enquanto os dados na estrutura de cabeçalho transmitir aplica-se somente a um transmitir.

Uma parte transmitir formato ('strf') deve seguir uma parte transmitir cabeçalho ('strh'). A parte formato transmitir descreve o formato dos dados na transmitir.

Para vídeo fluxos, as informações nessa parte é um BITMAPINFO estrutura (incluindo informações paleta se apropriado).

Para áudio fluxos, as informações nessa parte é um WAVEFORMATEX estrutura. Ele também pode ser um PCMWAVEFORMAT Ou WAVEFORMAT estrutura, mas ambas essas estruturas são substituído in favor of WAVEFORMATEX.

A 'strl' parte também pode conter um transmitir adicional-cabeçalho parte dados ('strd'). Se usado, esta parte segue a parte formato transmitir.

O formato e de conteúdo desta parte são definidos pelos drivers compactação ou descompactação instaláveis. Normalmente, os drivers usam esse informações de instalação.

Aplicativos que ler e arquivos RIFF de gravação não precisam decodificar esta informações. Eles transferir essa dados de e para um driver como um bloco memória.

O opcional 'strn' transmitir nome parte fornece uma seqüência de caracteres zero-Terminated texto descrevendo a transmitir. (As funções arquivo AVI podem usar esta parte para permitir que aplicativos identificar os fluxos desejar para acessar pelos seus nomes.)

Um jogador AVI associa os cabeçalhos transmitir na lista 'hdrl' parte com os dados transmitir na lista 'movi' parte usando a ordem da 'strl' blocos. A 'strl' primeiro parte se aplica a transmitir 0, o segundo se aplica ao transmitir 1 e assim por diante.

De exemplo, se a 'strl' primeiro parte descreve o áudio onda dados, o áudio onda dados estão contidos em transmitir 0. Da mesma forma, se a 'strl' segundo parte descreve vídeo dados e, em seguida, o vídeo dados estão contidos em transmitir 1.

See Also

Concepts

AVI RIFF File Reference