FFMPEG常用命令(四):图片相关命令

FFMPEG常用命令(一):音视频信息与抽取
FFMPEG常用命令(二):视频相关命令
FFMPEG常用命令(三):音频相关命令
FFMPEG常用命令(四):图片相关命令
FFplay常用命令
FFprobe常用命令

上一篇文章我们学习了FFmpeg音频相关的命令,本篇文章我们来学习FFmpeg图片相关的命令。

准备工作

和上一篇文章一样,我们准备一个Res文件夹,在里面放一个视频文件(video.mp4,一分钟左右)和一张图片文件(image.jpg)。然后在这个文件夹打开命令行。
在这里插入图片描述
接着我们了解一下YUV,YUV是图片的一种编码方式,Y指明亮度,U和V指色度,用于表示像素的颜色。常见的YUV采样有三种,分别是YUV444、YUV422 及 YUV420。

YUV444是指每个像素点都有自己的Y值、U值和V值,如下图。
在这里插入图片描述
YUV422是指每个像素点都有自己的Y值,但水平方向每两个像素共用U值和V值。
在这里插入图片描述
YUV420是指每个像素点都有自己的Y值,但每横竖四个像素共用U值和V值。
在这里插入图片描述
因此同样一张图片采用不同的采样方式,体积大小 YUV444 > YUV422 > YUV420。

图片间转换命令

将jpeg格式转换为yuv格式命令如下,-pix_fmt 用于设置像素格式,除了yuv444p,还有yuv422p、yuv420p等。

ffmpeg -i image.jpg -pix_fmt yuv444p out444.yuv

YUV文件都很大,那是因为yuv是原始格式。
在这里插入图片描述
反过来也可以转换。命令如下。注意,-s 设置尺寸是必须的(原图片是409x470),而且要写在 -i 前面。其次,尺寸写错很有可能会输出花屏图片。

ffmpeg -s 409x470 -i out444.yuv result.jpg

(呃…打印机又没墨了?)那是因为上面的命令没有设置像素格式,默认使用了yuv420p。

第一张是原图,第二张是YUV444图片使用了yuv420p,第三张是因为尺寸输入错误(300x300)。
在这里插入图片描述
设置好像素格式即可。注意,-s 和 -pix_fmt 都要写在 -i 前面。

ffmpeg -s 409x470 -pix_fmt yuv444p -i out444.yuv result.jpg

当然我们还可以把图片转换为其他格式。常见的格式有jpeg、bmp、gif、png等。

ffmpeg -i image.jpg result.bmp

视频与yuv命令

如下命令可以把MP4视频转换为yuv文件。注意!!! 视频长度最好不要超过1分钟!yuv是原始文件,体积是相当大的。原视频只有不到6MB,可是yuv文件却接近1GB。

ffmpeg -i video.mp4 -pix_fmt yuv444p out.yuv

在这里插入图片描述
yuv转换回原视频也是可以的,不过必须设置对采样方式、视频尺寸和帧率。

原视频尺寸是640x360,帧率是23.96,out.yuv采样方式是yuv444p。-s 、-pix_fmt 要写在 -i 前面。-r 设置帧率。

ffmpeg -s 640x360 -pix_fmt yuv444p -i out.yuv -r 23.96 result.mp4

出现如下的闪屏、花屏,是因为-pix_fmt 设置错误导致的。视频看起来卡顿是因为-r 设置的帧率比原视频小太多。
在这里插入图片描述

视频转图片

视频本质上就是一张张的图片快速切换得来的。通过FFmpeg,我们也可以把一个视频还原成一张张的图片。视频转图片命令如下。-ss 表示开始时间(秒),-t 表示持续时间(秒),-r 表示帧率,-r 1 表示每秒截一张图。-r 2 则表示每秒截两张图。result%d.jpg 表示输出图片集的名字。

ffmpeg -i video.mp4 -ss 5 -t 10 -r 1 result%d.jpg

在这里插入图片描述
也可以把图片集重新合成视频。命令如下,-r 和 -t 要写在 -i 前面。(ppt视频…)

ffmpeg -r 1 -t 10 -i result%d.jpg result.mp4

最后

本篇文章讲述了FFmpeg图片间、视频-yuv、视频-图片的相关命令。

参考文章

《ffmpeg图片与视频命令笔记》
《ffmpeg把yuv数据转换成jpeg图片》
《使用FFmpeg生成YUV视频文件并播放(通过命令的方式)》
《如何使用FFmpeg将视频转成图片_图片转成视频》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值