ffmpeg剪辑,压制保姆级入门

星間飛行 发布于

ffmpeg剪辑,编码,压制保姆级入门

这是个强大的工具,请用好它

本文仍在施工中,敬请期待完成品

入门

ffmpeg

简介

超轻量,跨平台,命令行式操作,能够进行任何视频操作的魔法般的软件
借用官网的原画
Converting video and audio has never been so easy.

下载

下载地址

ffmpeg_build_github

进去之后找这个东西,找那个叫ffmpeg-nx.x.xxx-blablabla-win64-gpl-x.x.zip的,这就是最新的64位系统稳定版
什么你是32位系统?没救了快去升级吧,1202年了还32位是要死啊

安装

下载之后放到一个你喜欢的地方,这里演示方便就直接扔到C盘了,解压出来,文件夹改个名叫ffmpeg(不改也行
现在文件夹长这样
ffmpeg_dir

里面有个bin文件夹里面塞了3个东西,其中一个就是本体
ffmpeg_bin

现在把这个文件夹添加到系统路径
任务栏中找到放大镜(搜索)按钮后在搜索框中输入path,选到这个编辑系统环境变量
search_path

右下角有个环境变量,点进去,可以看到这样的界面
enviroment

在上面一栏里面找到其中的变量名为Path的一行,双击打开,看到这样的东西
Path

新建一行,因为刚才把ffmpeg文件夹扔到了C盘下边所以在里面输C:\ffmpeg\bin,直接从文件夹那边复制也行
ffmpeg_path

然后一路确定,下面那一栏也一样操作(这样登陆别的账号也能用,嫌麻烦也可以不用),这样就完成了ffmpeg的安装

===

命令行

简介

那么既然是命令行式操作,先入门一下命令行,已经懂的可以直接跳过这段:
命令行是用一段一段的命令对计算机进行操作的工具,在Win是cmd,或者powershell;在Mac下是Terminal;在Linux下是shell或者bash。
虽然种类很多但是都有一个共同点那就是:一坨黑的窗口上面一个光标一闪一闪的,可以打字
powershell

图为在Windows Terminal下打开的powershell

入门

那么下一步就是如何打开一个命令行了
和刚才一样,在搜索中查找cmd,点击后在搜索框输入cmd或者powershell,就会自己跑出来了,这俩的基础命令基本一致随便都行
win_search

打开后可以看到
cmd

果然还是有点丑,我还是换到Windows terminal吧,如果你嫌弃原版的丑框框可以试试这个好东西,里面的东西是一样的只是外观有点不同
cmd_wt

现在输入ffmpeg,如果在上一步中没有错误的话,你现在可以看到弹出一坨英语,但如果他说“ffmpeg不是内部或外部命令,也不是可运行程序或批处理文件”,那就是上一步安装没有完成,重做
ffmpeg_start

打开之后输入 cd C:\Program Files(复制也可以,如果ctrl-v不管用,试试ctrl-shift-v),可以看到光标前面的字变成C:\Program Files了,这是因为cd命令意思为change directory即改变路径,移动到另一个地方
在输入到一半时,比如刚打完cd C:\Progr,就可以按一下Tab键,这时候可以自动补全为cd C:\Program Files
要进入下级菜单的话直接cd 你要进的文件夹,返回上级菜单用cd ..
如果要换个盘,比如要切换到D盘的test文件夹,就用d:然后再cd test(cmd是这样,powershell可以用cd d:\test
\/没什么区别,随便用
也可以在打开的文件夹中按住shift点右键,会出来一个在此处打开Powershell窗口,这样也行

===

剪辑

这个部分会讲解如何使用ffmpeg快速进行简单的剪辑工作,如果你是二刀流选手那么这会是最快的方法
需要更复杂的剪辑请用更正常的方式进行
正常的免费剪辑软件:

实行

现在我下载了一个接近6小时,大小为4.73GB的视频https://www.youtube.com/watch?v=F98wwxCCwY4D:\example,文件名为【スーパーマリオブラザーズ2_SUPER MARIO BROS. 2】のこのここ…!【鈴原るる_にじさんじ】-F98wwxCCwY4.mkv
那么现在应该先打开cmd然后输入d:然后cd example,看到光标前已经变成了D:\example
这时候如果我只想要2:56:03到2:57:50可以用以下代码

1
ffmpeg -ss 2:56:03 -to 2:57:50 -i "【スーパーマリオブラザーズ2_SUPER MARIO BROS. 2】のこのここ…!【鈴原るる_にじさんじ】-F98wwxCCwY4.mkv" -c copy out.mkv

和之前说过的一样,这么长的名字并不需要手动输入,打前几个字就用tab自动补全,或者直接tab然后找到需要的那个,亦或者复制名字(需要包含扩展名,如果文件名带空格需要用引号括起来)
结束后在这个文件夹出现了一个叫out.mkv视频,这就是想要的那一段
处理这么大又长的视频需要多少时间呢,答案是1秒,甚至1秒不到。CPU为7700K,不过10代i3水平。

解析

开头ffmpeg表明启动这个程序;
-i为输入内容,这里选择了原视频;
-ss为寻找起始时间点,值为2:56:03
-to为寻找结束时间点,值为2:57:50
-c,也就是codec,选择编解码器,值为copy选择保留原始流不进行任何编解码。使用copy时速度非常快并且没有任何质量损失,这在剪辑或更改文件格式时非常有用
-c也可以分解为-c:a-c:v分别表示音频和视频,因此-c copy也可以写为-c:a copy -c:v copy,有时需要对视频进行重编码但是音频不需要,可以拆开写

但是代价是什么呢?这条指令只会寻找视频中的关键帧,观察这个产出的视频会发现头部多出来1秒多的本来不需要的片段,这是因为在2:56:03这个时间点并没有关键帧,因此ffmpeg决定加长到上一个关键帧位置进行截取
虽然有点小问题但问题不大,对于粗糙的二刀流剪辑师足够了

===

压制

字幕压制

现在我有一个源,还有一个ass字幕文件,怎么把这两个东西合到一起

1
ffmpeg -i "源.mp3" -vf "ass=字幕.ass" readyToGo.mp4

未完待续…