FFMPEG 的常见简单命令

#毕设 #JavaCV
FFMPEG Introduction

基本介绍

  • 是一个命令行工具,解决的是如何将每帧画面存储成二进制数据的问题,功能强大
  • 配置之后可以在命令行进行音视频的处理工作,并生成文件
  • 常见mp4格式:H.264/MPEG-4 AVC
  • 基本存储命令 ffmpeg -i test.avi test.mp4
  • 指定编码器命令:ffmpeg -i test.avi -c:v libx264 output.mp4
    • -c:v video encoder 尽量放在-i后面
    • libx264是默认的,可替换为显卡h264_nvenc
  • 指定渲染速度命令:ffmpeg -i test.avi -c:v libx264 -preset veryfast output.mp4
    • 速度可以设置为:ultrafast/superfast/veryfast/fast/medium(默认)/slow/slower/veryslow
    • 编码越快生成的文件越大
  • 指定文件质量:ffmpeg -i test.avi -c:v lib264 -crf 22 output.mp4
    • -crf constant rate factor 范围 0~50,越大越差,常用范围为19~28

过滤器

调整视频

  • 指定大小:ffmpeg -i test.avi -c:v lib264 -vf "scale=1024:576" output.mp4
    • 1024:576 视频画面长度 :宽度
    • 任一长度或宽度指定为-1,ffmpeg会自动推算另一个参数
  • 指定旋转方向:ffmpeg -i test.avi -c:v lib264 -vf "transpose=2" output.mp4
    • transpose=2 逆时针旋转90度
  • 指定裁剪大小:ffmpeg -i test.avi -c:v lib264 -vf "crop=400:400:100:100" out.mp4
    • crop=w:h❌y 为裁剪位置
    • 也可以 ffmpeg -i test.avi -c:v lib264 -vf "crop=iw/3:ih/3" output.mp4指定比例
  • 裁剪指定位置后的数秒:ffmpeg -i test.avi -c:v lib264 -ss 00:00:03 -t 00:00:05 output.mp4
    • -t 00:00:05 表示5秒,可以用5直接代替
    • -ss 表示起始位置
    • -t 00:00:05 改成 -to 00:00:05表示裁剪到第5秒
  • 裁剪多个文件:
    • 将文件名放入一个列表中,每个文件换行.假设名字为mylist.txt,内容为 clip1.mp4 clip2.mp4 clip3.mp4
    • ffmpeg -f concat -i mylist.txt -c copy output.mp4
      • copy 表示直接复制原文件而不重新编码
  • 不同过滤器可以组合起来,用逗号分隔

调整音频

  • 使用音频过滤器:-af “”
  • 调整音量:ffmpeg -i test.mp4 -af "volume=1.5" output.mp4
  • 统一音量:"loudnorm=I=-5:LRA=1"
  • 高通、低通滤波器、均衡器:equalizer=f=1000:width_type=h:width=200:g=-10
  • 删除音轨:
    • ffmpeg = test.mp4 -an output.mp4
    • 类似的删除还有 -vn(视频),-sn(字幕),-dn(数据流)

特殊用法

  • 输出缩略图:ffmpeg - i test.mp4 -vf "fps=1/10, scale=-2:720" thumbnail-%03d.jpg
    • fps=1/10 代表每10秒输出一帧画面
    • scale=-2:720 表示输出缩略图的大小
    • thumbnail-代表最后输出的文件名格式
  • 添加水印:ffmpeg -i test.mp4 -i cat.jpg -filter_complex "overplay=100:100" output.mp4
    • 表示将cat.jpg作为水印
    • 100:100 表示在图像中的位置
  • 生成gif: ffmpeg -i test.avi -ss 0 -t 3 -filter_complex [0:v]fps=15, scale=-1:256,split[a][b];[a]palette gen[p];[b][p]paletteuse output.gif
    • 先裁剪
    • 缩放视频并降低帧率
    • 由于gif256色限制,需要创建调色板
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值