0

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");
}
alwaysVBNET
  • 3,150
  • 8
  • 32
  • 65

0 Answers0