如何使用 FFmpeg 从图像创建视频? [英] How to create a video from images with FFmpeg?

查看:46
本文介绍了如何使用 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

解决方案

查看 从图像创建视频幻灯片– 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:ffmpegffmpeg.exe" -r 1/5 -start_number 0 -i "E:images1padlock%3d.png" -c:v libx264 -vf "fps=25,format=yuv420p" e:out.mp4

下面的参数也有效,但它总是跳过第一张图片

"e:ffmpegffmpeg.exe" -r 1/5 -start_number 0 -i "E:images1padlock%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 从放置在不同文件夹中的图像制作视频

FFMPEG 中级指南/图像序列

连接 – FFmpeg

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:images1padlock%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:images1padlock%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

Concatenate – FFmpeg

这篇关于如何使用 FFmpeg 从图像创建视频?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆