2017-07-14


在学习这一节内容之前,建议学习上一节内容 FFmpeg 音视频转换基础

上一节我们学习了 FFmpeg 进行音视频转换的功能,这一节开始学习 FFmpeg 关于图片处理的功能。

还是使用之前下载好的视频文件 out.mp4

先来看看获取视频第一帧图像的方法:

ffmpeg -i out.mp4 -vframes 1 1.png

-vframes 指取多少帧图像。

我们可以把 1.png 转成 JPG 格式:

ffmpeg -i 1.png 1.jpg

还可以把 1.png 转成 Webp 格式:

ffmpeg -i 1.png 1.webp

如果转换失败,可能是你的 FFmpeg 安装没有带上 Webp 处理模块。

Webp 格式的图片可以使用 Chrome 浏览器打开。

当然,上面那些图片转换操作都可以相互转换。

然后获取视频第一帧图像保存为 JPG 格式的图片:

ffmpeg -i out.mp4 -vframes 1 2.jpg

如果要保存成 Webp 格式的呢?

ffmpeg -i out.mp4 -vframes 1 3.webp

可以获取视频的所有帧图像:

mkdir images
ffmpeg -i out.mp4 images/image%4d.jpg

然后进入 images 目录,看到生成了 1440 张图片。

当然,上一节内容讲到的 -vf 之类的也可以用在图片生成上面,比如:

rm -rf images
mkdir images
ffmpeg -i out.mp4 -vf scale=iw/8:-1,fps=1 images/image%2d.jpg

现在看到 images 目录只生成了 61 张图片。

可以把这 61 张小图合成一张大图:

ffmpeg -i images/image%2d.jpg -filter_complex tile=61x1 merge.jpg

退回上一级目录,看到 merge.jpg 已经成功输出。 那么打开看一下吧!

也可以直接输出一张合成图:

ffmpeg -i out.mp4 -vf scale=iw/4:-1,fps=1,tile -c:v webp merge.webp

注意,若要生成 Webp 格式的合成图,需要加上 -c:v webp 参数。

思考: 视频播放时,拖拉进度条缩略图预览功能的实现?

下一篇内容将会进行 Android 上视频播放时实现进度缩略图预览功能的实现的演示。



温馨提醒

为了获得更好的阅读体验,您应该使用 Chrome 浏览器访问本站!


联系站长

Email: hi@zengzhihao.pw