FFmpeg 简介

在平常生活工作中,或多或少会有剪辑视频的需求,如将某个片段从视频中裁剪出来。我们一般能够想到的工具是 Pr、xxx剪辑之类的软件,不过这类软件有个缺点,就是剪辑的速度太慢了。

今天将会介绍一款软件,不过这款软件虽算没有精美的页面,但是他的剪辑功能还是很强大的。这款软件叫做 FFmpeg

维基百科对他的说明是

FFmpeg 是一个开放源代码自由软件,可以运行音频和视讯多种格式的录影、转换、流功能[1],包含了libavcodec——这是一个用于多个项目中音频和视讯的解码器库,以及libavformat——一个音频与视讯格式转换库。 “FFmpeg”这个单词中的“FF”指的是“Fast Forward(快速前进)”。

顾名思义,这款软件最大的优点就是处理速度快,虽然笔者没有详细的数据统计,但是在使用过程中也确实感受到这一点。笔者也正是由于其他剪辑软件处理起来太慢,才挖掘到这款软件的。

FFmpeg 配置

使用 FFmpeg 软件并不需要进行安装,FFmpeg 下载下来也不是常见的 exe 文件(Windows 系统),而是源代码,得到源代码就需要进行编译,但是对于一个使用者来说,我们可以不关心这个,我们只需下载编译好的代码文件即可。接下来就需要对文件进行简单的配置。

  • 解压

首先解压下载下来的文件
image.png

  • 移动文件

将解压后的文件中的 bindoc 文件夹移动至 C 盘的 ffmpeg 文件夹中
image.png

  • 配置

在搜索栏里,搜索 环境变量 并打开
image.png
image.png

FFmpeg 使用

下面使用 FFmpeg 对视频进行裁切,使用的代码是:

  1. ffmpeg -ss 00:13:36 -t 00:09:23 -i "输入视频路径" -vcodec copy -acodec copy "输出视频路径"

这句代码的意思是 将 输入视频 从 00:13:36 开始裁剪,裁剪时长是 00:09:23 ,所以这个代码是不知道我们裁剪的视频有几分钟。(PS:代码中的路径不要忘记要加双引号)

上面的这份代码用着的确不太习惯,所以我就结合 Python,定义出视频裁剪的开始和结束的时间点,方便我们剪辑视频,代码如下:

  1. from datetime import datetime
  2. import os
  3. def cut_video(start, end, src_path, dst_path):
  4. FMT = '%H:%M:%S'
  5. tdelta = datetime.strptime(end, FMT) - datetime.strptime(start, FMT)
  6. seconds = tdelta.total_seconds()
  7. m, s = divmod(seconds, 60)
  8. h, m = divmod(m, 60)
  9. time_deltal = ":".join([str(int(h)).zfill(2), str(int(m)).zfill(2), str(int(s)).zfill(2)])
  10. print("时长:", time_deltal)
  11. #print(os.path.exists(src_path))
  12. cmd = 'ffmpeg -ss {} -t {} -i "{}" -vcodec copy -acodec copy "{}"'.format(start, time_deltal, src_path, dst_path)
  13. #print(cmd)
  14. os.system(cmd)
  15. start = '00:00:04' # 开始时间
  16. end = '00:01:24' # 结束时间
  17. src_path = r"C:\Users\asus pc\20201125_155213.mp4" # 输入视频路径
  18. dst_path = r"C:\Users\asus pc\20201125_1552132.mp4" # 输出视频路径
  19. cut_video(start, end, src_path, dst_path)

大家可以尝试一下,下方的链接可以获得本文介绍的软件