48 lines
1.7 KiB
C#
48 lines
1.7 KiB
C#
namespace ErsatzTV.Core.Domain
|
|
{
|
|
public record FFmpegProfile
|
|
{
|
|
public int Id { get; set; }
|
|
public string Name { get; set; }
|
|
public int ThreadCount { get; set; }
|
|
public bool Transcode { get; set; }
|
|
public HardwareAccelerationKind HardwareAcceleration { get; set; }
|
|
public int ResolutionId { get; set; }
|
|
public Resolution Resolution { get; set; }
|
|
public string VideoCodec { get; set; }
|
|
public bool NormalizeVideo { get; set; }
|
|
public int VideoBitrate { get; set; }
|
|
public int VideoBufferSize { get; set; }
|
|
public string FrameRate { get; set; }
|
|
public string AudioCodec { get; set; }
|
|
public int AudioBitrate { get; set; }
|
|
public int AudioBufferSize { get; set; }
|
|
public int AudioVolume { get; set; }
|
|
public int AudioChannels { get; set; }
|
|
public int AudioSampleRate { get; set; }
|
|
public bool NormalizeAudio { get; set; }
|
|
|
|
public static FFmpegProfile New(string name, Resolution resolution) =>
|
|
new()
|
|
{
|
|
Name = name,
|
|
ThreadCount = 0,
|
|
Transcode = true,
|
|
ResolutionId = resolution.Id,
|
|
Resolution = resolution,
|
|
VideoCodec = "libx264",
|
|
AudioCodec = "ac3",
|
|
VideoBitrate = 2000,
|
|
VideoBufferSize = 4000,
|
|
AudioBitrate = 192,
|
|
AudioBufferSize = 384,
|
|
AudioVolume = 100,
|
|
AudioChannels = 2,
|
|
AudioSampleRate = 48,
|
|
NormalizeVideo = true,
|
|
FrameRate = "24",
|
|
NormalizeAudio = true
|
|
};
|
|
}
|
|
}
|