1、循环使用图片转视频
要使用FFmpeg命令将几张图片转换为25帧每秒的视频,视频长度为20秒,分辨率为1920x1080,可以使用以下命令
ffmpeg -loop 1 -i image%01d.jpg -c:v libx264 -preset medium -tune stillimage -crf 18 -pix_fmt yuv420p -r 25 -b:v 2M -s 1920x1080 -t 20 -y output.mp4
如果视频花屏把-b:v 2M删除。
参数意义:
-loop 1:指定要循环的输入文件
-i image%01d.jpg:指定输入文件的路径和文件名,寻找图片名字image后面为1位数字的jpg图片,比如image1.jpg,image2.jpg......。
-c:v libx264:指定使用x264编码器进行视频编码。
-preset medium:指定使用中等压缩级别,这将影响输出视频的质量和大小。可以根据需要选择其他选项,如fast,faster,slow,slower,veryfast,veryslow等。
-tune stillimage:指定编码器将针对静态图像进行优化。
-crf 18:指定输出视频的质量。较低的数字表示更高的质量,但也会导致更大的文件大小。18是一个很好的折衷值。
-pix_fmt yuv420p:指定输出视频的像素格式。
-r 25:指定输出视频的帧速率。
-t 20指定输出视频的持续时间为20秒
-y:在输出文件存在时自动覆盖它。
-b:v 2k:这个选项指定输出视频的平均比特率为2 Mbps。比特率是视频数据的传输速率,以每秒的比特数(bps)为单位。较高的比特率通常会导致更好的视频质量,但会产生更大的文件大小。如果没有指定比特率,FFmpeg将使用默认值。
-s 1920x1080:这个选项指定输出视频的分辨率为1920x1080像素。这是高清视频的常见分辨率。分辨率是指视频帧的像素数,其中宽度和高度以像素为单位。
output.mp4:指定输出文件的路径和文件名。
注意,这个命令会在当前目录下生成一个名为output.mp4的视频文件
2、不循环文件夹下面的图片转视频
ffmpeg -framerate 25 -pattern_type glob -i 'path/to/folder/*.jpg' -c:v libx264 -preset veryfast -pix_fmt yuv420p output.mp4
这个命令使用了-pattern_type glob选项来匹配文件名,同时使用了-i选项来指定输入文件。-c:v libx264选项指定了使用H.264编码器来压缩视频,-preset veryfast选项指定了使用最快的编码速度来进行压缩,-pix_fmt yuv420p选项指定了输出视频的像素格式为YUV 4:2:0。-framerate 25选项指定了输出视频的帧率为每秒25帧。最后的output.mp4指定了输出视频的文件名。
ffmpeg -framerate 25 -pattern_type glob -i './*.jpg' -c:v libx264 -preset veryfast -pix_fmt yuv420p output.mp4
下面带有-b:v 2M视频会花屏
ffmpeg -f image2 -pattern_type glob -i './*.jpg' -c:v libx264 -b:v 2M -preset medium -pix_fmt yuv420p -s 1920*1080 output.mp4
3、循环文件夹下面的图片生成视频
ffmpeg -loop 1 -pattern_type glob -i './*.jpg' -c:v libx264 -preset medium -tune stillimage -crf 18 -pix_fmt yuv420p -r 25 -b:v 2M -s 1920x1080 -t 20 -y output.mp4
参数介绍请看循环使用图片转视频。
网友评论