I am trying to create a video from a series of images and set different duration for each frame. At the moment I have 3 images, so 3 frames and would like to set the first frame for 5 seconds, second for 6 seconds etc.
I am not sure how to implement this on this library. The current video shows one image with 0 seconds of total duration.
Any ideas?
private void ConvertToMovie()
{
List<string> listImages = new List<string>();
listImages.Add(@"C:\Users\repos\Utilities\Utilities\bin\Debug\test1.jpg");
listImages.Add(@"C:\Users\repos\Utilities\Utilities\bin\Debug\test2.jpg");
listImages.Add(@"C:\Users\repos\Utilities\Utilities\bin\Debug\test3.jpg");
if (listImages.Count > 1)
{
var ffMpeg = new NReco.VideoConverter.FFMpegConverter();
NReco.VideoConverter.FFMpegInput[] ffMpegInputs = new NReco.VideoConverter.FFMpegInput[listImages.Count - 1 + 1];
for (int i = 0; i <= listImages.Count - 1; i++)
{
var SSAImage = new NReco.VideoConverter.FFMpegInput(listImages[i]);
ffMpegInputs[i] = SSAImage;
}
ConvertSettings csettings = new ConvertSettings();
csettings.SetVideoFrameSize(System.Convert.ToInt32(640), System.Convert.ToInt32(398));
csettings.VideoFrameCount = listImages.Count - 1;
csettings.VideoFrameRate = System.Convert.ToInt32(30);
csettings.VideoFrameSize = NReco.VideoConverter.FrameSize.hd1080;
ffMpeg.ConvertMedia(ffMpegInputs, "Converted.avi", Format.avi, csettings);
}
else
MessageBox.Show("You need at least two images to make a movie.", "something");
}