Answers:
您可以简化此操作,-skip_frame
而无需select
视频过滤器:
ffmpeg -skip_frame nokey -i 2.flv -vsync 0 -r 30 -f image2 thumbnails-%02d.jpeg
-threads 1
,与默认值相比,-threads auto
它使cropdetect
过滤器图表(ffmpeg -threads 1 -skip_frame nokey -i input.mkv -filter:v select='not(mod(n\,20))',cropdetect -an -f null /dev/null
)在我的系统上的速度快2倍(从60秒降低到30秒)!
-threads 1
是,否则输出关键帧的序列可能会无序发出。如果您有某种事后的方式来解决此问题,则可以保留多线程。同样,即使使用 -threads 1
,似乎仍然有可能获得乱序的关键帧,但是现在在这种情况下,所有此类情况似乎都伴随着h264解码器错误/带有标志illegal short term buffer state detected
。
ffmpeg -i 2.flv -vf "select=eq(pict_type\,I),scale=73x41" \
-vsync vfr -qscale:v 2 thumbnails-%02d.jpeg
一些提示:
ffmpeg -i 2.flv -vf "select=eq(pict_type\,I)" -vsync vfr frame-%02d.png
如果此错误:
选项vf(设置视频过滤器)无法应用于输入网址1508.mp4-您正在尝试将输入选项应用于输出文件,反之亦然。将此选项移到它所属的文件之前。输入文件1508.mp4的错误解析选项。打开输入文件时出错:无效的参数
你可以这样做:
ffmpeg -i 263.mp4 -vf select=eq(pict_type\,PICT_TYPE_I) -vsync 2 -s 480x320 -r 24 -f image2 thumbnails-%05d.jpeg
== --------------------------------------------
预先“ -i”参数