前言
短视频是当下最火热的话题素材,用户消费力巨大,作为内容创作者,掌握一些效率工具极为重要。
谁能以最快的速度做出高质量的素材,谁就有可能抢占信息流的前锋,成为真正的视频之王。
传统人工处理图片,视频,音频,极为繁琐而专业,耗费公司人力物力,结果并不一定好,这是高昂的隐形成本。
计算机的问题,交给计算机处理
短视频来自移动端,PC端,或其他影音设备,本身就是计算机的产物,因此这些素材也必须交给计算机处理,才是在相同的当量上作文章。
本文重点介绍视频处理和转换工具ffmpeg在提取视频图片中的应用。一共4个指令,各个都很有用,让你的工作彻底自动化起来。
四条指令
1 - 截取一张特定时间点的图片
代码语言:javascript复制ffmpeg -ss hh:mm:ss -i $INPUT_FILE -vframes 1 output.jpg
参数
- -ss 指定了视频的时分秒,
- -i 指定输入文件,
- -vframes 1 表示视频的第一帧。
上述指令,会自动选取最接近设定时间点的位置,并执行截屏。这个速度非常快。
当然也可以使用 -q:v 1,用于指定在时间点附近,选取图像质量最高的那一张。
2 - 每秒钟截取一张
代码语言:javascript复制ffmpeg -i input.flv -vf fps=1 image_%d.png
特殊地,
- -vf fps=1 表示 frame per second截取一张
- image_%d.png 会生成类似 image_1.png iamge_2.png等文件。
3 - 每间隔X时间截取一张
有了上面的每秒一张,很容易写出每X秒一张的指令:
代码语言:javascript复制ffmpeg -i input.flv -vf fps=1/450 image_%d.png
可以猜测的到,这个指令是,每间隔450秒,截取一张图片。
4 - 每间隔X个关键帧截取一张
这个挺实用:
代码语言:javascript复制ffmpeg -i input.flv -vf "select='eq(pict_type,PICT_TYPE_I)'" -vsync vfr image_%d.png
上述指令会选取间隔帧选取一张图像元素完整,没有缺损的帧,并截屏返回。在做图片故事梗概的时候很有用。
结语
ffmpeg在视频流处理,文件处理,音视频图像处理方面,是当今世界的基石,数量掌握参数技巧,无疑会大幅提升生产力,提高幸福指数。
Happy coding :-)