c#中的单个图像到视频

Single image to video in c#

我一直在VS中使用Aforge来操作图像,现在我需要将单个图像转换为视频。我的代码有效,但只要我添加图像路径,它就会输出一个空视频。我想这是非常简单的事情,但由于我对 c# 几乎一无所知,所以我需要帮助这个过程的每一步。

有人可以帮我解决这个问题吗?

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Drawing.Imaging;
using System.Drawing.Drawing2D;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using AForge;
using AForge.Video.FFMPEG;


namespace VideoWriter
{
    public partial class Form1 : Form
    {
        public Form1()
        {
        InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {

            int width = 720;
            int height = 402;

            VideoFileWriter writer = new VideoFileWriter();
            writer.Open(@"C:\pathtovideo\video.mp4", width, height, 25, VideoCodec.MPEG4, 1000000);

            Bitmap image = new Bitmap(width, height);

            // THIS ONE NEXT IS WHAT I HAVE BEEN TRYING, BUT I GUESS IS VERY WRONG
            //Bitmap image = new Bitmap(@"C:\pathtoimage\myimage.jpg");

            for (int i = 0; i < 250; i++)
            {
                writer.WriteVideoFrame(image);
            }

            writer.Close();

        }
    }

顺便说一句,欢迎使用不包括库或框架的任何其他解决方案。我只是使用 Aforge,因为我相信这是最简单的方法。

提前致谢

我可以使用以下代码从 JPEG 图像创建视频:

int width = 720;
int height = 402;

VideoFileWriter writer = new VideoFileWriter();
writer.Open(@"C:\Temp\video.mp4", width, height, 25, VideoCodec.MPEG4, 1000000);

Bitmap originalImage = new Bitmap(@"C:\Temp\myimage.jpg");
Bitmap resizedImage = new Bitmap(originalImage, new Size(width, height));

for (int i = 0; i < 250; i++)
{
    writer.WriteVideoFrame(resizedImage);
}

writer.Close();

您需要调整图像大小以匹配视频帧的大小。