FFmpeg视频处理常用方法

查看视频信息

ffmpeg -i ./video.mp4 -hide_banner

截取视频片段

1、指定起始时间,默认截取到视频结尾

ffmpeg -ss 00:01:00 -i source.mp4 -c copy -hide_banner result.mp4

2、指定起始时间、终止时间

ffmpeg -ss 00:01:00 -to 00:02:00 -i source.mp4 -c copy -hide_banner result.mp4

3、指定起始时间、持续时间

ffmpeg -ss 00:01:00 -t 00:01:00 -i source.mp4 -c copy -hide_banner result.mp4

合并视频

先创建一个文本文件filelist.txt,内容是要合并的视频文件路径,如下:

file '1.mp4'
file '2.mp4'
file '3.mp4'

然后执行:

ffmpeg -f concat -i filelist.txt -c copy result.mp4

其他方法参见这里。

视频分辨率缩放

# scale=width:height, -1表示自动计算相应维度大小
ffmpeg -i source.mp4 -vf scale=480:-1 result.mp4

视频裁剪

# crop后面的参数为w:h:x:y
# w、h为输出视频的宽和高
# x、y标记输入视频中的某点,将该点作为基准点,向右下进行裁剪得到输出视频。若x、y省略的话,默认居中剪切
ffmpeg -i source.mp4 -vf crop=400:400 result.mp4

视频格式转换

1、avi → mp4

# 单独指定音频编码器(-acodec)和视频编码器(-vcodec)
ffmpeg -i source.avi -acodec copy -vcodec copy result.mp4
# 合并指定音频编码器和视频编码器:-c copy
ffmpeg -i source.avi -c copy result.mp4

Options

命令格式 作用域 说明
-f fmt input / output 强制指定input或output的格式
-i url input 输入文件地址
-y global 不经询问直接覆盖输出文件
-n global 不覆盖输出文件。若输出文件已存在,则直接退出
-c[:stream_specifier] codec
-codec[:stream_specifier] codec
input / output, per-stream 在输入文件之前时,指定decoder;在输出文件之前时,指定encoder。
codec为encoder/decoder的名称,或为copy
-vcodec codec output 指定output的视频编码器,与-codec:v(或-c:v)相同
-t duration input / output 当作用于输入文件(-i之前)时,指定读取输入文件的长度
当作用于输出文件(输出文件之前)时,指定输出文件的长度
-to position input / output 指定停止读取输入文件的位置。与-t互斥,-t优先级更高
-ss position input / output 当作用于输入文件(-i之前)时,指定读取输入文件的起始位置
当作用于输出文件(输出文件之前)时,指定开始保存输入文件的起始位置
-vf filtergraph output 调用一个滤波器对视频进行处理

你可能感兴趣的:(FFmpeg,ffmpeg,音视频)