Compartilhar via


Filtro AVI Mux

[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.]

O filtro AVI Mux aceita vários fluxos de entrada e os intercala no formato AVI. O filtro usa pinos de entrada separados para cada fluxo de entrada e um pino de saída para o fluxo AVI.

Aplicativos de captura ou criação de vídeo podem usar esse filtro para salvar arquivos em disco no formato AVI. O filtro normalmente está conectado ao filtro Gravador de Arquivos , mas pode se conectar a qualquer filtro cujo pino de entrada dê suporte às interfaces IStream e IMemInputPin .

Rótulo Valor
Interfaces de filtro IBaseFilter, IConfigAviMux, IConfigInterleaving, IMediaSeeking, IPersistMediaPropertyBag, ISpecifyPropertyPages
Tipos de mídia de pino de entrada Qualquer tipo principal que corresponda a um FOURCC de estilo antigo ou MEDIATYPE_AUXLine21Data. (Para obter mais informações, consulte Classe FOURCCMap.)
  • Se o tipo principal for MEDIATYPE_Audio, o formato deverá ser FORMAT_WaveFormatEx.
  • Se o tipo principal for MEDIATYPE_Video, o formato deverá ser FORMAT_VideoInfo ou FORMAT_DvInfo.
  • Se o tipo principal for MEDIATYPE_Interleaved, o formato deverá ser FORMAT_DvInfo.
Interfaces de pino de entrada IAMStreamControl, IMemInputPin, IPin, IPropertyBag, IQualityControl
Tipos de mídia de pino de saída MEDIATYPE_Stream, MEDIASUBTYPE_Avi
Interfaces de pino de saída IPin, IQualityControl
Filtrar CLSID CLSID_AviDest
CLSID da página de propriedades CLSID_AviMuxProptyPage, CLSID_AviMuxProptyPage1
Executável qcap.dll
Mérito MERIT_DO_NOT_USE
Categoria de Filtro CLSID_LegacyAmFilterCategory

 

Comentários

Os comentários a seguir descrevem vários aspectos da funcionalidade do filtro AVI Mux.

Pins

Quando o filtro AVI Mux é criado, ele tem um pino de entrada. À medida que cada pino de entrada é conectado, o filtro cria um novo pino de entrada.

Propriedades do Fluxo

Os pinos de entrada dão suporte à interface IPropertyBag para definir propriedades em fluxos individuais. Atualmente, a seguinte propriedade é definida:

Propriedade Descrição
name O nome do fluxo. Essa propriedade é gravada como uma 'strn' parte.

 

Se o filtro estiver em execução ou pausado, o método IPropertyBag::Write retornará VFW_E_WRONG_STATE.

Taxas de quadros

Se o filtro upstream não especificar uma taxa de quadros no membro AvgTimePerFrame da estrutura VIDEOINFOHEADER, o AVI Mux usará os carimbos de data/hora no primeiro quadro de vídeo. O formato de arquivo AVI não dá suporte a taxas de quadros variáveis.

Quadros removidos

O filtro AVI Mux calcula os quadros descartados com base nos tempos de mídia de cada amostra, se disponíveis, ou então os carimbos de data/hora da amostra. Ele grava uma entrada de índice de comprimento zero para cada quadro descartado.

Imediaseeking

O filtro AVI Mux implementa a interface IMediaSeeking da seguinte maneira:

  • O método GetCurrentPosition retorna o progresso atual do multiplexação. Se você estiver transcodificação de um arquivo (mais lento do que em tempo real), esse valor será mais preciso do que o valor retornado pelo Gerenciador de Grafo de Filtro. Para obter mais informações, consulte a seção Comentários da página de referência GetCurrentPosition.
  • O método GetDuration consulta cada upstream filtro e retorna a duração do fluxo mais longo. Se qualquer um desses filtros falhar na chamada GetDuration (ou não oferecer suporte a IMediaSeeking), o AVI Mux retornará um código de falha e preencherá o parâmetro pDuration com a duração mais longa encontrada. No entanto, o valor de pDuration nesse caso não é necessariamente o comprimento do fluxo de entrada mais longo.
  • O AVI Mux não implementa os métodos GetStopPosition, GetPositions, GetAvailable, GetRate ou GetPreroll; nem implementa nenhum método Set* para busca.

Extensões de formato de arquivo AVI 2.0

No momento, o DirectShow dá suporte às seguintes extensões de formato de arquivo AVI 2.0:

  • Aumento do tamanho do arquivo AVI (maior que 1 GB)
  • Indexação hierárquica

Para obter mais informações, consulte a versão 1.02 do "OpenDML AVI File Format Extensions" publicado pelo Subcomitê de Formato de Arquivo OpenDML AVI M-JPEG.

Filtros do DirectShow