Я использую библиотеку Accord.Extensions.Imaging
.Приведенный ниже код успешно преобразует PNG-файлы с указанными размерами (729, 674), помещенные в папку bin > Debug > Images
, и помещает преобразованный видеофайл в папку bin > Debug
, но продолжительность видео составляет 0 секунд.Я знаю, что это сработало, потому что я вижу изображение в течение доли секунды при воспроизведении видеофайла.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Accord.Extensions.Imaging;
namespace Image_To_Video_2
{
class Program
{
static void Main(string[] args)
{
makeAvi("images", "video.avi");
}
public static void makeAvi(string imageInputfolderName, string outVideoFileName, float fps = 12.0f, string imgSearchPattern = "*.png")
{ // reads all images in folder
VideoWriter w = new VideoWriter(outVideoFileName,
new Accord.Extensions.Size(729, 674), fps, true, VideoCodec.MotionJpeg);
Accord.Extensions.Imaging.ImageDirectoryReader ir =
new ImageDirectoryReader(imageInputfolderName, imgSearchPattern);
while (ir.Position < ir.Length)
{
IImage i = ir.Read();
w.Write(i);
}
w.Close();
}
}
}