Compartir a través de


Posición y movimiento de rectángulos de vídeo en el espacio de composición

[La característica asociada a esta página, DirectShow, es una característica heredada. Se ha reemplazado por MediaPlayer, IMFMediaEngine y Captura de audio/vídeo en Media Foundation. Esas características se han optimizado para Windows 10 y Windows 11. Microsoft recomienda encarecidamente que el nuevo código use MediaPlayer, IMFMediaEngine y Audio/Video Capture en Media Foundation en lugar de DirectShow, siempre que sea posible. Microsoft sugiere que el código existente que usa las API heredadas se reescriba para usar las nuevas API si es posible.

Cuando VMR mezcla varias secuencias de entrada, coloca cada flujo dentro de un rectángulo normalizado, denominado "espacio de composición". Dentro del espacio de composición, las coordenadas (0,0, 0,0) a (1,0, 1,0) forman el rectángulo de vídeo visible. Las coordenadas que se encuentran fuera de este rectángulo se recortan.

Una aplicación puede realizar efectos especiales con movimiento, ampliación y reducción del vídeo de una secuencia de entrada cambiando el rectángulo de destino en el espacio de composición de esa secuencia. Si el rectángulo especificado es de un tamaño diferente al rectángulo de vídeo nativo, el vídeo nativo se reducirá o ajustará para ajustarse. El rectángulo de destino se especifica llamando al método IVMRMixerControl::SetOutputRect .

Por ejemplo, supongamos que la secuencia 0 (que corresponde al pin 0) contiene la secuencia de vídeo principal y la secuencia 1 (que corresponde al pin 1) contiene un vídeo secundario. La secuencia 1 se puede colocar completamente fuera de pantalla especificando un rectángulo normalizado de { -1.0f, 0.0f, 0.0f, 1.0f }. Después, la secuencia 1 se puede mover al área visible modificando los lados izquierdo y derecho del rectángulo en llamadas sucesivas a SetOutputRect:

Etiqueta Value
Time Rectángulo
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 }

 

mover una secuencia de vídeo en el espacio de composición

En el momento t+10, el vídeo de la secuencia 1 está completamente visible. En este ejemplo, se mantuvo el tamaño nativo de la secuencia 1 mientras se estaba moviendo. También puede estirar o reducir el rectángulo para producir efectos interesantes. También puede voltear el vídeo verticalmente especificando un valor mayor para la parte superior que la parte inferior o reflejar horizontalmente el vídeo especificando un valor mayor para la izquierda que la derecha.

Uso del modo de combinación de VMR