Compartilhar via


Filtro de gravador ASF do WM (DirectShow)

[O recurso associado a esta página, DirectShow, é um recurso herdado. Foi substituído pelo MediaPlayer, IMFMediaEngine e Captura de áudio/vídeo no Media Foundation. Esses recursos foram otimizados para Windows 10 e Windows 11. A Microsoft recomenda fortemente que o novo código use o MediaPlayer, o IMFMediaEngine e a Captura de áudio/vídeo no Media Foundation em vez do 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 Gravador ASF do WM é um filtro de wrapper para o objeto gravador fornecido com o SDK do Formato de Mídia™ Windows. O filtro aceita um número variável de fluxos de entrada e cria um arquivo ASF (Advanced Systems Format). O filtro lida com toda a compactação e multiplexação (embora o mecanismo de compactação possa ser ignorado). Você pode usar o Gravador ASF do WM em vários cenários, incluindo captura de vídeo digital (DV), recompactação de áudio e conversão de arquivos multimídia AVI (Audio-Video Interleaved) ou MPEG para streaming de rede. Esse filtro fornece a única maneira de criar arquivos de áudio e vídeo do Microsoft® Windows Media™ no Microsoft DirectShow.

Para obter mais informações, consulte Criando arquivos ASF no DirectShow.

Etiqueta Valor
Interfaces de filtro IAMFilterMiscFlags, IBaseFilter, IConfigAsfWriter, IConfigAsfWriter2, IFileSinkFilter2, IMediaSeeking, IPersistStream, IServiceProvider, ISpecifyPropertyPagesAlém disso, o filtro expõe as seguintes interfaces SDK do formato de mídia Windows: IWMIndexer2, IWMHeaderInfo, IWMWriterAdvanced2
Tipos de mídia de pino de entrada Depende do perfil ASF. Normalmente, tipos de áudio e vídeo não compactados, embora o filtro aceite tipos compactados se eles corresponderem ao perfil ASF.
Interfaces de pinos de entrada IAMStreamConfig, IAMWMBufferPass, IMemInputPin, IPin, IServiceProviderAlém disso, o pino expõe a seguinte interface SDK do formato de mídia Windows: IWMStreamConfig2 (por meio de IServiceProvider)
Tipos de mídia de pino de saída Não aplicável.
Interfaces de pinos de saída Não aplicável.
CLSID de filtro CLSID_WMAsfWriter
CLSID da página de propriedades CLSID_AsfWriterProperties
Executável Qasf.dll
Mérito MERIT_DO_NOT_USE
Categoria de filtro Não especificado

 

Comentários

O filtro requer o SDK (Software Development Kit) do formato de mídia Windows e suas dependências subjacentes.

O número de pinos de entrada no filtro depende do perfil ou identificador de perfil do fluxo ASF.

Os pinos de entrada dão suporte a um método da interface IAMStreamConfig : IAMStreamConfig::GetFormat. Todos os outros métodos retornam E_NOTIMPL. Chame o método GetFormat para consultar o formato de compactação de destino do pino, que é definido pelo perfil ASF atual. Use a interface IConfigAsfWriter para definir o perfil.

Você pode usar a interface IServiceProvider do filtro para obter um ponteiro para a interface IWMWriterAdvanced2, que é definida no SDK do formato de mídia Windows. Você pode usar a interface IWMWriterAdvanced2 para controlar o desentrelaçamento de vídeo quando o vídeo de origem estiver entrelaçado. Para definir o modo de desentrelaçamento, chame IWMWriterAdvanced2::SetInputSetting. Para o parâmetro dwInputNum , use o índice baseado em zero do pino de entrada de vídeo, conforme enumerado pela interface IEnumPins .

O exemplo a seguir mostra como consultar essa interface:

// Assume that pAsfWriter is a valid IBaseFilter pointer.
IServiceProvider *pProvider = NULL;
IWMWriterAdvanced2 *pWMWA2 = NULL;

hr = pAsfWriter->QueryInterface(
    IID_IServiceProvider, 
    (void**)&pProvider
    );
if (SUCCEEDED(hr))
{
    hr = pProvider->QueryService(
        IID_IWMWriterAdvanced2,
        IID_IWMWriterAdvanced2, 
        (void**)&pWMWA2
        );
    pProvider->Release();
    if (SUCCEEDED(hr))
    {
        // Use pWMWA2. (Not shown.)
        pWMWA2->Release();
    }
}

Os aplicativos não devem usar nenhum dos métodos IWMWriterAdvanced que a interface IWMWriterAdvanced2 herda. Chamar qualquer um desses métodos pode interferir na operação do filtro.

O único modo de gravação de arquivo suportado por este filtro é AM_FILE_OVERWRITE. Consulte IFileSinkFilter2::GetMode.

Quando o runtime do SDK do formato de mídia Windows envia mensagens WMT_STATUS para o filtro Gravador ASF do WM, o filtro as encaminha como eventos EC_WMT_EVENT .

Filtros do DirectShow