Browse Source

Fix offline stream (#46)

* publish offline stream background image

* add text to offline stream
pull/47/head
Jason Dove 5 years ago committed by GitHub
parent
commit
ed592bd0a0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 11
      ErsatzTV.Core/FFmpeg/FFmpegProcessBuilder.cs
  2. 5
      ErsatzTV.Core/FFmpeg/FFmpegProcessService.cs
  3. 9
      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)

9
ErsatzTV/ErsatzTV.csproj

@ -36,4 +36,13 @@
<ProjectReference Include="..\ErsatzTV.Infrastructure\ErsatzTV.Infrastructure.csproj" /> <ProjectReference Include="..\ErsatzTV.Infrastructure\ErsatzTV.Infrastructure.csproj" />
</ItemGroup> </ItemGroup>
<ItemGroup>
<None Update="Resources\background.png">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="Resources\Roboto-Regular.ttf">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
</ItemGroup>
</Project> </Project>

Loading…
Cancel
Save