查看视频信息
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进行视频处理的方法,包括视频信息查看、片段截取、视频合并、分辨率缩放、视频裁剪及格式转换等操作。还提供了常用的命令选项说明。
1607

被折叠的 条评论
为什么被折叠?



