mirror of
https://github.com/n00mkrad/flowframes
synced 2024-09-29 14:38:03 +02:00
Support for lossless WMA (wmav1/wmav2) transfer into MKV output
This commit is contained in:
parent
6a45ba01a7
commit
d3ce382b75
@ -453,20 +453,6 @@ namespace Flowframes.IO
|
||||
}
|
||||
}
|
||||
|
||||
public static string GetAudioFile (string basePath)
|
||||
{
|
||||
string[] exts = new string[] { "m4a", "wav", "ogg", "mp2", "mp3" };
|
||||
|
||||
foreach(string ext in exts)
|
||||
{
|
||||
string filename = Path.ChangeExtension(basePath, ext);
|
||||
if (File.Exists(filename))
|
||||
return filename;
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public static async Task<float> GetFpsFolderOrVideo(string path)
|
||||
{
|
||||
try
|
||||
|
@ -16,8 +16,8 @@ namespace Flowframes.Main
|
||||
{
|
||||
static string interpFramesFolder;
|
||||
static string videoChunksFolder;
|
||||
public static int chunkSize = 125; // Encode every n frames
|
||||
public static int safetyBufferFrames = 90; // Ignore latest n frames to avoid using images that haven't been fully encoded yet
|
||||
public static int chunkSize; // Encode every n frames
|
||||
public static int safetyBufferFrames; // Ignore latest n frames to avoid using images that haven't been fully encoded yet
|
||||
public static string[] interpFramesLines;
|
||||
public static List<int> encodedFrameLines = new List<int>();
|
||||
public static List<int> unencodedFrameLines = new List<int>();
|
||||
@ -33,7 +33,7 @@ namespace Flowframes.Main
|
||||
safetyBufferFrames = 90;
|
||||
|
||||
if (Interpolate.current.ai.aiName.ToUpper().Contains("NCNN"))
|
||||
safetyBufferFrames = Config.GetInt("autoEncSafeBufferNcnn", 160);
|
||||
safetyBufferFrames = Config.GetInt("autoEncSafeBufferNcnn", 150);
|
||||
|
||||
if (Interpolate.current.ai.aiName == Networks.rifeCuda.aiName)
|
||||
safetyBufferFrames = Config.GetInt("autoEncSafeBufferRifeCuda", 90);
|
||||
|
@ -111,25 +111,26 @@ namespace Flowframes.Media
|
||||
|
||||
public static bool ContainerSupportsAudioFormat (Interpolate.OutMode outMode, string format)
|
||||
{
|
||||
bool supported = false;
|
||||
string alias = GetAudioExt(format);
|
||||
Logger.Log($"Checking if {outMode} supports audio format '{format}' (alias {alias})", true, false, "ffmpeg");
|
||||
|
||||
string[] formatsMp4 = new string[] { "m4a", "ac3", "dts" };
|
||||
string[] formatsMkv = new string[] { "m4a", "ac3", "dts", "ogg", "mp2", "wav" };
|
||||
string[] formatsMkv = new string[] { "m4a", "ac3", "dts", "ogg", "mp2", "mp3", "wav", "wma" };
|
||||
string[] formatsWebm = new string[] { "ogg" };
|
||||
string[] formatsProres = new string[] { "m4a", "ac3", "dts", "wav" };
|
||||
string[] formatsAvi = new string[] { "m4a", "ac3", "dts" };
|
||||
|
||||
switch (outMode)
|
||||
{
|
||||
case Interpolate.OutMode.VidMp4: return formatsMp4.Contains(alias);
|
||||
case Interpolate.OutMode.VidMkv: return formatsMkv.Contains(alias);
|
||||
case Interpolate.OutMode.VidWebm: return formatsWebm.Contains(alias);
|
||||
case Interpolate.OutMode.VidProRes: return formatsProres.Contains(alias);
|
||||
case Interpolate.OutMode.VidAvi: return formatsAvi.Contains(alias);
|
||||
case Interpolate.OutMode.VidMp4: supported = formatsMp4.Contains(alias); break;
|
||||
case Interpolate.OutMode.VidMkv: supported = formatsMkv.Contains(alias); break;
|
||||
case Interpolate.OutMode.VidWebm: supported = formatsWebm.Contains(alias); break;
|
||||
case Interpolate.OutMode.VidProRes: supported = formatsProres.Contains(alias); break;
|
||||
case Interpolate.OutMode.VidAvi: supported = formatsAvi.Contains(alias); break;
|
||||
}
|
||||
|
||||
return false;
|
||||
Logger.Log($"Checking if {outMode} supports audio format '{format}' ({alias}): {supported}", true, false, "ffmpeg");
|
||||
return supported;
|
||||
}
|
||||
|
||||
public static string GetExt(Interpolate.OutMode outMode, bool dot = true)
|
||||
@ -171,6 +172,8 @@ namespace Flowframes.Media
|
||||
case "dts": return "dts";
|
||||
case "alac": return "wav";
|
||||
case "flac": return "wav";
|
||||
case "wmav1": return "wma";
|
||||
case "wmav2": return "wma";
|
||||
}
|
||||
|
||||
return "unsupported";
|
||||
|
Loading…
Reference in New Issue
Block a user