Filtro gravador ASF do WM (DirectShow)

[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 Gravador ASF do WM é um filtro de wrapper para o objeto gravador fornecido com o SDK de Formato de Mídia™ do Windows. O filtro aceita um número variável de fluxos de entrada e cria um arquivo ASF (Advanced Systems Format). O filtro manipula 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 (Intercalados) ou MPEG de Audio-Video para streaming de rede. Esse filtro fornece a única maneira de criar arquivos de Áudio do Microsoft® Windows Media™ e Vídeo do Windows Media no Microsoft DirectShow.

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

Rótulo Valor
Filtrar interfaces IAMFilterMiscFlags, IBaseFilter, IConfigAsfWriter, IConfigAsfWriter2, IFileSinkFilter2, IMediaSeeking, IPersistStream, IServiceProvider, ISpecifyPropertyPagesAlém disso, o filtro expõe as seguintes interfaces do SDK do Formato de Mídia do Windows: IWMIndexer2, IWMHeaderInfo, IWMWriterAdvanced2
Tipos de mídia de pino de entrada Depende do perfil do ASF. Normalmente, tipos de áudio e vídeo descompactados, embora o filtro aceite tipos compactados se corresponderem ao perfil do ASF.
Interfaces de pino de entrada IAMStreamConfig, IAMWMBufferPass, IMemInputPin, IPin, IServiceProviderAlém disso, o pin 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.
Filtrar CLSID 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 Windows Media Format e suas dependências subjacentes.

O número de pinos de entrada no filtro, dependendo do perfil ou do 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 do Windows. Você pode usar a interface IWMWriterAdvanced2 para controlar a desinterlacção de vídeo quando o vídeo de origem está entrelaçado. Para definir o modo de desinterlacagem, chame IWMWriterAdvanced2::SetInputSetting. Para o parâmetro dwInputNum , use o índice baseado em zero do pin 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 herdados pela interface IWMWriterAdvanced2 . Chamar esses métodos pode intercalar com a operação do filtro.

O único modo de gravação de arquivo compatível com esse filtro é AM_FILE_OVERWRITE. Consulte IFileSinkFilter2::GetMode.

Quando o runtime do SDK do Windows Media Format envia mensagens WMT_STATUS para o filtro Gravador do ASF do WM, o filtro as encaminha como eventos EC_WMT_EVENT .

Filtros do DirectShow