type
Post
status
Published
date
Jul 13, 2022
slug
article-4
summary
一个视频音频压缩转码处理支持脚本的工具
tags
tools
视频音频
category
工具使用
icon
password
Property
Jul 13, 2022 02:43 PM
官网地址:
下载安装
LINUX : 可使用包管理工具进行下载
sudo apt install ffmpeg进入官网选择对应系统(以WINDOWS为例),

选择
ffmpeg-master-latest-win64-gpl-shared.zip 动态链接版本基础使用
注意: 所有的参数都应在
输出文件名 之前, 因为程序是按照命令依次执行, 当程序完成输出命令后将停止, 也就不会识别在其之后的参数转码
ffmpeg -i input.avi -c:v libx264 output.mp4 # -i 选择转换的文件和输出文件, 会自动根据后缀生成对应的格式, 支持音频图片格式 # -c:v 自定义选择编码, 常用: libx264, h264_nvenc(推荐)
压缩
ffmpeg -i input.avi -c:v libx264 -preset xxx -crf 22 output.mp4 # -preset: 预设设置, xxx为选择的预设, 可选项如下表 # -crf: 图像质量, 数值范围 0(无损) ~ 51(最差), 推荐: 19~28 # 预设和图像质量选择其一即可
-preset 预设:
ultrafast -- 速度最快, 文件较大 superfast veryfast faster fast medium(默认) slow slower veryslow -- 速度最慢, 文件较小
剪切
ffmpeg -i input.avi -c:v libx264 -ss 00:00:03 -t 00:00:05 output.mp4 # -ss 起点位置 # -t 视频时长, 格式: hh:mm:ss 或 秒数 # -to 终止位置 # 注意: -ss 在 -i 后面
合并
需要先将待合成的视频按顺序放在文本文档中
创建文件: mylist.txt
file 'clip1.mp4' file 'clip2.mp4' file 'clip3.mp4'
ffmpeg -f concat -i mylist.txt -c copy # -f concat 表示指定文件是视频列表 # -i 传入文件 # -c copy 表示拷贝原始数据, 不重新编码
删轨
ffmpeg -i input.avi -an output.mp4 # -an : 删除音频轨 # -vn : 删除视频轨 # -sn : 删除字幕轨 # -dn : 删除数据流
中级使用
视频过滤器
可同时添加多个过滤器
ffmpeg -i input.avi -c:v libx264 -vf "scale=1920:1080" output.mp4 # -vf: 指定一个过滤器, 值为"字符串"
修改尺寸(scale)
ffmpeg -i input.avi -c:v libx264 -vf "scale=1920:1080" output.mp4 # scale: 修改尺寸, 格式: (长度:宽度) 如果其中一个参数为-1, 则为相对比例缩放
旋转(transpose)
ffmpeg -i input.avi -c:v libx264 -vf "transpose=1" output.mp4 # scale: 修改尺寸, 格式: (长度:宽度) 如果其中一个参数为-1, 则为相对比例缩放 # 0: 逆时针旋转90度并垂直翻转(左斜镜像) # 1: 顺时针旋转90度 # 2: 逆时针旋转90度 # 3: 顺时针旋转90度并垂直翻转(右斜镜像)
裁剪(crop)
ffmpeg -i input.avi -c:v libx264 -vf "crop=1920:1080:0:0" output.mp4 # crop: 裁剪, 格式: wide:high:x:y # x, y : 为裁剪区域左上角横纵坐标 ffmpeg -i input.avi -c:v libx264 -vf "crop=iw/2:ih/2" output.mp4 # 裁剪原视频1/2宽高 # crop的值可以是表达式 # iw: (input wide), ih: (input high)
音频过滤器:
ffmpeg -i input.avi -af "volume=1.5" output.mp4 # -af : 修改音量大小 ffmpeg -i input.avi -af "loudnorm=I=-5:LRA=1" output.mp4 # loudnorm : 统一视频音量
小技巧
创建视频缩略图
ffmpeg -i input.avi -vf "fps=1/10,scale=-2:720" thumbnail-%03d.jpg output.mp4 # fps指定输出文件的频率,样例表示没10输出一次画面 # scale表示输出图像大小
视频添加水印
ffmpeg -i test.mp4 -i watermark.png -filter_complex "overlay=100:100" # overlay, 叠加到坐标xxx
生成gif
ffmpeg -i test.avi ss 0 -t 3 -filter_complex [0:v]fps=15,scale=-1:256,split[a][b];[a]palettegen[p];[b][p]paletteuse output.gif
- Author:mushan
- URL:https://blog.mushan.xyz/article/article-4
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!
Relate Posts