Referencia de elementos
Elemento de video
1. Estructura
interface VideoClip extends BaseClip {
type: "video";
src: string | { $ref: string };
source?: {
start?: number;
end?: number;
};
volume?: number;
muted?: boolean;
playbackRate?: number;
}2. Campos compatibles
src
- Tipo:
string | { $ref: string } - Obligatorio: sí
- Propósito: URL directa del video o referencia a un recurso de video
source.start
- Tipo:
number - Obligatorio: no
- Unidad: segundos
- Propósito: recortar el punto inicial dentro del medio de origen
source.end
- Tipo:
number - Obligatorio: no
- Unidad: segundos
- Propósito: recortar el punto final dentro del medio de origen
volume
- Tipo:
number - Obligatorio: no
- Valor por defecto:
1
muted
- Tipo:
boolean - Obligatorio: no
- Valor por defecto:
false
playbackRate
- Tipo:
number - Obligatorio: no
- Valor por defecto:
1
3. Comportamiento actual del runtime
srcadmite URL directassrcadmite$refsource.startfuncionasource.endfuncionamuted: truefuerza un volumen efectivo de0source.endafecta a la duración reproducible real del clip
4. Campos compartidos que funcionan bien con video
Puedes combinar video con seguridad con:
transformstylezIndexanimationskeyframestransition
Notas:
style.borderRadiusfuncionastyle.objectFitfunciona confill / cover / containstyle.filtersfuncionafill: estira al cuadro de destino y puede deformarcover: conserva la relación de aspecto y puede recortarcontain: conserva la relación de aspecto y puede dejar bandas vacías
5. Ejemplo
{
"type": "video",
"start": 0,
"duration": 6,
"src": { "$ref": "hero-video" },
"source": {
"start": 2,
"end": 8
},
"muted": true,
"playbackRate": 1,
"transform": {
"x": "50%",
"y": "50%",
"width": "100%",
"height": "100%"
},
"style": {
"objectFit": "cover",
"filters": [
{ "type": "blur", "value": 32 },
{ "type": "brightness", "value": 0.7 }
]
},
"transition": {
"type": "fade",
"duration": 0.2
}
}