摘要
针对 ffmpeg 记录一系列常规用法。
正文
针对 ffmpeg 记录一系列常规用法。官网指路
一、视频截取(剪辑)
1.1 从第 60 秒开始,截取 30 秒
bash
| |
参数说明
-ss 60:从第 60 秒开始-t 30:截取时长为 30 秒-i input.mp4:输入文件-c copy:复制原始编码(不重新编码,处理更快)
1.2 从指定时间段截取(起止时间点)
bash
| |
参数说明
-ss:起始时间-to:结束时间-c copy:无需转码,快速导出
二、视频合并
2.1 同格式无转码合并
先准备一个 filelist.txt 文件,内容如下:
text
| |
然后执行合并命令:
bash
| |
参数说明
-f concat:启用合并模式-safe 0:允许使用绝对路径-c copy:无转码直接合并
2.2 异格式重新编码合并
bash
| |
参数说明
concat=n=3:合并 3 个视频v=1 a=1:合并一轨视频和音频-map:指定输出轨道
三、格式转换
3.1 MP4 转 AVI
bash
| |
- 自动转码为 AVI 支持的编码格式
3.2 MKV 转 MP4(不转码)
bash
| |
参数说明
-c copy:直接封装为 MP4 格式,不进行转码
四、提取音频 / 视频
4.1 仅提取音频
bash
| |
参数说明
-vn:禁用视频轨道-acodec copy:保留音频原始编码
4.2 仅提取视频
bash
| |
参数说明
-an:禁用音频轨道-vcodec copy:保留视频原始编码
五、压缩视频大小
bash
| |
参数说明
libx264:使用 H.264 编码压缩-crf:视频质量参数(范围 0–51,默认 23,越大压缩越狠)
六、静音视频(去除音轨)
bash
| |
参数说明
-an:移除音频轨道
七、添加背景音乐
bash
| |
参数说明
-shortest:以较短的输入为输出时长(避免音乐过长)
八、视频转图片序列
bash
| |
参数说明
-r 1:每秒输出一帧图片%03d:命名格式,如img_001.jpg、img_002.jpg等
九、图片序列合成视频
bash
| |
参数说明
-framerate:每秒帧数(此处为 25 帧)libx264:使用 H.264 编码输出视频
十、添加水印图片
bash
| |
参数说明
overlay=10:10:水印位置为左上角偏移(10,10)
十一、查看视频信息
bash
| |
参数说明
- 显示编码信息、时长、轨道数、分辨率等详细参数
