При преобразовании изображения в видео в C #, как я могу увеличить продолжительность (время выполнения) видео? - PullRequest
0 голосов
/ 16 декабря 2018

Я использую библиотеку 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();
        }
    }
}

1 Ответ

0 голосов
/ 16 декабря 2018

Каждое изображение занимает один кадр.Таким образом, вы можете уменьшить значение (кадров в секунду) кадров в секунду.Например, от 12 в вашем текущем коде до 1.в этом случае ваши изображения будут отображаться по 1 секунде.

...