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

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

在我知道这个技巧之前,我通常会先使用 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 视频的特定部分。

出于本指南的目的,我将使用 这个视频 来自 官方的 YouTube 我们的 OSTechNix 频道 博客。 该视频时长 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”。

更新:

正如我们的一位读者在下面评论的那样,如果上述提示由于任何原因不起作用,只需 秒后添加小数 像 ”-ss 00:01:00.00 -to 00:02:00.00“ 代替 ”-ss 00:01:00 -to 00:02:00“。虽然我没有亲自测试过。但是,读者声称它确实有效。

希望这可以帮助。

参考

特色图片由 卡皮尔 99关注.