C# 如何用C语言从一系列剧照中创建MP4视频#
我试图写一个快速的程序,从图像创建延时视频,但我找不到任何库或其他方法来做到这一点。我将输入一系列图像,然后程序将它们合并成具有我指定的帧速率和大小(宽度/高度而不是文件大小)的视频。图像在大多数情况下都相当大(来自佳能DSLR的3456x2304),我希望它能够以MP4格式输出与图像大小相同的视频,而不是其他格式 基本上,这与QuickTime Pro所做的完全一样,你给它一组静像,然后它以你指定的帧速率从中创建视频……不,我不想买QuickTime。我有用户界面,我只需要一种从图像创建视频的方法,我可以做什么/使用什么(只有免费的东西)?谢谢。您可以通过以下方式完成此操作: 帧速率 从一系列数字顺序图像(如img001.png、img002.png、img003.png等)创建视频(使用编码器libx264) 重要提示:系列中的所有图像都需要具有相同的大小和格式 您可以指定两种帧速率:C# 如何用C语言从一系列剧照中创建MP4视频#,c#,C#,我试图写一个快速的程序,从图像创建延时视频,但我找不到任何库或其他方法来做到这一点。我将输入一系列图像,然后程序将它们合并成具有我指定的帧速率和大小(宽度/高度而不是文件大小)的视频。图像在大多数情况下都相当大(来自佳能DSLR的3456x2304),我希望它能够以MP4格式输出与图像大小相同的视频,而不是其他格式 基本上,这与QuickTime Pro所做的完全一样,你给它一组静像,然后它以你指定的帧速率从中创建视频……不,我不想买QuickTime。我有用户界面,我只需要一种从图像创建视频的
- 通过在之前设置-r读取图像的速率 -一,。读取输入的默认值为-r 25,如果未指定-r,则将设置该值李>
- 通过设置视频流的输出帧速率 -r在-i之后,或使用fps过滤器。如果希望输入和输出帧速率相同,那么只需声明一个输入-r和 输出将继承相同的值
ffmpeg -r 1/5 -i img%03d.png -c:v libx264 -r 30 -pix_fmt yuv420p out.mp4
知道要使用的命令行后,可以在c#中启动它,如下所示:
if (File.Exists(outputFile))
File.Delete(outputFile);
var info = new ProcessStartInfo(exePath, yourParams);
info.CreateNoWindow = true;
info.WindowStyle = ProcessWindowStyle.Hidden;
info.UseShellExecute = false;
info.RedirectStandardError = true;
info.RedirectStandardOutput = true;
using (var proc = Process.Start(info))
proc.WaitForExit();