npm 包 @jwdotjs/videoshow 使用教程

阅读时长 9 分钟读完

介绍

@jwdotjs/videoshow 是一个开源的 npm 包,它用于在 Node.js 环境下生成视频。与现有的视频生成工具不同,@jwdotjs/videoshow 可以方便地控制视频的每一帧,包括添加文字、图片和音乐等。它还支持自定义生成视频所需的编解码器和帧率等属性,可以让你生成自己想要的视频。

安装

使用 npm 进行安装:

快速上手

生成视频

在 Node.js 环境下创建一个 js 文件,导入 @jwdotjs/videoshow:

接下来,使用以下代码生成一个简单的视频:

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

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

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

这段代码将三张图片拼接成一个视频,视频的宽度为 640 像素,高度不限,一共循环播放 5 次,生成的视频保存为 my-video.mp4。视频的每一帧持续时间为 1/25 秒,即每秒播放 25 帧,视频中的图片会通过向左飞入的动画效果进行过渡。

添加文字和音乐

调用 addText 和 addMusic 函数可添加文字和音乐到视频中,示例代码如下:

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

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

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

这段代码基于上面的代码添加了文字和音乐,其中 addText 函数可以添加文字,并支持对文字样式的自定义。addMusic 函数则支持添加音乐和对音乐进行淡入淡出和延迟播放等控制。

指南

  • 推荐使用 Node.js 版本 >= 8.0。
  • 参考 ffmpeg 文档来确定你需要的编解码器和像素格式。
  • 可以使用环境变量 FFMPEG_PATH 和 FFPROBE_PATH 来指定 ffmpeg 和 ffprobe 的路径。
  • @jwdotjs/videoshow 仅支持在 Node.js 环境下使用,不支持浏览器环境。
  • 使用 videoshow 函数时,第一个参数应该是一个包含图片路径,文字说明和位置的数组。每个元素都要包含一个 path 属性,它表示图片路径。
  • videoshow 函数还支持其他选项,包括 fps、loop、transition 等,具体可以查看官方文档来了解。
  • 可以使用 addText 和 addMusic 函数来添加文字和音乐,其中 addText 函数还支持自定义字体。
  • videoshow 函数返回一个 Promise 对象,可以通过链式调用 addText、addMusic 等函数来修改视频。
  • 可以使用 save 函数将视频保存到本地或写入一个可写流,并监听它的事件来获取生成视频的信息。
  • 生成的视频大概率会比预期的时间长,所以要耐心等待。

示例代码

以下是完整的示例代码:

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

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

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

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

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

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

结论

@jwdotjs/videoshow 是一个非常方便易用的 npm 包,它可以让你在 Node.js 环境下生成自己想要的视频。通过添加文字和音乐,可以让你的视频更加生动有趣。对于需要用到视频生成的应用程序,这个包是一个不错的选择。感谢你阅读本文,希望它能对你有所帮助。

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

纠错
反馈