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)的视频。
ffmpeg -r 1/5 -start_number 0 -i C:\myimages\img%03d.png -c:v libx264 -r 30 -pix_fmt yuv420p out.mp4
参见从图像创建视频幻灯片- FFmpeg
如果你遇到问题,比如第一张图像被跳过或只显示一帧,那么使用fps视频过滤器而不是-r输出帧率
ffmpeg -r 1/5 -i img%03d.png -c:v libx264 -vf fps=25 -pix_fmt yuv420p out.mp4
或者,格式视频过滤器可以添加到过滤器链中,以取代-pix_fmt yuv420p,如“fps=25,format=yuv420p”。这种方法的优点是可以控制先使用哪个筛选器
ffmpeg -r 1/5 -i img%03d.png -c:v libx264 -vf "fps=25,format=yuv420p" out.mp4
我测试了下面的参数,它为我工作
"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
从放置在不同文件夹中的图像制作视频
首先,将图像路径添加到imagepath .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"
-safe 0参数防止不安全的文件名错误
相关链接
FFmpeg从放置在不同文件夹中的图像制作视频
FFMPEG中间指南/图像序列
Concatenate - FFmpeg
为我创建视频与音频它工作,你需要指定:
正常帧:-framerate 30
audio -i audio/audio.ogg
以及libx264库
system("ffmpeg -framerate 30 -i #{out_dir}/%03d.png -i audio/audio.ogg
-c:a copy -shortest -c:v libx264 -pix_fmt yuv420p out/final
/#{out_dir.sub("out/", "")}.mp4")
如果你想创建一个循环,例如3乘以-stream_loop 2,因为0,1,2
system("ffmpeg -stream_loop 2 -framerate 30 -i
#{out_dir}/%03d.png -i audio/audio.ogg -c:a copy -shortest -c:v
libx264 -pix_fmt yuv420p -b:v 50M out/final/#{out_dir.sub("out/",
"")}.mp4")