diff --git a/services/imajin-video/service/src/models/types.py b/services/imajin-video/service/src/models/types.py index e5fc33b9..a0744e49 100644 --- a/services/imajin-video/service/src/models/types.py +++ b/services/imajin-video/service/src/models/types.py @@ -40,6 +40,18 @@ class JobStatusResponse(BaseModel): error: str | None = None +class TranscodeRequest(BaseModel): + video_path: str = Field(..., description="Absolute path or HTTP(S) URL to the input video") + height: int = Field(480, description="Target height in pixels; width auto-calculated to preserve aspect ratio", ge=144, le=2160) + crf: int = Field(28, description="H.264 CRF quality 0–51 (lower = better/larger; default 28)", ge=0, le=51) + output_path: str | None = Field(None, description="Output file path; auto-derived as {stem}_sd.mp4 if omitted") + + +class TranscodeResponse(BaseModel): + job_id: str + status: Literal["queued"] = "queued" + + @dataclass class FaceRegion: """Face detection result for a single face in a video frame.