FFmpeg编辑视频文件的基本用法

查看视频文件的总帧数

ffprobe -v error -select_streams v:0 -count_frames -show_entries stream=nb_read_frames -of default=nokey=1:noprint_wrappers=1 input_video.mp4 
  • -v error:这意味着只有错误才会被记录输出。
  • -select_streams v:0:选择第一个视频流。
  • -count_frames:计算视频流中的帧数。
  • -show_entries stream=nb_read_frames:只显示读取的帧数(即总帧数)。
  • -of default=nokey=1:noprint_wrappers=1:指定输出格式,使输出更加易于阅读。

删除指定帧数,比如删除视频文件中的前14帧的操作

ffmpeg -i camera_1_2024-03-01-16_39_53.mp4 -vf "select='gte(n,14)'" -vsync vfr output_video.mp4
  • -i 指定输入文件。
  • -vf 应用视频过滤器。select=‘gte(n,14)’ 是一个过滤器表达式,gte 表示 “greater than or equal”(大于等于),n 是当前帧的索引,从0开始。因此,此表达式的含义是选择所有帧号大于或等于14的帧。
  • -vsync vfr 表示输出的视频帧率将改变以适应输入流的变化,确保视频同步(video sync)。

上述命令将从第15帧开始(因为帧计数从0开始)保留原视频中的所有帧,事实上删除了前14帧。

原视频中提取前100帧,并将这些帧存储为一个新的视频文件

ffmpeg -i input_video.mp4 -frames:v 100 -c:v libx264 -preset slow -crf 22 output_video.mp4
  • -i input_video.mp4:指定输入文件,也就是你要从中提取帧的视频文件。
  • -frames:v 100:指定要提取的帧数,这里是100帧。
  • -c:v libx264:设置视频编码器为 libx264,这是创建高质量MP4文件的常用编码器。
  • -preset slow:编码速度预设,slow 提供了一个良好的压缩率到速度的平衡点,如果速度不是问题,可以提供更好的视频质量。
  • -crf 22:常量速率因子,设置视频的质量,在0(无损压缩)到51(最糟糕的质量)的范围内;默认值为23,更小的CRF值通常意味着更高的质量。
  • output_video.mp4:输出文件的名称。

每隔5帧提取一帧

ffmpeg -i input.mp4 -vf "select=not(mod(n\,5))" -vsync vfr output_%04d.png

  • -i input.mp4:指定输入文件,input.mp4是你的视频文件名。
  • -vf “select=not(mod(n,2))”:视频过滤器(video filter),select过滤器用于选择帧。not(mod(n,2))是一个表达式,其中n代表帧号,mod(n,2)计算帧号n除以2的余数,not函数则取反。因此,这个表达式会选择那些帧号除以2余数为0的帧,即每隔2帧。
  • output_%03d.jpg:指定输出文件名。%03d是一个格式化占位符,FFmpeg会自动为每个输出文件编号,例如output_001.jpg、output_002.jpg等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值