Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
[Функция, связанная с этой страницей, DirectShow, является устаревшей функцией. Он был заменен MediaPlayer, IMFMediaEngineи аудио и видеозахват в Media Foundation. Эти функции оптимизированы для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует использовать новый код MediaPlayer, IMFMediaEngine и аудио-видеозахват в Media Foundation вместо DirectShowпо возможности. Корпорация Майкрософт предлагает, что существующий код, использующий устаревшие API, будет перезаписан для использования новых API, если это возможно.]
Когда VMR смешает несколько входных потоков, он помещает каждый поток в нормализованный прямоугольник, называемый "пространством композиции". В пространстве композиции координаты (0.0, 0.0) до (1.0, 1.0) образуют видимый прямоугольник видео. Все координаты, которые выходят за пределы этого прямоугольника, обрезаются.
Приложение может выполнять специальные эффекты с перемещением, растяжением и сжатием видео из входного потока, изменив целевой прямоугольник в пространстве композиции для этого потока. Если указанный прямоугольник отличается от размера прямоугольника собственного видео, собственный видео будет сжат или растянут для соответствия. Прямоугольник назначения задается путем вызова метода IVMRMixerControl::SetOutputRect.
Например, предположим, что поток 0 (соответствующий пин-коду 0) содержит основной видеопоток, а поток 1 (соответствующий закреплению 1) содержит дополнительное видео. Stream 1 можно разместить полностью вне экрана, указав нормализованный прямоугольник { -1.0f, 0.0f, 0.0f, 0.0f, 1.0f }. Затем поток 1 можно переместить в видимую область, изменив левую и правую стороны прямоугольника на последующих вызовах SetOutputRect:
| Ярлык | Ценность |
|---|---|
| Время | Прямоугольник |
| t + 0 | { -1.0f, 0.0f, 0.0f, 1.0f } |
| t + 1 | { -0.9f, 0.0f, 0.1f, 1.0f } |
| t + 2 | { -0.8f, 0.0f, 0.2f, 1.0f } |
| ... | ... |
| t + 10 | { 0.0f, 0.0f, 1.0f, 1.0f } |
Во время t+10 видео из потока 1 полностью видно. В этом примере при перемещении сохранялся собственный размер потока 1. Вы также можете растянуть или уменьшить прямоугольник, чтобы создать интересные эффекты. Вы также можете перевернуть видео по вертикали, указав большее значение для верхней части, чем внизу, или зеркально видео горизонтально, указав большее значение для левого, чем справа.
Связанные разделы