用 ffmpeg 实现批量剪切视频
The on what we do in the .
一直对编辑视频很有兴趣,上大学的时候学了一些视频剪辑的软件,已经好久没用了,现在也都忘的差不多了。前段时间弄了个头条号,想发一些视频,就又想做视频这回事了,要不还真快忘记自己曾经做过一些小视频了(捂脸)。其实现在想要做的视频,不需要做很多特效,也不需要做配字幕等这些内容,所以不是很难,但是要做的量比较多,算起来要花费的时间也不算少,但是又不想在这件事上浪费太多的时间,嗯,这个时候懒的特质就该展示它的作用了。既然自己不想做,那就只好想办法让机器做了,于是就发现还真不是我一个人这么懒(哈哈)。我用的是 mac,就以这个系统为例记录一下这个过程,至于 怎么办,自己试吧,因为我懒得试那个了。
既然是用 ,当然第一步就是要下载 。使用 下载。
brew
下载好之后就可以开始了
-i ".mp4" -ss 2 -to 3 - copy - copy ".mp4"
-i ,-ss,-to 等等都是 的命令。这样一条命令只能操作一次,如果想要剪辑多条,这样的命令就要重复多次,显然不能用剪一次换个参数再输入一次这条命令,这样效率太差了不是我们想要的,那么该用什么方法呢?多次执行一个操作,我们第一个想到的就是循环, 但如何在终端里循环呢,这又是个问题。首先想到既然要写循环,那么就需要使用一种语言来写,面这种语言在运行时可以控制 执行循环里的命令。这时就想到用 来写, 的教程可以参考菜鸟教程。
startTime=0
endTime=0
length=3697
i=0
while [ $endTime -le $length ]; do
#statements
i=$[$i+1]
endTime=$[$startTime+280]
ffmpeg -i /Users/dddd/Downloads/S01.E01.mp4 -ss $startTime -to $endTime -acodec copy -vcodec copy $i.mp4
startTime=$[endTime]
done
这是我写一个每隔 280s 切割一个视频的脚本,一个多小时的视频切成 14 个视频也就只用了不到 5 分钟,速度还是可以的,时间也很精确。对于视频时间的问题,这几天一直在遇到,在项目中也遇到了处理视频的功能,有几个功能需要根据一定的条件定位到相应的时间点去播放,但是由于视频关键帧的问题,定位的时候,它总是会寻找与当前位置最近的关键帧,然后跳到关键帧的位置,这就会出现定位不准的问题,如果用过格式工厂的朋友肯定也遇到过这样的问题,目前对于截视频找到了这种方法,但是对于在项目中定位不准的问题还是没能好的解决方法。在网上也找过一些资料,大多都是通过添加视频关键帧的方法解决的,但这不是我想要的方法,还在寻找当中。。。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。