Add Shorts wizard and v4 video-style pipeline
Turn the Shorts tab into a step-by-step wizard and port amigadb-short-fx-v4.sh: Video background style, auto/manual crop, source fade-in, and blur/opacity/margin settings.
This commit is contained in:
+20
-2
@@ -1,6 +1,6 @@
|
||||
namespace AmiReel.Models;
|
||||
|
||||
/// <summary>Visual style applied to a YouTube Short. Mirrors the --style values of amigadb-short.sh.</summary>
|
||||
/// <summary>Visual style applied to a YouTube Short. Mirrors the --style values of amigadb-short-fx-v4.sh.</summary>
|
||||
public enum ShortStyle
|
||||
{
|
||||
Brand,
|
||||
@@ -22,9 +22,17 @@ public enum ShortStyle
|
||||
Monitor,
|
||||
Split,
|
||||
Spectrum,
|
||||
Video,
|
||||
}
|
||||
|
||||
/// <summary>One YouTube Shorts render job's parameters (port of amigadb-short.sh's arguments).</summary>
|
||||
/// <summary>How the video style crops the Amiga source before overlaying it.</summary>
|
||||
public enum ShortSourceCropMode
|
||||
{
|
||||
Auto,
|
||||
Center,
|
||||
}
|
||||
|
||||
/// <summary>One YouTube Shorts render job's parameters (port of amigadb-short-fx-v4.sh).</summary>
|
||||
public sealed record ShortSettings
|
||||
{
|
||||
public required string InputFile { get; init; }
|
||||
@@ -39,6 +47,16 @@ public sealed record ShortSettings
|
||||
public required double DurationSeconds { get; init; }
|
||||
public required ShortStyle Style { get; init; }
|
||||
public string BackgroundImage { get; init; } = "";
|
||||
public string BackgroundVideo { get; init; } = "";
|
||||
public double VideoBlur { get; init; }
|
||||
public double VideoOpacity { get; init; } = 1.0;
|
||||
public ShortSourceCropMode SourceCropMode { get; init; } = ShortSourceCropMode.Auto;
|
||||
public int CropLeft { get; init; }
|
||||
public int CropRight { get; init; }
|
||||
public int CropTop { get; init; }
|
||||
public int CropBottom { get; init; }
|
||||
public int SourceMarginX { get; init; } = 40;
|
||||
public double SourceFadeInSeconds { get; init; } = 1.5;
|
||||
public required string FontFile { get; init; }
|
||||
public required string FfmpegPath { get; init; }
|
||||
public required string FfprobePath { get; init; }
|
||||
|
||||
Reference in New Issue
Block a user