Partilhar via


Filtro AVI Mux

[O recurso associado a esta página, DirectShow, é um recurso herdado. Foi substituído por MediaPlayer, IMFMediaEnginee Audio/Video Capture in Media Foundation. Esses recursos foram otimizados para Windows 10 e Windows 11. A Microsoft recomenda vivamente que o novo código utilize MediaPlayer, IMFMediaEngine e Captura de Áudio/Vídeo no 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 intercala-os 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 de vídeo ou criação podem usar esse filtro para salvar arquivos em disco no formato AVI. O filtro normalmente é conectado ao filtro do gravador de arquivos, mas pode se conectar a qualquer filtro cujo pino de entrada suporte as interfaces deIStream 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 antigo FOURCC, ou MEDIATYPE_AUXLine21Data. (Para obter mais informações, consulte FOURCCMap Class.)
  • Se o tipo principal for MEDIATYPE_Audio, o formato deve ser FORMAT_WaveFormatEx.
  • Se o tipo principal for MEDIATYPE_Video, o formato deve ser FORMAT_VideoInfo ou FORMAT_DvInfo.
  • Se o tipo principal for MEDIATYPE_Interleaved, o formato deve 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
Página de propriedade CLSID CLSID_AviMuxProptyPage, CLSID_AviMuxProptyPage1
Executável qcap.dll
Mérito MERIT_DO_NOT_USE
Categoria de filtro CLSID_LegacyAmFilterCategory

 

Comentários

As observações a seguir descrevem vários aspetos da funcionalidade do filtro AVI Mux.

Alfinetes

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 suportam a interface IPropertyBag para definir propriedades em fluxos individuais. Atualmente, a seguinte propriedade é definida:

Propriedade Descrição
Designação O nome do fluxo. Esta propriedade é escrita como um 'strn' pedaço.

 

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 AvgTimePerFrame membro da estruturaVIDEOINFOHEADER, o AVI Mux usará os carimbos de data/hora no primeiro quadro de vídeo. O formato de arquivo AVI não suporta taxas de quadros variáveis.

Quadros caídos

O filtro AVI Mux calcula quadros descartados com base nos tempos de mídia de cada amostra, se disponíveis, ou nos 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 o IMediaSeeking interface da seguinte maneira:

  • O GetCurrentPosition método retorna o progresso atual da multiplexação. Se você estiver transcodificando um arquivo (mais lento do que em tempo real), esse valor será mais preciso do que o valor retornado pelo Gerenciador de Gráficos 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 filtro upstream e retorna a duração do fluxo mais longo. Se algum desses filtros falhar na chamada GetDuration (ou não suportar IMediaSeeking), o AVI Mux retornará um código de falha e preencherá o parâmetro pDuration com a maior duração encontrada. No entanto, o valor de pDuration neste 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 buscar.

Extensões de formato de arquivo AVI 2.0

Atualmente, o DirectShow suporta as seguintes extensões de formato de arquivo AVI 2.0:

  • Aumento do tamanho do ficheiro AVI (superior a 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 OpenDML AVI M-JPEG File Format Subcommittee.

Filtros DirectShow