Фильтр записи WM ASF (DirectShow)
[Функция, связанная с этой страницей, DirectShow — это устаревшая функция. Он был заменен MediaPlayer, МВФMediaEngine и аудио/видеозахват в Media Foundation. Эти функции оптимизированы для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует использовать новый код MediaPlayer, МВФMediaEngine и аудио-видеозахват в Media Foundation вместо DirectShow, когда это возможно. Корпорация Майкрософт предлагает, что существующий код, использующий устаревшие API, будет перезаписан для использования новых API, если это возможно.]
Средство записи WM ASF — это фильтр-оболочка для объекта записи, предоставленного пакетом SDK для формата Windows Media™. Фильтр принимает переменное количество входных потоков и создает файл расширенного формата систем (ASF). Фильтр обрабатывает все сжатие и мультиплексирование (хотя механизм сжатия можно обойти). Средство записи WM ASF можно использовать в различных сценариях, включая запись цифрового видео (DV), повторную передачу звука и преобразование аудио-видеотрансляций (AVI) или MPEG-мультимедийных файлов для потоковой передачи сети. Этот фильтр предоставляет единственный способ создания аудиофайлов Microsoft® Windows Media™ и Видео Windows Media в Microsoft DirectShow.
Дополнительные сведения см. в статье "Создание файлов ASF в DirectShow".
Название | Значение |
---|---|
Фильтры интерфейсов | IAMFilterMiscFlags, IBaseFilter, IConfigAsfWriter, IConfigAsfWriter2, IFileSinkFilter2, IMediaSeeking, IPersistStream, IServiceProvider, ISpecifyPropertyPages, кроме того, фильтр предоставляет следующие интерфейсы пакета SDK для формата Windows Media: IWMIndexer2, IWMHeaderInfo, IWMWriterAdvanced2 |
Типы носителей входных закреплений | Зависит от профиля ASF. Обычно несжатые типы аудио и видео, хотя фильтр принимает сжатые типы, если они соответствуют профилю ASF. |
Интерфейсы входных закреплений | IAMStreamConfig, IAMWMBufferPass, IMemInputPin, IPin, IServiceProviderКроме того, пин-код предоставляет следующий интерфейс пакета SDK для формата Windows Media: IWMStreamConfig2 (через IServiceProvider) |
Типы носителей пин-кода вывода | Неприменимо. |
Интерфейсы пин-кода вывода | Неприменимо. |
Фильтрация CLSID | CLSID_WMAsfWriter |
Страница свойств CLSID | CLSID_AsfWriterProperties |
исполняемый объект | Qasf.dll |
Заслуга | MERIT_DO_NOT_USE |
Категория фильтра | Не указано |
Замечания
Для фильтра требуется пакет средств разработки программного обеспечения в формате Windows Media (SDK) и его базовые зависимости.
Количество входных закреплений в фильтре в зависимости от идентификатора профиля или профиля потока ASF.
Входные закрепления поддерживают один метод из интерфейса IAMStreamConfig : IAMStreamConfig::GetFormat. Все остальные методы возвращают E_NOTIMPL. Вызовите метод GetFormat для запроса целевого формата сжатия пин-кода, который определяется текущим профилем ASF. Используйте интерфейс IConfigAsfWriter для задания профиля.
Интерфейс IServiceProvider фильтра можно использовать для получения указателя на интерфейс IWMWriterAdvanced2, определенный в пакете SDK для формата Windows Media. Интерфейс IWMWriterAdvanced2 можно использовать для управления видео деинтерлакированием при перемешивание исходного видео. Чтобы задать режим деинтерлакации, вызовите IWMWriterAdvanced2::SetInputSetting. Для параметра dwInputNum используйте отсчитываемый от нуля индекс пин-кода ввода видео, как указано в интерфейсе IEnumPins.
В следующем примере показано, как запрашивать этот интерфейс:
// 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();
}
}
Приложения не должны использовать ни один из методов IWMWriterAdvanced , наследуемых интерфейсом IWMWriterAdvanced2 . Вызов любого из этих методов может препятствовать работе фильтра.
Единственным режимом записи файлов, поддерживаемым этим фильтром, является AM_FILE_OVERWRITE. См. раздел IFileSinkFilter2::GetMode.
Когда среда выполнения пакета SDK для формата Windows Media отправляет WMT_STATUS сообщения в фильтр записи WM ASF, фильтр перенаправит их как события EC_WMT_EVENT.
См. также