Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
[Функция, связанная с этой страницей, DirectShow, является устаревшей функцией. Он был заменен MediaPlayer, IMFMediaEngineи аудио и видеозахват в Media Foundation. Эти функции оптимизированы для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует в новом коде использовать MediaPlayer, IMFMediaEngine и Аудио/видеозахват в Media Foundation вместо DirectShow, когда это возможно. Корпорация Майкрософт предлагает, что существующий код, использующий устаревшие API, будет перезаписан для использования новых API, если это возможно.]
При создании фильтра WM ASF Writer он автоматически настраивается с профилем WMProfile_V80_256Video. В этом профиле используются кодеки Windows Media Audio и Windows Media Video версии 8, которые не являются последними, как кодеки серии Windows Media 9. Рекомендуется создать пользовательский профиль, использующий кодеки серии Windows Media 9, и настроить средство записи WM ASF с настраиваемым профилем, как описано в разделе Настройка профилей и других свойств файлов ASF. Перед настройкой фильтра необходимо добавить фильтр записи WM ASF в граф фильтра, а затем настроить фильтр перед подключением к любым другим фильтрам.
Все входные данные должны иметь временные метки, и все входные контакты должны быть подключены, прежде чем фильтр можно будет запустить или приостановить. Таким образом, если вы настраиваете фильтр с профилем с аудиопотоком и видеопотоком, фильтр создаст звуковой и входной пин-код видео, и оба пин-кода должны быть подключены перед запуском фильтра. Так как пакет SDK формата Windows Media требует наличия аудиопотока для работы, средство записи WM ASF должно всегда иметь входной аудиопорт, даже если он используется для условного потока, то есть приглушённого аудиопотока с низким битрейтом.
Добавление расширений единиц данных
Вы можете настроить профильный поток для расширений единиц данных, таких как коды времени SMPTE, до или после подключения фильтра, при условии, что соблюдается следующий порядок операций:
- Добавьте одно или несколько расширений единиц данных в поток с помощью IWMStreamConfig2::AddDataUnitExtension.
- Вызовите IWMProfile::ReconfigStream для обновления профиля.
- Вызовите IConfigAsfWriter::ConfigureFilterUsingProfile с обновленным объектом профиля.
- Найдите пин-код ввода видео и вызовите его метод IAMWMBufferPass::SetNotify, чтобы зарегистрировать определяемый приложением интерфейс IAMWMBufferPassCallback.
При выполнении графа вызывается метод IAMWMBufferPassCallback::Notify для каждого кадра, и вы сможете получить и задать свойства в примере с помощью методов интерфейса INSSBuffer3.
Заметка
В некоторых сценариях с интенсивным процессором, таких как обратная телециния, модуль записи WM ASF может требовать больше выходных буферов, чем некоторые подчиненные фильтры могут поддерживать. Декодер DV, например, не принимает более одного буфера для своего выходного контакта, и то же самое верно для декомпрессора AVI в определенных условиях. Если возникают проблемы при попытке подключения к этим фильтрам или при запуске графа, возможно, потребуется написать промежуточный фильтр, который принимает любое количество буферов на его выходном выводе.
Связанные разделы