FFmpeg 简介
在平常生活工作中,或多或少会有剪辑视频的需求,如将某个片段从视频中裁剪出来。我们一般能够想到的工具是 Pr、xxx剪辑之类的软件,不过这类软件有个缺点,就是剪辑的速度太慢了。
今天将会介绍一款软件,不过这款软件虽算没有精美的页面,但是他的剪辑功能还是很强大的。这款软件叫做 FFmpeg
维基百科对他的说明是
FFmpeg 是一个开放源代码的自由软件,可以运行音频和视讯多种格式的录影、转换、流功能[1],包含了libavcodec——这是一个用于多个项目中音频和视讯的解码器库,以及libavformat——一个音频与视讯格式转换库。 “FFmpeg”这个单词中的“FF”指的是“Fast Forward(快速前进)”。
顾名思义,这款软件最大的优点就是处理速度快,虽然笔者没有详细的数据统计,但是在使用过程中也确实感受到这一点。笔者也正是由于其他剪辑软件处理起来太慢,才挖掘到这款软件的。
FFmpeg 配置
使用 FFmpeg 软件并不需要进行安装,FFmpeg 下载下来也不是常见的 exe 文件(Windows 系统),而是源代码,得到源代码就需要进行编译,但是对于一个使用者来说,我们可以不关心这个,我们只需下载编译好的代码文件即可。接下来就需要对文件进行简单的配置。
- 解压
首先解压下载下来的文件
- 移动文件
将解压后的文件中的 bin
和 doc
文件夹移动至 C 盘的 ffmpeg 文件夹中
- 配置
FFmpeg 使用
下面使用 FFmpeg 对视频进行裁切,使用的代码是:
ffmpeg -ss 00:13:36 -t 00:09:23 -i "输入视频路径" -vcodec copy -acodec copy "输出视频路径"
这句代码的意思是 将 输入视频 从 00:13:36
开始裁剪,裁剪时长是 00:09:23
,所以这个代码是不知道我们裁剪的视频有几分钟。(PS:代码中的路径不要忘记要加双引号)
上面的这份代码用着的确不太习惯,所以我就结合 Python,定义出视频裁剪的开始和结束的时间点,方便我们剪辑视频,代码如下:
from datetime import datetime
import os
def cut_video(start, end, src_path, dst_path):
FMT = '%H:%M:%S'
tdelta = datetime.strptime(end, FMT) - datetime.strptime(start, FMT)
seconds = tdelta.total_seconds()
m, s = divmod(seconds, 60)
h, m = divmod(m, 60)
time_deltal = ":".join([str(int(h)).zfill(2), str(int(m)).zfill(2), str(int(s)).zfill(2)])
print("时长:", time_deltal)
#print(os.path.exists(src_path))
cmd = 'ffmpeg -ss {} -t {} -i "{}" -vcodec copy -acodec copy "{}"'.format(start, time_deltal, src_path, dst_path)
#print(cmd)
os.system(cmd)
start = '00:00:04' # 开始时间
end = '00:01:24' # 结束时间
src_path = r"C:\Users\asus pc\20201125_155213.mp4" # 输入视频路径
dst_path = r"C:\Users\asus pc\20201125_1552132.mp4" # 输出视频路径
cut_video(start, end, src_path, dst_path)
大家可以尝试一下,下方的链接可以获得本文介绍的软件