Filtro WM ASF Writer (DirectShow)
[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 WM ASF Writer é um filtro wrapper para o objeto do gravador fornecido com o SDK do Windows Media™ Format. 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 compressão e multiplexação (embora o mecanismo de compressão possa ser ignorado). Você pode usar o WM ASF Writer em vários cenários, incluindo captura de vídeo digital (DV), compressão de áudio e conversão de arquivos multimídia Audio-Video Interleaved (AVI) ou MPEG para streaming de rede. Este 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.
Rótulo | Valor |
---|---|
Interfaces de filtro |
IAMFilterMiscFlags , IBaseFilter , IConfigAsfWriter , IConfigAsfWriter2, IFileSinkFilter2, IMediaSeeking, IPersistStream, IServiceProvider, ISpecifyPropertyPagesAlém disso, o filtro expõe as seguintes interfaces do SDK do Windows Media Format: IWMIndexer2, IWMHeaderInfo, IWMWriterAdvanced2 |
Tipos de mídia de pino de entrada | Depende do perfil ASF. Normalmente, os tipos de áudio e vídeo não comprimidos, embora o filtro aceite tipos comprimidos se corresponderem ao perfil ASF. |
Interfaces de pinos de entrada |
IAMStreamConfig, IAMWMBufferPass, IMemInputPin, IPin, IServiceProviderAlém disso, o pino expõe a seguinte interface do SDK do Windows Media Format: IWMStreamConfig2 (através do IServiceProvider) |
Tipos de mídia de pinos de saída | Não aplicável. |
Interfaces de pinos de saída | Não aplicável. |
Filtrar CLSID | CLSID_WMAsfWriter |
Página de propriedades CLSID | CLSID_AsfWriterProperties |
Executável | Qasf.dll |
Mérito | MERIT_DO_NOT_USE |
Categoria de filtro | Não especificado |
Comentários
O filtro requer o Windows Media Format Software Development Kit (SDK) 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 suportam um método do 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 o IConfigAsfWriter interface 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 Windows Media Format. Você pode usar o interface de IWMWriterAdvanced2 para controlar o desentrelaçamento de vídeo quando o vídeo de origem é 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 pelo interface de 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 de IWMWriterAdvanced que o IWMWriterAdvanced2 interface herda. Chamar qualquer um desses métodos pode interferir com o funcionamento do filtro.
O único modo de escrita de ficheiros suportado por este filtro é AM_FILE_OVERWRITE. Consulte IFileSinkFilter2::GetMode.
Quando o tempo de execução do SDK do Windows Media Format envia mensagens WMT_STATUS para o filtro WM ASF Writer, o filtro as encaminha como eventos EC_WMT_EVENT.
Tópicos relacionados