我正在使用Accord.Extensions.Imaging
库。下面的代码成功地转换了放置在bin > Debug > Images
文件夹中的具有指定尺寸(729、674)的png文件,并将转换后的视频文件放置在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();
}
}
}
答案 0 :(得分:2)
每张图像消耗一帧。因此,您可以降低(每秒帧数)fps的值。例如,当前代码中的12等于1。在这种情况下,您的图像将每显示1秒。