通过cmd命令的方式转码MP4为webp动图:
均衡大小和z效果的配置(直接拷贝后需要改下路径):
ffmpeg -i E:\steam\222.mp4 -vcodec libwebp -filter:v fps=fps=24 -lossless 0 -compression_level 5 -q:v 35 -loop 1 -preset default -an -vsync 0 -s 1920:1080 output.webp
解释:
# 开始使用FFmpeg将视频转换为WebP格式的图像序列
ffmpeg # 指定输入文件路径
-i E:\steam\111.mp4 # 视频编码器设置为libwebp,适用于生成WebP格式,当然也有其他编码器:
# -vcodec libx264:H.264/AVC 编码,广泛用于网络视频传输和存储。
# -vcodec libx265:H.265/HEVC 编码,提供更高的压缩效率,适用于高清和 4K 视频。
# -vcodec mpeg4:MPEG-4 编码,适用于较老的设备,或者你想转换rmvb格式。
# -vcodec h264_nvenc:H.264 编码,使用 NVIDIA GPU 加速。
# -vcodec hevc_nvenc:H.265/HEVC 编码,使用 NVIDIA GPU 加速。
# -vcodec vp9:VP9 编码,适用于现代浏览器和视频流媒体。
# -vcodec libvpx-vp9:VP9 编码库。
# -vcodec libvpx:VP8 编码库。
# -vcodec mpeg2video:MPEG-2 编码,适用于较老的设备。
# -vcodec copy:复制视频流而不进行重新编码。
-vcodec libwebp # 设置音视频比特率,转码动图格式不需要比特率
#-b:v 800k:设置视频比特率为 800 kbps。
#-b:a 128k:设置音频比特率为 128 kbps。# 设置视频滤镜,当前为控制FPS,选项有:
# fps: 设置输出帧速率。
# round: 指定如何四舍五入帧数。
# drop: 是否丢弃多余的帧。
# force_fps: 强制输出帧速率。
-filter:v fps=fps=6# 设置有损压缩模式,值范围0-6,数字越大压缩越强
-lossless 0 # 压缩等级,取值0-6,数值越大压缩比越高
-compression_level 1 # 视频质量参数,取值0-100,数值越大质量越差
-q:v 10 # 设置图像循环次数为1次,即不循环。0为无限循环
-loop 1 # 预设编码速度与压缩率平衡选项,default 为默认选项,其余选项有:
# -preset ultrafast: 提供最快的编码速度,但通常会导致较大的文件大小和较低的压缩效率。
# -preset superfast: 仍然很快,但在质量和压缩效率上比 ultrafast 稍好。
# -preset veryfast: 比 superfast 慢一点,但提供了更好的质量。
# -preset faster: 继续增加质量,同时减少编码速度。
# -preset fast: 更进一步地在速度和质量之间找到一个较好的平衡。
# -preset medium: 这是一个比较通用的预设,试图在速度和质量之间达到一个合理的平衡。
# -preset slow: 为了获得更好的质量,牺牲更多的编码时间。
# -preset slower: 比 slow 更注重质量。
# -preset veryslow: 提供最佳的质量,但需要最长的编码时间。
# -preset placebo: 这个预设理论上提供最好的质量,但是不再被推荐使用,因为它并不比 veryslow 更好,且非常耗时。
-preset default # -an为禁用音频流,
# -acodec libmp3lame:使用 MP3 音频编码器。
-an # 帧速率同步,选项有:
# -vsync 0:关闭帧速率同步。这意味着输出视频的帧速率不会进行任何特别的调整。
# -vsync 1:使用默认的帧速率同步方法(通常为 cfr,即恒定帧速率)。
# -vsync 2:使用 vfr(可变帧速率)方法,尝试尽可能保持输入视频的帧速率。
# -vsync 3:使用 cfr 方法,并在必要时丢弃或重复帧以保持恒定帧速率。
# -vsync vfr:使用可变帧速率方法,适合处理不规则的帧速率。
# -vsync cfr:使用恒定帧速率方法,适合处理需要固定帧速率的情况。
-vsycn 0 # 设置输出图像尺寸像素
-s 1280x720 # 输出文件路径及名称
E:\steam\output.webp