Browse Source

fix concat segmenter for nvidia and qsv (#1622)

pull/1623/head
Jason Dove 1 year ago committed by GitHub
parent
commit
6957a76156
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 7
      ErsatzTV.FFmpeg/Pipeline/NvidiaPipelineBuilder.cs
  2. 7
      ErsatzTV.FFmpeg/Pipeline/QsvPipelineBuilder.cs

7
ErsatzTV.FFmpeg/Pipeline/NvidiaPipelineBuilder.cs

@ -8,6 +8,7 @@ using ErsatzTV.FFmpeg.Filter.Cuda; @@ -8,6 +8,7 @@ using ErsatzTV.FFmpeg.Filter.Cuda;
using ErsatzTV.FFmpeg.Format;
using ErsatzTV.FFmpeg.GlobalOption.HardwareAcceleration;
using ErsatzTV.FFmpeg.InputOption;
using ErsatzTV.FFmpeg.OutputFormat;
using ErsatzTV.FFmpeg.OutputOption;
using ErsatzTV.FFmpeg.State;
using Microsoft.Extensions.Logging;
@ -63,6 +64,12 @@ public class NvidiaPipelineBuilder : SoftwarePipelineBuilder @@ -63,6 +64,12 @@ public class NvidiaPipelineBuilder : SoftwarePipelineBuilder
desiredState.VideoFormat,
desiredState.VideoProfile,
desiredState.PixelFormat);
// use software encoding (rawvideo) when piping to parent hls segmenter
if (ffmpegState.OutputFormat is OutputFormatKind.Nut)
{
encodeCapability = FFmpegCapability.Software;
}
// mpeg2_cuvid seems to have issues when yadif_cuda is used, so just use software decoding
if (context.ShouldDeinterlace && videoStream.Codec == VideoFormat.Mpeg2Video)

7
ErsatzTV.FFmpeg/Pipeline/QsvPipelineBuilder.cs

@ -8,6 +8,7 @@ using ErsatzTV.FFmpeg.Filter.Qsv; @@ -8,6 +8,7 @@ using ErsatzTV.FFmpeg.Filter.Qsv;
using ErsatzTV.FFmpeg.Format;
using ErsatzTV.FFmpeg.GlobalOption.HardwareAcceleration;
using ErsatzTV.FFmpeg.InputOption;
using ErsatzTV.FFmpeg.OutputFormat;
using ErsatzTV.FFmpeg.OutputOption;
using ErsatzTV.FFmpeg.State;
using Microsoft.Extensions.Logging;
@ -65,6 +66,12 @@ public class QsvPipelineBuilder : SoftwarePipelineBuilder @@ -65,6 +66,12 @@ public class QsvPipelineBuilder : SoftwarePipelineBuilder
desiredState.VideoFormat,
desiredState.VideoProfile,
desiredState.PixelFormat);
// use software encoding (rawvideo) when piping to parent hls segmenter
if (ffmpegState.OutputFormat is OutputFormatKind.Nut)
{
encodeCapability = FFmpegCapability.Software;
}
pipelineSteps.Add(new QsvHardwareAccelerationOption(ffmpegState.VaapiDevice));

Loading…
Cancel
Save