使用 ffmpeg 生成预览缩略图(示例)?

使用 ffmpeg 生成预览缩略图(示例)?

我尝试用谷歌搜索生成预览缩略图(样本)的方法,例如MPC-HC 确实MPC_HC_缩略图.jpg

如您所见,缩略图应该有多个帧并显示帧的时间,视频的额外信息(如持续时间、名称、大小、分辨率)应该是加分项,但不是必需的。我不想单帧缩略图

我想找到一种使用 ffmpeg 来执行此操作而不是仅仅安装 MPC 的方法的原因是:

  • 我已经安装了 VLC 来播放所有视频。只有在别无选择的情况下,我才会安装新程序,而且我更喜欢便携式程序。

  • 我更喜欢 ffmpeg 的做事方式:命令行。因此 #1:我可以自动化该过程,#2:没有人可以看到我正在处理的视频。

  • 我想知道 ffmpeg 是否可以做到这一点。

答案1

const NodeTerminal = require("child_process").exec;

const { v4: uuidv4 } = require("uuid");

//mini video

NodeTerminal(
`ffmpeg -i input.mp4 -s 320x240 -vf "select='between(t,5,7)+between(t,23,25)+between(t,46,49)',setpts=N/FRAME_RATE/TB" -af "aselect='between(t,5,7)+between(t,23,25)+between(t,46,49)',asetpts=N/SR/TB" -an ${uuidv4()}.mp4`
);

//image thumbnails

NodeTerminal(
`ffmpeg -i input.mp4 -fps_mode vfr -vf "select='isnan(prev_selected_t)+gte(t-prev_selected_t,2)',scale=160:90,tile=7x7" ${uuidv4()}.jpg`
);

相关内容