使用 Youtube-dl 和 FFmpeg 下载部分 Youtube 视频

尽管有许多程序可用于下载和编码视频,但我更喜欢使用 优酷FFmpeg. 这两个实用程序足以从在线下载视频并对下载的视频进行编码、解码、转码、裁剪和复用。 今天,我们将看到如何在 Linux 中使用 Youtube-dl 和 FFmpeg 下载部分 YouTube 视频。

在我知道这个技巧之前,我通常会首先使用 Youtube-dl 下载整个视频,然后使用 FFmpeg 将其修剪到我想要的持续时间,如下所示。

要下载视频,我会这样做:

$ youtube-dl <youtube-link>

然后根据我的喜好使用 FFmpeg 使用命令使用视频剪辑的开始和结束时间修剪下载的视频:

$ ffmpeg -i input_video.mp4 -ss 00:01:00 -to 00:03:00 -c copy output_video.mp4

这就是我为了只获取视频的一部分所做的工作。 如果您仍然按照此方法下载和修剪视频,请不要打扰。 我知道一种更好的方法来下载 youtube 视频的部分而不是完整的视频。 继续阅读!

使用 Youtube-dl 和 FFmpeg 下载部分 Youtube 视频

首先,我们将了解如何使用 Youtube-dl 脚本下载 youtube 视频的特定部分。

出于本指南的目的,我将使用 这个视频 来自 我们 OSTechNix 的官方 YouTube 频道 博客。 该视频时长 2:43 分钟,主要演示了如何在 Linux 中以全屏模式启动 Web 浏览器。

如果你还没有在你的 Linux 机器上安装 Youtube-dl,请参考第一段中的链接。

Youtube-dl 有 --postprocessor-args 用于从其他几个网站下载 youtube 视频或视频的特定部分的参数。

要使用 Youtube-dl 下载视频的一部分,请运行:

$ youtube-dl --postprocessor-args "-ss 00:01:00 -to 00:02:00" "https://www.youtube.com/watch?v=dc7I-i7sPrg"

这里, --ss 00:01:00 是视频的开始时间和 -to 00:02:00 是结束时间。 所以上面的命令将在 1 分钟开始编码并在 2 分钟结束。

你也可以使用 -t 标志来指定总持续时间。

$ youtube-dl --postprocessor-args "-ss 00:01:00 -t 00:00:50" "https://www.youtube.com/watch?v=dc7I-i7sPrg"

这将在 1 分钟开始编码,并且只需要接下来的 50 秒。

请注意,Youtube-dl 将 下载整个视频 在处理之前。 将视频修剪到给定长度后,它将删除原始视频并仅保留视频的一部分。 如果您想同时保留两者,只需通过 -k 旗帜。

如果您不想下载整个视频而只想下载其中的一部分,您可以结合使用 ffmpeg 和 youtube-dl 来下载 youtube 视频的特定部分,如下所示:

$ youtube-dl --external-downloader ffmpeg --external-downloader-args "-ss 00:01:00.00 -to 00:02:00.00" -f best "https://www.youtube.com/watch?v=dc7I-i7sPrg"

在这里,我们使用了 -f best 标志以下载最优质的音频和视频。

上面的命令将使用 Youtube-dl 脚本下载给定的 Youtube 视频,然后从 1 分钟开始修剪到 2 分钟结束。

这是执行相同工作的命令的另一个版本。

$ ffmpeg -ss 00:01:00 -to 00:02:00 -i "$(youtube-dl -f best --get-url 'https://www.youtube.com/watch?v=dc7I-i7sPrg')" -c:v copy -c:a copy kiosk.mp4

此命令与上述命令执行相同的操作,但将输出视频保存为“kiosk.mp4”。 在这两种情况下,

希望这可以帮助。

参考

精选图片 卡皮尔 99知乎.

命令行工具下载 youtube 视频FFmpegFFmpeg 命令LinuxYouTubeyoutube-dlYoutube-dl 命令