我正在尝试从视频剪辑中提取关键帧。我尝试了以下命令,但它提取了所有帧。
ffmpeg -vf select="eq(pict_type\,PICT_TYPE_I)" -i 2.flv -vsync 2 -s 73x41 -r 30 -f image2 thumbnails-%%02d.jpeg
Run Code Online (Sandbox Code Playgroud)
rad*_*doh 24
您可以-skip_frame在不需要select视频过滤器的情况下使用更简单:
ffmpeg -skip_frame nokey -i 2.flv -vsync 0 -r 30 -f image2 thumbnails-%02d.jpeg
Run Code Online (Sandbox Code Playgroud)
slh*_*hck 12
ffmpeg -i 2.flv -vf "select=eq(pict_type\,I),scale=73x41" \
-vsync vfr -qscale:v 2 thumbnails-%02d.jpeg
Run Code Online (Sandbox Code Playgroud)
一些提示:
过滤器不应该出现在-i选项之前,因为它们是一个输出选项。我不知道你到底从哪里得到命令,但PICT_TYPE_I不存在——它应该是I.
在scale过滤器中,您可以替换73或41让过滤器自动计算宽度或高度以保持纵横比:例如scale=73:-1或scale=-1:41。这可以防止因“强制”缩放而导致的拉伸或挤压。
可以使用-qscale:v(或别名-q:v)控制输出质量。有效范围是 2 到 31 的线性刻度,较低的值表示较高的质量。
您ffmpeg在输入之前允许过滤器告诉我它可能已过时。为您的操作系统下载最新的静态构建,如果上述方法不起作用,则根据编译指南自行构建。
| 归档时间: |
|
| 查看次数: |
36176 次 |
| 最近记录: |