找回密码
 免费注册

[FFMPEG] ffmpeg根据开始时间结束时间切割视频

[复制链接]
admin 发表于 2020-5-31 21:27:59 | 显示全部楼层 |阅读模式
根据开始时间结束时间,to+结束时间
  1. ffmpeg -ss 00:01:00 -i input.mp4 -to 00:02:00 -c copy output.mp4
复制代码

根据时长切割视频

  1. ffmpeg -ss 00:01:00 -i input.mp4 -t 00:02:00 -c copy output.mp4
复制代码

如果视频文件太大,因为项目原因需要拆分成多个文件,如下,就可以拆分视频
ffmpeg -ss [start] -t [duration] -accurate_seek -i [in].mp4 -codec copy [out].mp4

[start]:为需要截取内容的开始时间
[duration]:为需要截取的时长
[in]:为输入视频文件名
[out]:为输出视频文件名

这种截取的好处是特别快,因为不会对视频重新编码,但是这种方式会导致:如果视频结尾不是关键帧,那么视频最后就会出现一段空白。

这个时候,你可以加入-avoid_negative_ts 1变成这样:

ffmpeg -ss [start] -t [duration] -accurate_seek -i [in].mp4 -codec copy -avoid_negative_ts 1 [out].mp4

这样截取视频之后,时间不会精确截取,他会找到附近对关键帧,补全这个视频,但是这样也会有问题,连续分割的视频之间存在细微的交集。

最后详细看了下FFmpeg的文档,如果你需要精确截取视频,避免关键帧的丢失并精确截取时间,这个时候最好是重新编码视频。就变成这样了:

ffmpeg -ss [start] -t [duration] -i [in].mp4 -c:v libx264 -c:a aac -strict experimental -b:a 98k [out].mp4

最后,你可以写一段脚本,把整个视频拆分:
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

QQ|Archiver|手机版|小黑屋|信息共享网

GMT+8, 2024-5-14 12:10 , Processed in 0.083041 second(s), 22 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表