Crunchy-Downloader/CRD/Utils/Ffmpeg Encoding/FfmpegEncoding.cs
Elwador 5d94025fcc Add - Added encoding option to muxing settings
Add - Added Custom encoding presets
Add - Added Skip Muxing to muxing settings
Add - Added Dubs to file name settings
Add - IP check in settings to check if VPN is being used
Add - Dubs to "Add Downloads" Tab
Add - Series folder link to history series if it finds the folder
Add - Added command line arguments
Add - Added proxy settings to the Settings tab (changes require a restart to take effect)
Add - Added option to set "Sign" subs forced flag
Add - Added option to set "CC" subs "hearing-impaired" flag
Add - Added encoding presets editing
Add - Added CC subtitles font option to the settings
Add - Added available dubs to history episodes

Chg - Defaults to system accent color when no color is selected in the settings
Chg - Audio only mux to only copy and not encode
Chg - Update dialog
Chg - Light mode color adjustments
Chg - Http Connection change to detect proxy (Clash)
Chg - Settings filename description
Chg - Changed FPS on encoding presets to 24fps
Chg - Adjusted encoding to allow h264_nvenc & hevc_nvenc
Chg - Moved sync timing folders from the Windows temp folder to the application root's temp folder
Chg - The temp folder will now be deleted automatically when empty

Fix - Locale not correctly applied to Urls in the "Add Downloads" Tab
Fix - Locale not correctly applied to Search in the "Add Downloads" Tab
Fix - Scrolling issue in settings
Fix - Fix crash when removing streaming tokens (TOO_MANY_ACTIVE_STREAMS)
Fix - Search didn't reset correctly
Fix - Clash proxy didn't work
Fix - Chapters were always taken from the original version (mainly JP)
Fix - Connection issue
Fix - Fixed an issue where proxy settings were only available when history was enabled
Fix - Fixed scrolling issues with certain series in the "Add Downloads" tab
Fix - Fixed an issue where History Series appeared incomplete after being added then deleted and re-added
Fix - Fixed a crash related to sync timing
2024-09-30 20:08:37 +02:00

61 lines
No EOL
2.9 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
namespace CRD.Utils.Ffmpeg_Encoding;
public class FfmpegEncoding{
public static readonly List<VideoPreset> presets = new List<VideoPreset>{
// AV1 Software
new(){PresetName = "AV1 1080p24",Codec = "libaom-av1", Resolution = "1920:1080", FrameRate = "24", Crf = 30 } ,
new(){PresetName = "AV1 720p24", Codec = "libaom-av1", Resolution = "1280:720", FrameRate = "24", Crf = 30 } ,
new(){PresetName = "AV1 480p24", Codec = "libaom-av1", Resolution = "854:480", FrameRate = "24", Crf = 30 } ,
new(){PresetName = "AV1 360p24", Codec = "libaom-av1", Resolution = "640:360", FrameRate = "24", Crf = 30 } ,
new(){PresetName = "AV1 240p24", Codec = "libaom-av1", Resolution = "426:240", FrameRate = "24", Crf = 30 } ,
// H.265 Software
new(){PresetName = "H.265 1080p24", Codec = "libx265", Resolution = "1920:1080", FrameRate = "24", Crf = 28 } ,
new(){PresetName = "H.265 720p24", Codec = "libx265", Resolution = "1280:720", FrameRate = "24", Crf = 28 } ,
new(){PresetName = "H.265 480p24", Codec = "libx265", Resolution = "854:480", FrameRate = "24", Crf = 28 } ,
new(){PresetName = "H.265 360p24", Codec = "libx265", Resolution = "640:360", FrameRate = "24", Crf = 28 } ,
new(){PresetName = "H.265 240p24", Codec = "libx265", Resolution = "426:240", FrameRate = "24", Crf = 28 } ,
// H.264 Software
new(){ PresetName = "H.264 1080p24",Codec = "libx264", Resolution = "1920:1080", FrameRate = "24", Crf = 23 } ,
new(){PresetName = "H.264 720p24", Codec = "libx264", Resolution = "1280:720", FrameRate = "24", Crf = 23 } ,
new(){PresetName = "H.264 480p24", Codec = "libx264", Resolution = "854:480", FrameRate = "24", Crf = 23 },
new(){PresetName = "H.264 360p24", Codec = "libx264", Resolution = "640:360", FrameRate = "24", Crf = 23 } ,
new(){PresetName = "H.264 240p24", Codec = "libx264", Resolution = "426:240", FrameRate = "24", Crf = 23 } ,
};
public static VideoPreset? GetPreset(string presetName){
var preset = presets.FirstOrDefault(x => x.PresetName == presetName);
if (preset != null){
return preset;
}
Console.Error.WriteLine($"Preset {presetName} not found.");
return null;
}
public static void AddPreset(VideoPreset preset){
if (presets.Exists(x => x.PresetName == preset.PresetName)){
Console.Error.WriteLine($"Preset {preset.PresetName} already exists.");
return;
}
presets.Add(preset);
}
}
public class VideoPreset{
public string? PresetName{ get; set; }
public string? Codec{ get; set; }
public string? Resolution{ get; set; }
public string? FrameRate{ get; set; }
public int Crf{ get; set; }
public List<string> AdditionalParameters { get; set; } = new List<string>();
}