using System; using System.IO; using VisioForge.Types; using VisioForge.Types.Output; using VisioForge.VideoEdit; using VisioForge.Controls; using VisioForge.Controls.VideoEdit; namespace ve_console { class Program { // Folder contains images private const string AssetDir = "c:\\samples\\pics\\"; static void Main(string[] args) { if (!Directory.Exists(AssetDir)) { Console.WriteLine(@"Folder with images does not exists: " + AssetDir); return; } var images = Directory.GetFiles(AssetDir, "*.jpg"); if (images.Length == 0) { Console.WriteLine(@"Folder with images is empty or do not have files with .jpg extension: " + AssetDir); return; } if (File.Exists(AssetDir + "output.avi")) { File.Delete(AssetDir + "output.avi"); } var ve = new VideoEditCore(); int insertTime = 0; foreach (string img in images) { ve.Input_AddImageFile(img, 2000, insertTime, VideoEditStretchMode.Letterbox, 0, 640, 480); insertTime += 2000; } ve.Video_Effects_Clear(); ve.Mode = VideoEditMode.Convert; ve.Video_Resize = true; ve.Video_Resize_Width = 640; ve.Video_Resize_Height = 480; ve.Video_FrameRate = 25; ve.Video_Renderer = new VideoRendererSettings { VideoRenderer = VideoRendererMode.None, StretchMode = VideoRendererStretchMode.Letterbox }; var aviOutput = new AVIOutput { Video_Codec = "MJPEG Compressor" }; ve.Output_Format = aviOutput; ve.Output_Filename = AssetDir + "output.avi"; ve.Video_Effects_Enabled = true; ve.Video_Effects_Clear(); ve.OnError += VideoEdit1_OnError; ve.OnProgress += VideoEdit1_OnProgress; ve.ConsoleUsage = true; ve.Start(); Console.WriteLine(@"Video saved to: " + ve.Output_Filename); } private static void VideoEdit1_OnProgress(object sender, ProgressEventArgs progressEventArgs) { Console.WriteLine(progressEventArgs.Progress); } private static void VideoEdit1_OnError(object sender, ErrorsEventArgs e) { Console.WriteLine(e.Message); } } }