Browse Source

add text to offline stream

pull/46/head
Jason Dove 5 years ago
parent
commit
da8e8411e7
  1. 11
      ErsatzTV.Core/FFmpeg/FFmpegProcessBuilder.cs
  2. 5
      ErsatzTV.Core/FFmpeg/FFmpegProcessService.cs
  3. 3
      ErsatzTV/ErsatzTV.csproj

11
ErsatzTV.Core/FFmpeg/FFmpegProcessBuilder.cs

@ -213,15 +213,18 @@ namespace ErsatzTV.Core.FFmpeg @@ -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) =>

5
ErsatzTV.Core/FFmpeg/FFmpegProcessService.cs

@ -98,10 +98,7 @@ namespace ErsatzTV.Core.FFmpeg @@ -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)

3
ErsatzTV/ErsatzTV.csproj

@ -40,6 +40,9 @@ @@ -40,6 +40,9 @@
<None Update="Resources\background.png">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="Resources\Roboto-Regular.ttf">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
</ItemGroup>
</Project>

Loading…
Cancel
Save