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
return this; 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_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 FONT_COLOR = "fontcolor=white";
const string X = "x=(w-text_w)/2"; 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) => public FFmpegProcessBuilder WithDuration(TimeSpan duration) =>

5
ErsatzTV.Core/FFmpeg/FFmpegProcessService.cs

@ -98,10 +98,7 @@ namespace ErsatzTV.Core.FFmpeg
.WithLoopedImage("Resources/background.png") .WithLoopedImage("Resources/background.png")
.WithLibavfilter() .WithLibavfilter()
.WithInput("anullsrc") .WithInput("anullsrc")
.WithFilterComplex( .WithErrorText(desiredResolution, "Channel is Offline")
$"[0:0]scale={desiredResolution.Width}:{desiredResolution.Height}[video]",
"[video]",
"1:a")
.WithPixfmt("yuv420p") .WithPixfmt("yuv420p")
.WithPlaybackArgs(playbackSettings) .WithPlaybackArgs(playbackSettings)
.WithMetadata(channel) .WithMetadata(channel)

3
ErsatzTV/ErsatzTV.csproj

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

Loading…
Cancel
Save