Skip to content

📼 Small video editor will help you automate boring and long work.

Notifications You must be signed in to change notification settings

Sparrow1488/AutoShortcut

Repository files navigation

AutoShortcut

Usage

  1. Зарегистрируйте внутренние серивисы:
var services = new ServiceCollection();

services.AddAutoShortcut(config =>
{
    config
        .AddFFmpegConfig(new FFmpegConfig(ffmpeg, ffprobe))
        .AddStorageConfig(new StorageConfig(tempPath, personalPath))
        .AddProjectConfig(new ProjectConfig("Example.mp4"));
});

var di = services.BuildServiceProvider();
  1. Загрузите медиа, используя IMediaManager:
var mediaManager = di.GetRequiredService<IMediaManager>();

var mediaList = new List<IMediaFile>();
foreach (var pathFile in Directory.GetFiles(directory))
{
    mediaList.Add(await mediaManager.LoadAnalysedAsync(pathFile));
}
  1. Создайте реализацию ITrack и вложите в него свои файлы:
var track = new MediaTrack(mediaList);
  1. Наложите эффекты на медиа на ваше усмотрение. Пример:
foreach (var media in track.Media)
{
    const int fadeSeconds = 1;
    
    media.AddEffect(new ScaleEffect(new Resolution360Px(), di))
         .AddEffect(new LoopVideo(2, di))
         .AddEffect(new FadeInEffect(0, fadeSeconds, di))
         .AddEffect(previous 
             => new FadeOutEffect((int) previous!.MediaFormat!.Duration - fadeSeconds, fadeSeconds, di)
         );
}
  1. Запустите компиляцию:
var compiler = di.GetRequiredService<ITrackCompiler>();
var result = await compiler.CompileAsync(track);