ffmpeg的使用说明

  • A+
所属分类:有好物
摘要这一篇文章推荐一个软件,ffmpeg。这款软件可以很方便的进行图片与视频的处理,包括将图片转视频,图片转gif,视频转图片,获取视频关键帧等。

这一篇文章推荐一个软件,ffmpeg。这款软件可以很方便的进行图片与视频的处理,包括将图片转视频,图片转gif,视频转图片,获取视频关键帧等。

ffmpeg

下面介绍一下他的用法。

图片转视频

基本用法

ffmpeg -f image2 -i  f:/images/%d.jpg   test.mp4

在这里图片的文件名从0开始依次递增,下面是参考链接:

csdn博客-ffmpeg将图片转为视频

控制码率

使用framerate来控制将图片输入时的帧率

ffmpeg  -framerate 30 -i F:/bad_apple_num/%d.jpg -vf scale=600:480 bad_apple.mp4

使用-r可以控制输出时的帧率,这里是输入和输出时的帧率不一样

ffmpeg -framerate 10 -i input -r 25 output.mp4

下面看一个经常使用的,来源How to encode a video at 30 FPS from images taken at 7 FPS

ffmpeg -framerate 30 -i img%03d.png -c:v libx264 -pix_fmt yuv420p -crf 23 output.mp4 

下面是一端解释:

This reads the input at 30 fps (the -framerate 30 option) and encodes it using the libx264 codec with constant rate factor of 23 (the -crf 23 option).

一些报错

当遇到错误"width not divisible by 2"时候,我们的解决方法是加上-vf scale=800:400

下面是参考链接:FFmpeg - width not divisible by 2

视频转图片

来源: ffmpeg视频<--->图片互转

ffmpeg -i  ./test/video.mpg -r 1 -f image2 temp/%05d.png

上面这个例子是将./test/目录下面的video.mpg按照每秒截取一张图片的频率方式,并且将得到的图片自然数递增的顺序命名规则命名,并且保存./temp下面。

如果你想每秒10帧,那就将1改成10:

ffmpeg -i  ./test/video.mpg -r 10 -f image2 temp/%05d.png

图片的格式也可以是jpg, png, bmp。如:

ffmpeg -i  ./test/video.mpg -r 10 -f image2 temp/%05d.bmp

就会把视频转换为位图,位图的格式默认是16位色(这个有待进一步验证,因为我的实验刚好能被转换成16位色的),关于这个如果有人发现有不一样的结果,希望共享一下。

图片转gif

ffmpeg -f image2 -framerate 15 -i f:/eeeee/%d.jpg D:/c.gif

获取关键帧

ffmpeg -i "yourInputVideo.mp4" -vf select="eq(pict_type\,PICT_TYPE_I)" -vsync 2 -f image2 thumbnail_%02d.jpeg 

其他参考资料

第一个说得很详细

FFMPEG 使用说明

FFmpeg的使用

  • 微信公众号
  • 关注微信公众号
  • weinxin
  • QQ群
  • 我们的QQ群号
  • weinxin
王 茂南

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: