Início rápido
Criando Assets
from mosaico.assets import create_asset
# Create an image asset
image = create_asset("image", path="background.jpg")
# Create a text asset
text = create_asset("text", data="Hello World")
# Create an audio asset
audio = create_asset("audio", path="narration.mp3")
O create_asset()
cria tipos diferentes de assets:
- Cada tipo de asset requer um identificador unico ("image", "audio", "text", "subtitle")
- Os ativos podem ser criados a partir de arquivos usando
path
ou dados diretos usandodata
- Os ativos detectam automaticamente propriedades como dimensões, duração, etc.
from mosaico.assets import ImageAsset, TextAsset, AudioAsset
# Create an image asset
image = ImageAsset.from_path("background.jpg")
# Create a text asset
text = TextAsset.from_data("Hello World")
# Create an audio asset
audio = AudioAsset.from_path("narration.mp3")
Alternativamente, os ativos podem ser criados diretamente usando suas respectivas classes:
- Cada classe de ativos tem propriedades e métodos específicos
- Os ativos podem ser criados a partir de arquivos usando
from_path()
ou dados diretos usandofrom_data()
- Os ativos detectam automaticamente propriedades como dimensões, duração, etc.
Criando referências de assets
from mosaico.assets.reference import AssetReference
# Create reference for background image
image_ref = AssetReference.from_asset(image).with_start_time(0).with_end_time(5)
# Create reference for text overlay
text_ref = AssetReference.from_asset(text).with_start_time(1).with_end_time(4)
# Create reference for audio narration
audio_ref = AssetReference.from_asset(audio).with_start_time(0).with_end_time(5)
As referências de ativos determinam quando e como os ativos aparecem no vídeo:
from_asset()
cria uma referência a partir de um ativowith_start_time()
define quando o ativo aparecewith_end_time()
define quando o ativo desaparece- Os tempos estão em segundos
- As referências também podem incluir efeitos e parâmetros personalizados
Criando uma cena
from mosaico.scene import Scene
# Create a scene containing the assets
scene = Scene(asset_references=[image_ref, text_ref, audio_ref])
Cenas agrupam ativos relacionados:
- Pega uma lista de referências de ativos
- Lida com tempo e sincronização
- Pode incluir título e descrição
- Várias cenas podem ser combinadas em um projeto
Criando um Projeto Completo
from mosaico.video.project import VideoProject, VideoProjectConfig
# Create project configuration
config = VideoProjectConfig(
name="My First Video",
resolution=(1920, 1080),
fps=30
)
# Create, configure and add assets and scene to the project
project = (
VideoProject(config=config)
.add_assets([image, text, audio])
.add_timeline_events(scene)
)
O VideoProject
une tudo:
- Configurar as configurações do projeto, como resolução e taxa de quadros
- Adicione todos os ativos usados no vídeo
- Adicionar cenas à linha do tempo
- Gerencia a composição completa do vídeo
Exportar o Projeto de Vídeo
O projeto pode ser exportado para um arquivo YAML:
Opcional: Adicionando efeitos
from mosaico.effects.factory import create_effect
# Create a zoom effect
zoom_effect = create_effect("zoom_in", start_zoom=1.0, end_zoom=1.2)
# Add effect to text reference
text_ref = text_ref.with_effects([zoom_effect])
Efeitos podem ser adicionados às referências de Assets:
- Vários efeitos integrados (zoom, pan)
- Os efeitos têm parâmetros configuráveis
- Vários efeitos podem ser combinados
- Os efeitos são aplicados durante a renderização
Exemplo completo
from mosaico.assets import create_asset
from mosaico.assets.reference import AssetReference
from mosaico.scene import Scene
from mosaico.video.project import VideoProject, VideoProjectConfig
from mosaico.effects.factory import create_effect
# 1. Create assets
image = create_asset("image", path="background.jpg")
text = create_asset("text", data="Hello World")
audio = create_asset("audio", path="narration.mp3")
# 2. Create effect
zoom_effect = create_effect("zoom_in", start_zoom=1.0, end_zoom=1.2)
# 3. Create asset references with timing
image_ref = AssetReference.from_asset(image).with_start_time(0).with_end_time(5)
text_ref = (
AssetReference.from_asset(text)
.with_start_time(1)
.with_end_time(4)
.with_effects([zoom_effect])
)
audio_ref = AssetReference.from_asset(audio).with_start_time(0).with_end_time(5)
# 4. Create scene
scene = Scene(
title="Opening Scene",
asset_references=[image_ref, text_ref, audio_ref]
)
# 5. Create, configure and add assets and events to the project
project = (
VideoProject(
config=VideoProjectConfig(
name="My First Video",
resolution=(1920, 1080),
fps=30
)
)
.add_assets([image, text, audio])
.add_timeline_events(scene)
)
# 6. Save project
project.to_file("my_video.yml")
Isso cria um vídeo de 5 segundos com:
- Uma imagem de fundo
- Texto que aparece aos 1s com um efeito de zoom
- Narração em áudio durante todo o vídeo
- Resolução HD a 30fps
O projeto pode ser salvo em um arquivo YAML para edição ou renderização posterior.