此命令将 PNG 序列转换为 JPG 序列:
ffmpeg -i in/%8d.png out/%8d.jpg
但是,当对 WEBP 使用相同的命令时:
ffmpeg -i in/%8d.png out/%8d.webp
它将所有帧放入一个动画 WEBP 中。
我还没有找到一种方法来告诉 ffmpeg 为每个输入 PNG 创建一个 WEBP。
这有可能吗?我想避免使用任何 shell 脚本/循环。
我需要一种快速可靠的方法来获取视频的总帧数。
以下是我尝试过的方法及其缺陷:
ffprobe(快速方式)
ffprobe -select_streams v:0 -show_entries 流=nb_frames -of 默认=noprint_wrappers=1 input.mp4
问题:经常返回 N/A,不可靠。
ffprobe(慢速方式)
ffprobe -count_frames -select_streams v:0 -show_entries 流=nb_read_frames -of default=nokey=1:noprint_wrappers=1 input.mp4
问题:速度非常慢,较长的视频可能需要一分钟。
ffmpeg(快速方式)
ffmpeg -i input.mp4 -map 0:v:0 -c 复制 -f null -
问题:需要完全解码一次视频,速度相当慢
我知道我正在寻找的东西是可能的,因为某些软件(如 Topaz Video Enhance)可以做到这一点。但我不知道如何在我的 C# 项目或 ffmpeg 中实现这一点。