当我们需要从 Youtube 视频中获取帧以进行分析或图像处理时,很难手动逐帧截取视频。因此,我们需要一个 npm 包 youtube-video-to-frames
来自动化此过程。本文将介绍如何使用该 npm 包获取 Youtube 视频的帧并将其存储为图像文件,供后续使用。
安装和准备
首先,安装 youtube-video-to-frames
包。在终端中运行以下命令:
npm install youtube-video-to-frames
然后,你需要从 youtube 视频中获取相关的信息。你的 youtube 视频 url 将是以下格式:
https://www.youtube.com/watch?v=xxxxxxxxxxx
其中,xxxxxxxxxxx 是该视频的唯一标识符,也称为 YouTube 视频的 ID。你可以从评议栏目下方找到该视频的 ID。
使用 youtube-video-to-frames 包
让我们通过步骤了解如何使用 youtube-video-to-frames
包:
步骤 1:导入包
我们需要导入 youtube-video-to-frames
包到我们的文件中。我们可以使用以下代码来导入该包。
const ytdl = require("ytdl-core"); const videoFrames = require("youtube-video-to-frames");
步骤 2:下载 Youtube 视频
在终端中,使用以下命令下载 youtube 视频:
ytdl("<youtube_video_url>").pipe(fs.createWriteStream("<filename>.mp4"));
这个将下载给定的youtube视频到我们指定的文件名(例如 test.mp4)中。
步骤 3:获取视频帧
现在,我们可以使用以下代码从我们下载的视频中提取帧:
-- -------------------- ---- ------- ----- ---- - ---------------- ----- ---------- - -------------------- ------------------ ----- ------- - - ------- --- -- ------ -- ------ -- ------- ------- ----------- -- ------ ---- --- --- ------ ---- -- -- ------ --- ------ -------- ---------- -- ------- -- --- ----- ------ -- -- ----- ---- ---- --- -- --- ---- -- ----------------------------- -------- --------------- -- - ------------------- -------- ------------ -- ------------ -- - ----------------- ---
在我们上面的代码中,我们将帧保存在名字为 "output/images" 的文件夹中。我们将只提取20帧。你可以根据你的需求更改它。注意,视频将从 0 秒(即开头)开始提取,这对我们的测试和学习很有帮助。
示例代码
-- -------------------- ---- ------- ----- ---- - --------------------- ----- ----------- - ----------------------------------- ----- ---- - ---------------- ----- -- - -------------- ----- --------- - --------- ----- --------------- - -- -- - -- --------------------------- - ------------------- ----- -- - -- ----- - ----------------- - ---- - ---------------------- -------------- ------- ---------------- - --- - -- ----- -------------------- - -- -- - ----- ----- - ---------------------------------------------- ----- ---- - ----------- ----- ----------- - ------------ -------------------------------------------------------- -- -- - --------------------- ----- ----------- ---------------- --- -- ----- -------------- - -- -- - ----- ---------- - -------------------- ------------------ ----- ------- - - ------- --- -- ------ -- ------ -- ------- ------- ----------- -- ------ ---- --- --- ------ ---- -- -- ------ --- ------ -------- ---------- -- ------- -- --- ----- ------ -- -- ----- ---- ---- --- -- --- ---- -- ----------------------- -------- --------------- -- - ------------------- ----- ----- ------------ -- ------------ -- - ----------------- --- -- ----- ---- - ----- -- -- - ------------------ ----- ----------------------- ----- ----------------- -- -------
结论
在本文中,我们介绍了使用 youtube-video-to-frames
获取 Youtube 视频的帧的步骤。通过此方法,我们可以轻松自动化从 Youtube 视频中提取帧的过程。如果你有任何疑问或建议,请在评论中告诉我。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60055b7881e8991b448d8fbc