Mac
首先,你需要一个神器,它叫 ffmpeg,为了便于记忆,读作“F F M peg”。它就是本教程中用来截取视频用的。它是一个命令行程序,没有图形界面。
要安装这个神器,主要有两种方法,一种是下载安装包,一种是使用 homebrew,或者简称 brew。如果你没有 brew,没关系,只需要打开命令行,输入:ruby -e '$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)'(注意写成一行,虽然这里排版可能是换行了。)然后回车,如果哪里卡着不动了,那你就继续按回车就好。大概会看到如下图的东西。
安装好了 brew,你继续在命令行输入:brew install ffmpeg于是就可以安装 ffmpeg 了。大致会看到如下图的东西。
然后,打开你想要截取的视频,记录下截取的开始时间和你要截取的时间长度。例如,从 00:00:08 开始截取 1分钟,那么就是 00:01:00。
你需要在命令行输入:ffmpeg -i 视频.avi -ss 00:00:08 -t 00:01:00 -acodec copy -vcodec copy 截取.avi就可以啦。聪明的你可能会想,那我岂不是还有计算两个时间点的时间差?好麻烦,人家数学又不好。没关系,下面还有进一步的突破!
首先去你的家目录,也就是以你的用户名命名的目录。在里面建立一个叫 bin 的目录。如图所示。
然后打开文本编辑,里面输入如下内容(横线以内的):-------------------------------------------------------#! /usr/local/bin/python3# by Uncle Mikeimport os, sysimport datetimefile, start, end, target = sys.argv[1:]h0, m0, s0 = [int(i) for i in start.split(':')]h1, m1, s1 = [int(i) for i in end.split(':')]t0 = datetime.datetime(2016, 1, 1, h0, m0, s0)t1 = datetime.datetime(2016, 1, 1, h1, m1, s1)delta = str(t1 - t0)c = 'ffmpeg -i {} -ss {} -t {} -acodec copy -vcodec copy {}'os.system(c.format(file, start, delta, target))--------------------------------------------------------然后以 capture 为名保存到你创建的那个 bin 目录下。capture 的含义就是捕获,捕获视频的一部分的意思。也就是说,你的目录里放了这个东西:~/bin/capture
然后呢,你在命令行里输入:chmod 775 ~/bin/capture这个的目的是让刚刚放的那个东西变得像程序一样可以执行。
至此已经配置完成!辛苦了!赶快来测试一下,打开命令行,输入 capture,然后把你要截取的视频拖进去(如图)。输入开始时间和结束时间,然后再写上你截取出来的视频片段的名称。假如你的视频在家目录的下载里,那么就是:capture ~/Downloads/我的视频.avi 00:00:08 00:01:08 ~/Downloads/片段.avi然后回车,就会在下载里面生成你截取的8秒至1分8秒的视频。这下你就不用去计算两个时间点之间相差多少时间了。
后话还有什么不明白的地方,可以在评论里留言,我会尽快解答。非常感谢各位捧场!ffmpeg 能做的事情远不止截取视频这么简单。还有很多其他功能在后续的经验里会提到。我看到很多人遇到 no such file or directory这个错误。那么我整个第二步用命令表述,你们照做就好。首先,打开命令行。按下面的顺序,一个一个输入命令并回车:cd ~mkdir bincd bintouch capture.txtopen capture.txt在弹出的文本里粘贴我上面写的代码,注意不要粘贴横线进去,只要横线以内的。记得保存后退出,然后继续命令行:chmod 775 ~/bin/capture到这里就OK了。
在输入 00:00:00 这样的时间点的时候,请注意使用英文符号,不要用中文的冒号。
避免在视频或者视频的路径里面使用空格,实在要用空格,你需要在每个空格前面加上反斜杠:“\”。