有这两大神器后,剪视频和音频像玩似的……

最近尝试剪电影片段,做像MV的短视频,最终呈现的效果还比较满意,符合之前的预期。这是第一次做视频,想分享一下在这个过程中get到的视频和音频剪辑的两大神器,毫不夸张,有这两个神器在手,视频和音频想怎么剪就怎么剪,关键是,速度还超级快

  • 电脑和软件:MacBook Pro、Final Cut Pro;
  • 两个神器:ffmpeg、spleeter

废话不多说,直接上干货

一、视频剪辑神器——ffmpeg

ffmpeg是一个开源程序,在mac电脑终端搭配命令行使用,可以下载视频、转换视频格式、剪切视频片段、分离视频和音频、加水印、截图等,速度之快,画质之优,感天动地

作为看不懂火星文的程序小白,下载ffmpeg的过程中踩过不少坑,过滤掉这些山路十八弯的坑,分享一下简单直接的下载过程:

1、下载Homebrew

Homebrew是Mac OS平台下软件包管理工具,有安装、卸载、更新、查看、搜索软件包的功能,后续下载ffmpeg需要用到该工具

打开Mac电脑终端,复制以下代码,再按回车键

1
/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"

当最后显示“安装完成”的提示时,说明安装成功;

但接下来输入下载ffmpeg的代码

1
brew install ffmpeg

会提示以下代码

1
brew : command not found

并且前面有一句提醒

1
Warning: /usr/local/bin isnotin your PATH.

出现这个问题的原因是没有配置好环境变量

我的解决办法是,终端打开.bash_profile文件,在文件里面直接添加该路径;要提前说明一下,我已经不记得从哪篇文章看到的这个方法,现在回溯历史记录好久也没找到,但看其他的文章,几乎都是在命令行里添加的路径,感觉这个方法会更靠谱一些;两种方法都介绍一下

1)先说说我解决的方法

终端输入打开.bash_profile文件的代码

1
open ~/.bash_profile -e

然后在打开的文件中添加路径,保存之后,再关闭文件;现在我的文件里的内容是这样的

img

2)网上普遍的方法是在终端添加路径

终端输入以下代码,每输入一行都要按一次回车键

1
2
3
sudo vim .bash_profile
export PATH=/usr/local/bin:$PATH
source .bash_profile

关于配置环境变量的问题,可以参考这位大神分享的文章

Mac Brew 安装及配置,解决多种错误问题的方法www.cnblogs.com/zdz8207/p/mac-brew-install.html

环境变量配置成功后,更新一下Homebrew的版本,代码如下

1
brew update

关于Homebrew的安装,我参考的是这篇文章,在此感谢大神的分享

金牛肖马:Homebrew国内如何自动安装(国内地址)3392 赞同 · 906 评论文章img

2、安装ffmpeg

在Mac终端复制以下代码,按回车键

1
brew install ffmpeg --HEAD

--HEAD指下载最新版本的ffmpeg

理论上可以不加--HEAD,但我没加的时候,ffmpeg没有下载成功,不知什么原因

3、ffmpeg的使用

ffmpeg的功能实在太强大了!!!不得不再感叹一次

这里就说说我用到的几个功能

1)剪切视频片段

用ffmpeg剪视频简直像玩似的,想怎么剪就怎么剪

代码是

1
ffmpeg -i 输入视频地址/123.mp4 -ss 00:43:20.0 -c copy -t 00:00:30.0 输出视频地址/1.mp4

解释一下各命令

  • - i 设定输入流;
  • -ss 开始时间
  • -c copy 直接复制,不经过重新编码
  • -t 切多少时间

需要注意的是

  • 该代码中视频的名字不能是中文
  • 时间戳00:43:20.0表示43分20秒,若时间是1小时20分5秒,则时间戳为01:20:05.0;后面的“.0”也可省去
  • -t 后面是剪切多长的时间,比如上面的代码中,意思是从该视频的43分20秒开始剪30秒的视频
  • 视频地址是该视频在电脑的详细路径,可通过右击视频,打开“显示简介”,“位置”的内容即为该视频的地址

2)分离音频

如果不需要获取音频文件,直接用FCP中的分离音频功能即可;

但如果想要获取音频文件,进一步分离人声和环境音,可以用ffmpeg

代码是

1
ffmpeg -i 输入视频地址/1.mp4 -vn 输出音频地址/1.mp3

-vn 不处理视频;

3)分离视频

还没用过这个功能,但和分离音频类似,所以就一起说下吧

代码是

1
ffmpeg -i 输入视频地址/1.mp4 -an 输出视频地址/2.mp4

-an 不处理音频

4)转换视频格式

从网上下载的视频常常会因为格式不对无法导入FCP,因此需要转换格式,用ffmpeg的显著优势当然还是——速度快!

代码是

1
ffmpeg -i 输入视频地址/1.flv -vcodec h264 输出视频地址/1.mp4
  • - vcodec 设定视频编码器,未设定则使用与输入视频相同的编解码器
  • h264是一种常见的视频编码格式,视频和音频都需要经过编码,才能保存为文件,不同的编码格式和压缩率,会导致文件大小和清晰度的差异

FCP通常导入的视频格式为h264的mov或mp4格式,我是转成mp4格式导入

5)下载视频

其实最初入手ffmpeg,就是因为看了一位大神分享下载视频的方法,对比了一下,觉得ffmpeg最牛掰,如果有这个工具,那网上视频不是任我下载,我干嘛还要充值VIP,不过后来才知道,是我太天真

大神文章地址如下,如何用ffmpeg下载网页视频,里面介绍的很清楚,亲测有效,这里就不再赘述

黑暗中的已知点:下载网页视频的4种方法 (附教程) ,你值得收藏2600 赞同 · 308 评论文章img

说明一下,从网页元素获取视频下载地址,如果下载地址前缀不是blob:https://,那么几乎都可以下载

但是优爱腾等视频网站的视频,无论网络版还是移动版,下载地址都有这样的前缀,无法用ffmpeg下载,期待大神们新的破解文

二、音频分离工具——spleeter

终于要说说spleeter了,我的心头好

在做视频的时候,有时想要分离音频的环境音和人声,让人声可以更清楚一些,这里就可以用spleeter实现

当然,这样分离人声和环境音,也可以轻轻松松得到一首音乐的伴奏呢,速度之快只会让你惊喜惊讶惊叹,是不是很爽歪歪

下载spleeter,需要三个东东,python、tensorflow和conda,Mac电脑自带python2.7,因此我只需要先安装tensorflow和conda

1、安装conda

conda有anaconda和miniconda之分,后者功能会更精简一些,但完全足够支撑下载spleeter,我安装的就是miniconda;

下载地址如下:

Miniconda - Conda documentationdocs.conda.io/en/latest/miniconda.html

我下载的是适合Mac的最新版本

img

可以直接输入代码看conda是否安装成功

1
conda

如果最后显示一下信息,则说明安装成功

1
conda commands available from other packages:

用conda安装spleeter时,默认站点是要翻墙的,我下载时打开了翻墙软件;若不能翻墙,可能会无法下载,需要更改下载源,可参考以下文章

秘密小兔:伴奏提取神器spleeter探索记47 赞同 · 34 评论文章img

2、安装tensorflow

很多分享如何下载spleeter的文章里都没有提到这一步,但是直接用conda下载spleeter,会提示缺乏tensorflow,所以还是得安装

而tensorflow的下载是需要python的。

Mac电脑自带2.7版本的python,但tensorflow目前支持python3.5~3.8,因此我需要下载更高版本,这里我用conda下载python3.6,代码如下

1
conda install python=3.6

下载完后,需要确认一下python版本,以及有无pip;理论上该版本python自带pip;每输入一行都要按一次回车键

1
2
python --version
pip --version

这样以后,再下载tensorflow,代码如下

1
pip install tensorflow

3、下载spleeter

前面提到过,我在下载时,打开了翻墙软件,因此没有修改conda的下载源;代码如下

1
conda install -c conda-forge spleeter

激活使用的环境

1
conda activate spleeter-cpu

这样以后,spleeter下载成功,但是否真的成功,还得看能不能分离音频

4、spleeter的使用

不废话,直接上代码

1
spleeter separate -i 输入音频地址/1.mp3 -p spleeter:2stems -o 输出文件夹地址/1

解释一下

  • 理论上支持所有格式的音频文件,但输出的是wav格式的音频文件
  • -i 输入的音频
  • -p spleeter:2stems 将该音频分成2轨,即人声和环境音;spleeter最多可以分离5条音轨
  • -o 输出的文件夹,里面包含人声和环境音两个音频文件

比如我用spleeter分离的1.mp3,生成文件夹1,里面包含2个wav格式的音频文件

img

至此,这两大神器终于到手啦,爽歪歪~

在下载这两个神器的过程中,曾遇到过N多下载不了的问题,可谓是山路十八弯,但本文几乎全部省略了,给出了一个比较快速顺利的下载路径;虽然无法保证绝对不会有问题,但至少可以省掉很多很多很多不必要的坑;如果还是有问题的话,可以百度网上各位大神的文章,相信最终都可以解决

以上

PS:后续会分享剪的第一个电影短视频,还有积累的一些素材下载源,以及使用FCP剪视频的小技巧,会有人想看吗,想看的可以点赞和评论哦;关于上面分享的内容还有什么问题的话,也可以点赞和评论,我看到都会回复的~

参考文献

有这两大神器后,剪视频和音频像玩似的…… - 知乎 (zhihu.com)