例如
ffmpege -ss 20 -to 80 -i inputVideo.mp4ffmpege -ss 01:02:03 -to 02:02:03 -i inputVideo.mp4
-t参数
设置持续韶光,单位为s
例如

ffmpege -ss 01:02:03 -t 80 -i inputVideo.mp4
若 -to 和 -t 同时设置,以-t为准
C++音视频开拓学习资料:点击领取→音视频开拓(资料文档+视频教程+口试题)(FFmpeg+WebRTC+RTMP+RTSP+HLS+RTP)
方法一:re-encoding形式裁剪视频【处理速率慢】
ffmpeg -ss 00:03 -to 00:08 -i inputVideo.mp4 -threads 2 -c:v libx264 -crf 30 trim_opseek_encode.mp4
参数解释
-c:v指定视频的编码格式,若不指定也会以Re-Encoding形式裁剪视频
-crf CRF质量变动分辨率
-ss 指定开始韶光
-to 指定结束韶光,不指定时默认为视频结束韶光
-therads指定调用的cpu核数,避免ffmpeg将cpu占满,可根据机器实际情形配置
备注
-ss 和 -to 的位置不同代表的意义也不一样
放在-i前代表对输入视频的参数指定
放在-i后代表对输出视频的参数指定
如果我们须要一个更精确的韶光,我们可以手动添加关键帧开始和结束的韶光
ffmpeg -i my_video.mp4 -force_key_frames 00:00:15,00:00:25 clip.mp4
方法二:以流复制办法裁剪视频【处理速率快】
./ffmpeg -ss 00:17:24 -to 02:19:31 -i inputVideo.mp4 -threads 2 -c:v copy -c:a copy outputVideo.mp4
参数解释
-c:v copy 指定以copy办法处理视频流
-c:a copy 指定以copy办法处理音频流
-ss 指定开始韶光
-to 指定结束韶光,不指定时默认为视频结束韶光
-therads指定调用的cpu核数,避免ffmpeg将cpu占满,可根据机器实际情形配置
处理结果
frame=222065 fps=14206 q=-1.0 Lsize= 1332873kB time=02:02:07.61 bitrate=1490.1kbits/s speed= 469xvideo:1239527kB audio:83530kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.741900%
可以看到处理速率speed为469x,还是非常快的
方法三:利用trim过滤命令处理【适用于小视频,1min以内】
ffmpeg -i my_video -vf trim=10:25,setpts=PTS-STARTPTS clip.mp4
参数解释
-vf 指定视频过滤
trim 10:25代表 裁切00:00:10~00:00:25这个范围
setpts 为剪辑中的每一帧设置,表示韶光戳,PTS-STARTPTS确保剪辑不会延迟或停滞,并且帧是相对付setpts值(即0)进行同步的