我正在尝试使用视频中均匀分布的帧来制作平铺图像。我需要它尽可能快,这就是我最终得到的结果。是否有任何明显的 ffmpeg 性能调整可以用来优化此命令的速度?
docker run jrottenberg/ffmpeg \
-hide_banner \
-loglevel panic \
-i "http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4" \
-c:a copy \
-f mjpeg \
-preset ultrafast \
-an \
-c:v mjpeg \
-vf "select='not(mod(n\\,286))',yadif,scale=480:270:force_original_aspect_ratio=increase,crop=480:270,tile=1x50" \
-q:v 10 \
-frames:v 1 - > scrub.jpg
答案1
由于您的选择间隔为 286 帧,因此您不妨只选择关键帧。因此,您可以跳过解码其他帧。
docker run jrottenberg/ffmpeg \
-hide_banner \
-loglevel panic \
-skip_frame nokey -i "http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4" \
-f mjpeg \
-vf "yadif,scale=480:270:force_original_aspect_ratio=increase,crop=480:270,tile=1x50" \
-q:v 10 \
-frames:v 1 - > scrub.jpg