剪切

1
ffmpeg -i 原文件 -ss 开始时间 -to 结束时间 -c copy 输出名称

提取音频

1
ffmpeg -i mp4文件 -q:a 0 -map a 输出mp3文件

剪切多个片段合并

1
2
3
4
5
6
7
8
9
10
ffmpeg -i 视频原文件 \
-filter_complex \
"[0:v]trim=start=片段1开始秒数:end=片段1结束秒数,setpts=PTS-STARTPTS[v1]; \
[0:a]atrim=start=片段1开始秒数:end=片段1结束秒数,asetpts=PTS-STARTPTS[a1]; \
[0:v]trim=start=片段2开始秒数:end=片段2结束秒数,setpts=PTS-STARTPTS[v2]; \
[0:a]atrim=start=片段2开始秒数:end=片段2结束秒数,asetpts=PTS-STARTPTS[a2]; \
[0:v]trim=start=片段3开始秒数:end=片段3结束秒数,setpts=PTS-STARTPTS[v3]; \
[0:a]atrim=start=片段3开始秒数:end=片段3结束秒数,asetpts=PTS-STARTPTS[a3]; \
[v1][a1][v2][a2][v3][a3]concat=n=3:v=1:a=1[outv][outa]" \
-map "[outv]" -map "[outa]" -c:v libx264 -crf 23 -c:a aac 输出视频文件

剪切多个片段合并转换成音频

1
2
3
4
5
6
7
8
ffmpeg -i '输入源文件' \
-filter_complex \
"[0:a]atrim=start=片段1开始秒数:end=片段1结束秒数,asetpts=PTS-STARTPTS[a1]; \
[0:a]atrim=start=片段2开始秒数:end=片段2结束秒数,asetpts=PTS-STARTPTS[a2]; \
[0:a]atrim=start=片段3开始秒数:end=片段3结束秒数,asetpts=PTS-STARTPTS[a3]; \
[a1][a2][a3]concat=n=3:v=0:a=1[outa]" \
-map "[outa]" -c:a libmp3lame -q:a 0 \
'输出mp3名'