Files

49 lines
1.5 KiB
C#

using dy.net.utils;
using dy.net.Tests.TestInfrastructure;
namespace dy.net.Tests;
public class FFmpegHelperTests
{
[Fact]
public void ImageVideoArguments_WithoutAudio_ProduceVideoOnlyCommandWithoutNulls()
{
var arguments = FFmpegHelper.BuildImageVideoArguments(
"/tmp/frames/frame_%03d.webp",
null,
"/tmp/output.mp4",
0.33,
"[0:v]scale=1080:1920[v]",
1080,
1920);
Assert.DoesNotContain(arguments, value => value == null);
Assert.Contains("-an", arguments);
Assert.DoesNotContain("1:a", arguments);
Assert.Equal(1, arguments.Count(value => value == "-i"));
Assert.Equal("/tmp/output.mp4", arguments[^1]);
}
[Fact]
public void ImageVideoArguments_WithAudio_MapAudioAndUseShortestDuration()
{
using var temporary = new TemporaryDirectory();
var audioPath = Path.Combine(temporary.Path, "audio.mp3");
File.WriteAllBytes(audioPath, new byte[] { 1, 2, 3 });
var arguments = FFmpegHelper.BuildImageVideoArguments(
"/tmp/frames/frame_%03d.webp",
audioPath,
"/tmp/output.mp4",
0.5,
"[0:v]scale=1080:1920[v]",
1080,
1920);
Assert.DoesNotContain("-an", arguments);
Assert.Contains("1:a", arguments);
Assert.Contains("-shortest", arguments);
Assert.Equal(2, arguments.Count(value => value == "-i"));
Assert.Contains(audioPath, arguments);
}
}