diff --git a/Code/Main/Export.cs b/Code/Main/Export.cs index 59058f0..0319fbd 100644 --- a/Code/Main/Export.cs +++ b/Code/Main/Export.cs @@ -84,7 +84,7 @@ namespace Flowframes.Main VidExtraData extraData = await FfmpegCommands.GetVidExtraInfo(s.inPath); string extraArgsIn = FfmpegEncode.GetFfmpegExportArgsIn(s.outFps, s.outItsScale); - string extraArgsOut = FfmpegEncode.GetFfmpegExportArgsOut(fpsLimit ? maxFps : new Fraction(), extraData); + string extraArgsOut = FfmpegEncode.GetFfmpegExportArgsOut(fpsLimit ? maxFps : new Fraction(), extraData, s.outMode); if (ffplay) { diff --git a/Code/Media/FfmpegEncode.cs b/Code/Media/FfmpegEncode.cs index 42728d1..395ecb2 100644 --- a/Code/Media/FfmpegEncode.cs +++ b/Code/Media/FfmpegEncode.cs @@ -37,8 +37,7 @@ namespace Flowframes.Media { string pre = i == 0 ? "" : $" && ffmpeg {AvProcess.GetFfmpegDefaultArgs()}"; string post = (i == 0 && encArgs.Length > 1) ? $"-f null -" : outPath.Wrap(); - string fs = (!isChunk && outMode == Interpolate.OutMode.VidMp4) ? $"-movflags +faststart" : ""; - args += $"{pre} -vsync 0 {GetFfmpegExportArgsIn(fps, itsScale)} {inArg} {encArgs[i]} {GetFfmpegExportArgsOut(resampleFps, extraData)} -threads {Config.GetInt(Config.Key.ffEncThreads)} {fs} {post} "; + args += $"{pre} -vsync 0 {GetFfmpegExportArgsIn(fps, itsScale)} {inArg} {encArgs[i]} {GetFfmpegExportArgsOut(resampleFps, extraData, Interpolate.currentSettings.outMode, isChunk)} {post} "; } await RunFfmpeg(args, framesFile.GetParentDir(), logMode, !isChunk); @@ -51,7 +50,7 @@ namespace Flowframes.Media return $"-r {fps}"; } - public static string GetFfmpegExportArgsOut (Fraction resampleFps, VidExtraData extraData) + public static string GetFfmpegExportArgsOut (Fraction resampleFps, VidExtraData extraData, Interpolate.OutMode outMode, bool isChunk = false) { List filters = new List(); string extraArgs = ""; @@ -67,7 +66,10 @@ namespace Flowframes.Media } if (!string.IsNullOrWhiteSpace(extraData.displayRatio) && !extraData.displayRatio.MatchesWildcard("*N/A*")) - extraArgs += $"-aspect {extraData.displayRatio}"; + extraArgs += $" -aspect {extraData.displayRatio}"; + + if(!isChunk && outMode == Interpolate.OutMode.VidMp4) + extraArgs += $" -movflags +faststart"; return filters.Count > 0 ? $"-vf {string.Join(",", filters)}" : "" + $" {extraArgs}"; }