本文介绍下如何使用ffmpeg将大量图片拼接成一个视频,并介绍其中部分参数的含义。

使用ffmpeg将图片拼接成视频前,需要将图片文件名做下预处理,文件名中必须有数字将其次序标记出来,这里我直接使用数字将图片重命名了,如下:

直接使用命令ffmpeg -f image2 -i %d.jpeg output.mp4 就可以将其转为mp4视频,命令中的%d是数字编号占位符,ffmpeg会按次序加载1-250.jpeg做为输入。这里我们没有指定如何其他参数,所以ffmpeg使用了默认的参数,比如帧率是25fps,视频使用了h264编码,分辨率直接使用了图片原始分辨率……

Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'output.mp4':Metadata:major_brand     : isomminor_version   : 512compatible_brands: isomiso2avc1mp41encoder         : Lavf58.76.100Duration: 00:00:10.00, start: 0.000000, bitrate: 28144 kb/sStream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuvj420p(pc, bt470bg/unknown/unknown), 2816x2160 [SAR 1:1 DAR 176:135], 28141 kb/s, 25 fps, 25 tbr, 12800 tbn, 50 tbc (default)Metadata:handler_name    : VideoHandlervendor_id       : [0][0][0][0]

我们可以调整其参数,生成更符合我们需求的视频,下面介绍下几个常见的参数。

-r 调整帧率

不指定帧率的话,ffmpeg会使用默认的25帧,也就是1秒钟拼接25张图片,我们可以通过调整帧率的大小来控制最终生成视频的时长。

ffmpeg -r 10 -f image2 -i %d.jpeg output1.mp4

如上命令每秒会拼接10张图片,250张图片最终会生成25秒的视频。
这里需要注意-r 10 参数的位置,在-i %d.jpeg前面和在后面的效果是不一样的。放在-i后面只会改变输出的视频帧率,而输入的还是默认值25 ,比如ffmpeg -f image2 -i %d.jpeg -r 10 output1.mp4,250张图片依旧只会生成10s的视频,但视频的播放征率会减小到10。

-b:v 调整视频码率

-b:v bitrate of video。如果原始图片比较大,默认参数生成的视频大小会比较大。比如上文中我使用的图片都是2k的高清图,最终生成的10s视频就有35MB,码率有近30Mb/s(码率是只1s播过的数据量,注意这里单位是小b)。

ffmpeg -r 10 -f image2 -i %d.jpeg -b:v 4M output2.mp4

这里额外提醒下,改变码率会影响到视频清晰度,但并不意味着高码率的视频一定比低码率的视频清晰度更高,这还取决于视频编码格式,比如h265编码可以用更小的码率生成h264同等的视频质量,像av1、v8、v9等编码也优于h264。

-crf 调整视频质量

-crf Constant Rate Factor,用以平衡视频质量和文件大小的参数,FFMPEG里取值范围为0-51,取值越高内容损失越多,视频质量更差。 ffmpeg的默认值是23,建议的取值范围是17-28。

ffmpeg -r 10 -f image2 -i %d.jpeg output3.mp4

-c:v 调整视频的编码格式

-c:v codec of video。目前ffmpeg针对于mp4默认使用的是h264,你可以使用-c:v libx265生成同等质量,但文件更小的h265视频。

ffmpeg -f image2 -i %d.jpeg -c:v libx265 output4.mp4

output4.mp4相比于上文中生成的output.mp4,视频文件大小减少了60%,但视频质量不变。你也可以使用-c:v libvpx -c:v libvpx-vp9分别生成v8和v9编码的webm文件。

ffmpeg -f image2 -i %d.jpeg -c:v libvpx output-v8.webm #注意webm默认生成的是低质量的视频,可使用-crf或者-b:v参数调整视频质量。

-vf scale 调整视频分辨率

-vf scale: Video Filter Scale

ffmpeg -f image2 -i %d.jpeg -s 640x480 output5.mp4

上面的命令会将视频直接调整为640x480的分辨率,如果原始图片不是4:3 肯定是会对原始图像做拉伸的。可以使用下面的命令等比例缩放

ffmpeg -f image2 -i %d.jpeg -vf scale=-1:480 output5.mp4 #-1表示比例缩放,也可-vf scale=640:-1固定宽度缩放高度

以上就是几个常用的参数,这几个参数不仅限于图片转视频,视频转视频时也可以使用。

使用ffmpeg将图片合成为视频(附完整参数介绍)相关推荐

  1. ffmpeg视频按帧截取图片和ffmpeg将图片合成mp4视频

    ffmpeg -i C:\Users\Desktop\qianbansheng.mp4 -y -f image2 -s 960x540 C:\Users\Desktop\ps\%05d.jpg ffm ...

  2. OpenCV小案例——批量图片合成为视频

    # 将某个文件夹下面的图片转化为一个视频 def png_to_video(dir_path):fps = 8size = (378, 512)video = cv2.VideoWriter(&quo ...

  3. python opencv PIL 视频分割成图片 图片合成为视频 修改图片大小(抗锯齿)

    Python代码将原有的视频分割成图片,我的例子是一帧一帧的分割 用python+opencv完成视频的分割 import cv2 #导入opencv模块 print(2) #测试是否运行 vc=cv ...

  4. FFmpeg 将图片合成视频 将视频导出图片 转换视频格式avi to mp4

    FFmpeg FFmpeg将视频导出每一帧图片 #ffmpeg -r framerate -i input.mp4 -f image2 output001.jpg~output447.jpg ffmp ...

  5. 通过ffmpeg把图片转换成视频

    ffmpeg是一个非常强大的工具,使用他可以转换视频格式,包括视频容器格式,视频编码格式.这里所说的视频,包括了视频和音频.可以更改视频的其他的参数,比如帧率-每秒播放的帧数, 视频的大小-尺寸等等. ...

  6. python视频操作——python实现将图片合成为视频

    python 将图片合成视频 内容来自博客~ 代码如下: import os import cv2# 要被合成的多张图片所在文件夹 # 路径分隔符最好使用"/",而不是" ...

  7. python将视频分解为图片+将图片合成为视频

    系列文章目录 文章目录 系列文章目录 前言 一.python视频拆分+图片合成(源码一) 1.python视频拆分 1.python图片合成 二.python视频拆分+图片合成(源码二) 三.pyth ...

  8. python:实现合并多张图片成视频(附完整源码)

    python:实现合并多张图片成视频 使用OpenCV库来实现将多张图片合成为视频的操作,以下是Python代码示例: import cv2 import os# 图片文件夹路径 img_folder ...

  9. FFmpeg 提取图片、剪切视频、编码视频、连接视频相关记录

    1.提取图片 FFmpeg  -ss  start_time  -t  last_time  -i  video_path  -f  image2  -r  fps  -q:v  2   image_ ...

最新文章

  1. bulma.css_如何建立一个? 具有Bulma CSS的特斯拉响应页面
  2. cd、mkdir、rmdir、touch、rm命令,绝对路径与相对路径
  3. 将pdf转为html,使用pdfdom将pdf转为html
  4. 大型运输行业实战_day14_1_webserivce简单入门
  5. 请立即弃用 Notepad++,还有 5 款更牛逼的选择!
  6. Ibatis学习总结1--ibatis简介和SQL Maps
  7. python tip
  8. oracle怎么使用包,oracle包(package)入门——应用实例
  9. [转载]onclientclick和onclick区别
  10. 前后端分离项目中,前端请求的常见问题
  11. windows配置java环境变量
  12. TopJUI通过简单的代码实现复杂的批量提交功能
  13. duilib开发(六):基本控件介绍
  14. Win10电脑 安装 逍遥模拟器【安装步骤、使用指南、逍遥多开器、卸载“逍遥模拟器”、安装手机软件示例“学习国防”】
  15. 命令行快速切换到指定路径
  16. Character controller
  17. clamwin + 拖拽查毒+右键查毒
  18. hololens拍照
  19. Myeclipse中java文件注释格式设置
  20. Centos7 Apache结合tomcat实现动静分离

热门文章

  1. 流式数据武装零售业,打响“降维”反击战!
  2. 传统相声台词-太平歌词大实话
  3. 工业相机 镜头 焦距 视野 计算相关
  4. 恋与抽卡模拟器网页_《公主连结》抽卡模拟器网站是什么 抽卡模拟器地址介绍...
  5. 视频剪辑学习笔记(1)
  6. dell计算机在桌面不显示,你好,在吗?我的戴尔笔记本电脑桌面图标不显示为什么?...
  7. 威步百科 | Blurry Box
  8. 陕师大计算机专业硕士分数线,陕师大考研初试分数线
  9. 水星mw300r虚拟服务器,水星(Mercury)MW300R无线路由器设置
  10. Android EditText输入光标居于开头最开始位置