npm 包 ffmpeg-progressbar-cli 使用教程

阅读时长 4 分钟读完

在前端开发或者多媒体处理的过程中,我们可能会经常使用到 ffmpeg 这个工具来进行音视频的转码、裁剪等操作,而其中往往需要一些将转码进度以进度条的形式展示出来的功能,这个时候可以使用 npm 包 ffmpeg-progressbar-cli,来方便地实现进度条效果。

安装及使用

我们首先需要在终端中使用 npm 安装 ffmpeg-progressbar-cli:

下面我们来看一个简单的转码与进度条效果的代码示例:

-- -------------------- ---- -------
----- ------ - ------------------------
----- ----------- - ---------------------------------

----- --------------- - --------------------
----- --------------- - --------------------

-- -- ------ ----------
----- ---- - --------
  -----------------------

-- ------
------------------------- --------- ----- ----- ----- ------- ----- ------ --- ------------
  ------------------------
  ------------ -------- ----- -
    --------------- ----- --------- - - ------------
  --
  --------------- -------- -- -
    ----------------------------
  --
  ---------- -------- -- -
    ----------------------- -------- ---
  --
  ------

在上面的代码中,我们首先引入了 ffmpeg 和 ffmpeg-progressbar-cli 两个 npm 包,然后定义了源视频文件和输出视频文件的路径。

通过 ffmpeg() 创建出一个 ffmpeg 对象,并使用 .input() 方法读取源视频文件。

然后使用 .outputOptions() 方法添加转码参数,并使用 .output() 方法指定输出文件路径。

在转码进行的时候,使用 .on('progress', progress => {...}) 方法监听进度事件,并在其中使用 progressbar.render(progress) 方法来实时渲染进度条。

最后通过 .run() 方法启动 ffmpeg 进行转码。

API 及参数

在进度条的使用中,我们可以使用以下四个 API 来进行控制:

progressbar.init(total, width, theme)

用于初始化进度条的总长度、宽度和主题颜色。其中:

  • total 参数为总长度,必须为数字类型
  • width 参数为进度条的宽度,默认为 50,必须为数字类型
  • theme 参数为进度条的颜色主题,默认为 "#" + Math.floor(Math.random() * 0xffffff).toString(16) 自动生成

progressbar.render(progress)

用于在终端中实时渲染进度条,其中 progress 参数为当前进度百分比,应为 0~1 之间的小数。

progressbar.success(message)

用于在终端中打印操作成功的消息,其中 message 参数为要输出的消息。

progressbar.error(message)

用于在终端中打印操作失败的消息,其中 message 参数为要输出的消息。

总结

在本文中,我们介绍了 npm 包 ffmpeg-progressbar-cli 的使用方法,详细介绍了其各个 API 和参数的含义及使用方法,并提供了一个代码示例,希望能够帮助读者更好地使用 ffmpeg 进行转码操作。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600668f8d9381d61a3540f8f

纠错
反馈