如何使用ffmpeg.exe命令行从硬盘上的多个图像创建视频文件
本文关键字:图像 创建 文件 视频 ffmpeg 何使用 exe 命令行 硬盘 | 更新日期: 2023-09-27 17:58:11
在命令提示符窗口中,我键入图像目录:
D: ''保存的屏幕截图>ffmpeg.exe-r 3-i Imgp%04d.bmp-s 720x480 test.avi
图像文件为Bmp类型。第一个图像文件名为:screenshot0.bmp最后一个是:screenshot168.bmp
一个图像细节的例子:宽度1920高度1080位深度32
ffmpeg.exe文件位于图像的同一目录中。
在提示窗口控制台输出中,我看到:
[image2@00000000025624a0]找不到路径为"Imgp%04d.bmp"且索引在0-4范围内的文件Imgp%04d.bmp:没有这样的文件或目录
那么我应该如何在命令行中执行呢?
我发现了这个问题,现在它起作用了,但它很奇怪。
在c#中,我在我想创建视频文件的硬盘上创建我桌面上的这些图像的屏幕截图。在c#中,我在计时器滴答事件中做了:
int count = 0;
private void timer1_Tick(object sender, EventArgs e)
{
Bitmap bmp = new Bitmap(sc.CaptureScreen());
bmp.Save(@"D:'SavedScreenshots'screenshot" + count + ".bmp");
bmp.Dispose();
count ++;
}
这将图像保存在硬盘上,每个文件的大小都在129-132kb之间。我可以编辑/打开图像,看到它们没有问题,但ffmpeg无法处理它们,这给了我这个错误。
现在我把c#中的代码改为:
bmp.Save(@"D:'SavedScreenshots'screenshot" + count + ".bmp", System.Drawing.Imaging.ImageFormat.Bmp);
我添加了部分:System.Drawing.Imaging.ImageFormat.Bmp
现在,每个图像文件的大小约为7MB!!!!现在ffmpeg可以用命令行处理它:
ffmpeg.exe -framerate 3 -i screenshot%d.bmp -vf scale=ntsc,setdar=16/9 test.avi
我想知道为什么当图像大小为130KB时,ffmpeg无法处理它没有找到文件或目录,而当它们为7MB时,它确实找到并创建了视频文件?
即使是现在,当我键入命令行:
ffmpeg -i screenshot%03.bmp -s 720x480 test.avi
我得到的不是这样的文件或目录
仅当我键入:时
ffmpeg -i screenshot%d.bmp -s 720x480 test.avi
它起作用了。
为什么在执行屏幕截图%3.bmp时它不起作用,而屏幕截图%d.bmp起作用?
同样做screenshot0.bmp工作。只有屏幕截图%3.bmp不起作用。在我看到的所有例子中,我都必须制作屏幕截图%3或%2,但他们没有给我这样的目录文件。
由于图像文件的名称为screenshotxxx.bmp
,因此ffmpeg
的输入参数应为-i screenshot%3d.bmp
。
如果文件名编号序列不包含统一的填充,则可以使用
ffmpeg.exe -framerate 3 -i screenshot%d.bmp -vf scale=ntsc,setdar=16/9 test.avi
我假设您的意思是调整为NTSC宽,即720x480,显示纵横比为16:9。