如何使用 FFmpeg 从图像创建视频? [英] How to create a video from images with FFmpeg?
问题描述
ffmpeg -r 1/5 -start_number 2 -i img%03d.png -c:v libx264 -r 30 -pix_fmt yuv420p out.mp4
这条线工作正常,但我想从另一个文件夹中的图像创建一个视频文件.我文件夹中的图片名称是:
img001.jpgimg002.jpgimg003.jpg...
如何从不同的文件夹输入图像文件?示例:C:mypics
我尝试了这个命令,但 ffmpeg
只生成了一个带有第一张图片 (img001.jpg) 的视频.
ffmpeg -r 1/5 -start_number 0 -i C:myimagesimg%03d.png -c:v libx264 -r 30 -pix_fmt yuv420p out.mp4
如果您的视频没有正确显示帧如果您遇到问题,例如跳过第一张图像或仅显示一帧,则使用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:ffmpegffmpeg.exe" -r 1/5 -start_number 0 -i "E:images 1padlock%3d.png" -c:v libx264 -vf "fps=25,format=yuv420p" e:out.mp4
下面的参数也有效,但它总是跳过第一张图片
"e:ffmpegffmpeg.exe" -r 1/5 -start_number 0 -i "E:images 1padlock%3d.png" -c:v libx264 -r 30 -pix_fmtyuv420p e:out.mp4
使用不同文件夹中的图片制作视频
首先,将图像路径添加到 imagepaths.txt,如下所示.
# 这是评论详情 https://trac.ffmpeg.org/wiki/Concatenate文件 'E:imagespngimages__%3d.jpg'文件 'E:imagesjpgimages__%3d.jpg'
示例用法如下;
"h:ffmpegffmpeg.exe" -y -r 1/5 -f concat -safe 0 -i "E:imagesimagepaths.txt" -c:v libx264 -vf "fps=25,format=yuv420p" "e:out.mp4"
-safe 0 参数防止不安全的文件名错误
相关链接
ffmpeg -r 1/5 -start_number 2 -i img%03d.png -c:v libx264 -r 30 -pix_fmt yuv420p out.mp4
This line worked fine but I want to create a video file from images in another folder. Image names in my folder are:
img001.jpg
img002.jpg
img003.jpg
...
How could I input images files from a different folder? Example: C:mypics
I tried this command but ffmpeg
generated a video with the first image (img001.jpg) only.
ffmpeg -r 1/5 -start_number 0 -i C:myimagesimg%03d.png -c:v libx264 -r 30 -pix_fmt yuv420p out.mp4
See the Create a video slideshow from images – FFmpeg
If your video does not show the frames correctly If you encounter problems, such as the first image is skipped or only shows for one frame, then use the fps video filter instead of -r for the output framerate
ffmpeg -r 1/5 -i img%03d.png -c:v libx264 -vf fps=25 -pix_fmt yuv420p out.mp4
Alternatively the format video filter can be added to the filter chain to replace -pix_fmt yuv420p like "fps=25,format=yuv420p". The advantage of this method is that you can control which filter goes first
ffmpeg -r 1/5 -i img%03d.png -c:v libx264 -vf "fps=25,format=yuv420p" out.mp4
I tested below parameters, it worked for me
"e:ffmpegffmpeg.exe" -r 1/5 -start_number 0 -i "E:images 1padlock%3d.png" -c:v libx264 -vf "fps=25,format=yuv420p" e:out.mp4
below parameters also worked but it always skips the first image
"e:ffmpegffmpeg.exe" -r 1/5 -start_number 0 -i "E:images 1padlock%3d.png" -c:v libx264 -r 30 -pix_fmt yuv420p e:out.mp4
making a video from images placed in different folders
First, add image paths to imagepaths.txt like below.
# this is a comment details https://trac.ffmpeg.org/wiki/Concatenate
file 'E:imagespngimages__%3d.jpg'
file 'E:imagesjpgimages__%3d.jpg'
Sample usage as follows;
"h:ffmpegffmpeg.exe" -y -r 1/5 -f concat -safe 0 -i "E:imagesimagepaths.txt" -c:v libx264 -vf "fps=25,format=yuv420p" "e:out.mp4"
-safe 0 parameter prevents Unsafe file name error
Related links
FFmpeg making a video from images placed in different folders
FFMPEG An Intermediate Guide/image sequence
这篇关于如何使用 FFmpeg 从图像创建视频?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!