【图像处理】 ffmpeg的使用

视频按帧拆分

ffmpeg -i video.avi image-%03d.jpg
  • 将video.avi按帧拆分为image-001.jpg、image-002.jpg …
  • -i:参数-i和video.avi不能分开。新加参数应该放在-i video.avi整体之后
  • 可选参数-r:每秒取几帧。 -r 1 代表每秒抽取1帧,默认是24帧
  • 可选参数-t:从头开始取t秒的帧。 -t 3 代表从头开始取3秒的帧,每秒取几帧由-r决定
  • 可选参数-ss:从哪里开始取帧。 -ss 00:00:05 代表从05秒开始取帧,从这里开始持续几秒取帧由-t决定。这里格式不一定非得是00:00:00,单独一个整数也可以,代表从第几秒开始
  • 可选参数:-vframes:往下取几帧。 -vframes 10 代表往下取10帧

将图片串成视频

ffmpeg -i image-%02d.jpg video.mp4
  • 将图片image-01.jpg、image-02.jpg… 转换成视频video.mp4
  • -r:指定帧率
  • -s:指定视频的size, -s widthxheight(注意中间是小写字母x)

视频拆分

ffmpeg -ss 起始时间 -t 截取时常 -i original_video.mp4 -vcodec copy -acodec copy output_video.mp4

视频转换格式

ffmpeg -i video.avi video.mp4
  • 将video.avi转换为video.mp4
  • 参数-c:v:-c:v libx264,指定编码为H.264

视频编码和视频格式的区别和联系

视频编码是一种压缩技术,就是把原始的视频流压缩成特定的比特流。视频格式是一种封装格式,就是把编码后的比特流进行封装,不同的视频格式封装方法不同。

使用ffprobe获取视频总帧数

ffprobe -v error -count_frames -select_streams v:0 -show_entries stream=nb_read_frames -of default=nokey=1:noprint_wrappers=1 input.mp4
  • -v error:-v用于设置日志等级,error代表日志打印所有error信息。设置为quiet,则表示什么都不输出
  • -count_frames:计算视频流的帧数
  • -select_streams v:0:仅选择处理视频流
  • -show_entries stream=nb_read_frames:-show_entries用于选择要显示的内容,这里设置为只显示读取的帧数
  • -of default=nokey=1:noprint_wrappers=1:将输出格式(也称为“writer”)设置为默认值,不打印每个字段的键(nokey = 1),不打印节头和页脚(noprint_wrappers = 1)

ffprobe官方文档

http://www.ffmpeg.org/ffprobe.html

使用ffprobe获取视频帧率

ffprobe -v error -select_streams v:0 -of default=noprint_wrappers=1:nokey=1 -show_entries stream=r_frame_rate input.mp4

转换视频帧率

时长不变,丢弃帧

ffmpeg -r 原始帧率 -i 原始视频.mp4 -r 目标帧率 输出视频.mp4

结语

如果您有修改意见或问题,欢迎留言或者通过邮箱和我联系。
如果我的文章对您有帮助,转载请注明出处。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值