diff --git a/ErsatzTV.Core/FFmpeg/FFmpegProcessBuilder.cs b/ErsatzTV.Core/FFmpeg/FFmpegProcessBuilder.cs index bdc53f3e0..9fbacad45 100644 --- a/ErsatzTV.Core/FFmpeg/FFmpegProcessBuilder.cs +++ b/ErsatzTV.Core/FFmpeg/FFmpegProcessBuilder.cs @@ -213,15 +213,18 @@ namespace ErsatzTV.Core.FFmpeg return this; } - public FFmpegProcessBuilder WithText(string text) + public FFmpegProcessBuilder WithErrorText(IDisplaySize desiredResolution, string text) { const string FONT_FILE = "fontfile=Resources/Roboto-Regular.ttf"; - const string FONT_SIZE = "fontsize=30"; + const string FONT_SIZE = "fontsize=60"; const string FONT_COLOR = "fontcolor=white"; const string X = "x=(w-text_w)/2"; - const string Y = "y=(h-text_h)/2"; + const string Y = "y=(h-text_h)/3*2"; - return WithFiltergraph($"drawtext={FONT_FILE}:{FONT_SIZE}:{FONT_COLOR}:{X}:{Y}:text='{text}'"); + return WithFilterComplex( + $"[0:0]scale={desiredResolution.Width}:{desiredResolution.Height},drawtext={FONT_FILE}:{FONT_SIZE}:{FONT_COLOR}:{X}:{Y}:text='{text}'[v]", + "[v]", + "1:a"); } public FFmpegProcessBuilder WithDuration(TimeSpan duration) => diff --git a/ErsatzTV.Core/FFmpeg/FFmpegProcessService.cs b/ErsatzTV.Core/FFmpeg/FFmpegProcessService.cs index d93b7fae3..3c8de1e34 100644 --- a/ErsatzTV.Core/FFmpeg/FFmpegProcessService.cs +++ b/ErsatzTV.Core/FFmpeg/FFmpegProcessService.cs @@ -98,10 +98,7 @@ namespace ErsatzTV.Core.FFmpeg .WithLoopedImage("Resources/background.png") .WithLibavfilter() .WithInput("anullsrc") - .WithFilterComplex( - $"[0:0]scale={desiredResolution.Width}:{desiredResolution.Height}[video]", - "[video]", - "1:a") + .WithErrorText(desiredResolution, "Channel is Offline") .WithPixfmt("yuv420p") .WithPlaybackArgs(playbackSettings) .WithMetadata(channel) diff --git a/ErsatzTV/ErsatzTV.csproj b/ErsatzTV/ErsatzTV.csproj index 2ea24bc19..826435055 100644 --- a/ErsatzTV/ErsatzTV.csproj +++ b/ErsatzTV/ErsatzTV.csproj @@ -36,4 +36,13 @@ + + + Always + + + Always + + +