Filtro de gravador WM ASF (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 WM ASF Writer é um filtro wrapper para o objeto writer 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 compactaçã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), 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 do SDK do Windows Media Format: 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 do SDK do Windows Media Format: IWMStreamConfig2 (por meio de IServiceProvider) |
Tipos de mídia de pino de saída | Não aplicável. |
Interfaces de pino de saída | Não aplicável. |
Filtro CLSID | CLSID_WMAsfWriter |
Página de propriedades CLSID | CLSID_AsfWriterProperties |
Executável | Qasf.dll |
Mérito | MERIT_DO_NOT_USE |
Categoria do 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 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 Windows Media Format. Você pode usar a interface IWMWriterAdvanced2 para controlar o desentrelaçamento de vídeo quando o vídeo de origem está 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 esse filtro é AM_FILE_OVERWRITE. Consulte IFileSinkFilter2::GetMode.
Quando o tempo de execução do SDK do Windows Media Format envia mensagens de WMT_STATUS para o filtro WM ASF Writer, o filtro as encaminha como eventos EC_WMT_EVENT.
Tópicos relacionados