FFmpeg从图像创buildvideo

ffmpeg -r 1/5 -start_number 2 -i img%03d.png -c:v libx264 -r 30 -pix_fmt yuv420p out.mp4 

这行工作正常,但我想成为另一个文件夹的图像。 我的文件夹中的图像名称:

 img001.jpg img002.jpg img003.jpg ... 

如何从另一个文件夹中的图像? 例如:“C:\ mypics”

我试过这个代码,但ffmpeg只为第一个图像(img001.jpg)设置video。

 ffmpeg -r 1/5 -start_number 0 -i C:\myimages\img%03d.png -c:v libx264 -r 30 -pix_fmt yuv420p out.mp4 

请参阅从图像创buildvideo幻灯片 – FFmpeg

如果您的video不能正确显示帧如果遇到问题,如第一张图像被跳过或仅显示一帧,则使用fps video滤镜而不是-r作为输出帧率

 ffmpeg -r 1/5 -i img%03d.png -c:v libx264 -vf fps=25 -pix_fmt yuv420p out.mp4 

或者,可以将格式videofilter添加到过滤链中,以replace-pix_fmt yuv420p,“fps = 25,format = yuv420p” 。 这种方法的好处是你可以控制哪个filter先行

 ffmpeg -r 1/5 -i img%03d.png -c:v libx264 -vf "fps=25,format=yuv420p" out.mp4 

我testing下面的参数,它为我工作

 "e:\ffmpeg\ffmpeg.exe" -r 1/5 -start_number 0 -i "E:\images\01\padlock%3d.png" -c:v libx264 -vf "fps=25,format=yuv420p" e:\out.mp4 

下面的参数也起作用,但它总是跳过第一个图像

 "e:\ffmpeg\ffmpeg.exe" -r 1/5 -start_number 0 -i "E:\images\01\padlock%3d.png" -c:v libx264 -r 30 -pix_fmt yuv420p e:\out.mp4 

从放置在不同文件夹中的图像制作video

首先将图像path添加到imagepaths.txt,如下所示。

 # this is a comment details https://trac.ffmpeg.org/wiki/Concatenate file 'E:\images\png\images__%3d.jpg' file 'E:\images\jpg\images__%3d.jpg' 

样品用法如下;

 "h:\ffmpeg\ffmpeg.exe" -y -r 1/5 -f concat -safe 0 -i "E:\images\imagepaths.txt" -c:v libx264 -vf "fps=25,format=yuv420p" "e:\out.mp4" 

安全0参数可以防止不安全的文件名错误

相关链接

FFmpeg从放置在不同文件夹中的图像制作video

FFMPEG中级指南/图像序列

连接 – FFmpeg

-pattern_type glob

这个很好的选项使得在许多情况下select图像变得更容易:

 ffmpeg -framerate 1 -pattern_type glob -i '*.jpg' \ -c:v libx264 -r 30 -pix_fmt yuv420p out.mp4 

但是请注意,尽pipe有这个名字,但这并不像shell模式一般,例如: -i '*'失败: https : //trac.ffmpeg.org/ticket/3620 (显然是因为filetype是从扩展中推导出来的)。

-r 30是为了克服像VLC这样的低帧率的玩家的错误: 使用ffmpeg在VLC中使用低fpsvideo来播放问题

也可以看看:

testing在ffmpeg 2.8.6,Ubuntu 16.04。