如何使用 youtube-dl 或其他工具下载视频的一部分?

如何使用 youtube-dl 或其他工具下载视频的一部分?

我希望能够仅下载视频的一部分。例如,能够指定下载的开始和/或结束时间。因此,当用户输入视频的开始和结束时间时,它应该只下载时间戳内的片段部分。这可能吗?

答案1

确实有一个过多网上有多种技术可以实现这一点。一种相当基本的技术如下一句话在我的系统上,它可以很好地播放 YouTube 视频:

ffmpeg -i $(youtube-dl -f 18 --get-url https://www.youtube.com/watch?v=ZbZSe6N_BXs) \
-ss 00:00:10 -t 00:00:30 -c:v copy -c:a copy \
happy.mp4

此示例中控制剪辑开始和结束的两个部分是:

  1. -ss 00:00:10:已放置编码的输入文件和丢弃采样直到 10 秒标记。这比将搜索选项放在输入文件之前更慢且效率更低(输入搜索)但在这个例子中效果更好(特别是什么时候复制音频和视频流
  2. -t 00:00:30:指定编码的持续时间,在本例中仅为 30 秒

我已经通过 YouTube 对此进行了广泛的测试并且一切在我的系统上运行良好......

参考:

答案2

使用--postprocessor-args参数将音频/视频输出传递给要ffmpeg编辑的处理器。显然,ffmpeg需要安装。

--postprocessor-args接受 3 个参数和值(这只是一个例子,请查看ffmpegman ffmpeg更多信息请查看with手册页):

  • -ss HH:MM:SS :开始拍摄时间
  • -to HH:MM:SS : 时间结束
  • -t HH:MM:SS :需要的时间长度

例子:

  • 从 15 秒开始编码,并在 1 分 20 秒停止:

    $ youtube-dl --postprocessor-args "-ss 0:0:15 -to 0:1:20" '[video_URL]'
    
  • 从 15 秒开始编码,仅占用接下来的 3 分 5 秒:

    $ youtube-dl --postprocessor-args "-ss 0:0:15 -t 0:3:5" '[video_URL]'
    

附言: youtube-dl将在处理之前下载整个媒体,并在处理之后将其删除。

答案3

水管工工具可让您轻松完成此操作。使用以下命令安装应用程序:

snap install plumber

安装后,它将出现在您的应用程序菜单中。

运行应用程序时,将您想要的 YouTube 链接粘贴到框中(在下面的屏幕截图中以红色突出显示),或者使用内置的 YouTube 搜索功能,通过单击 YouTube 图标(以黄色突出显示)。

选择起点和终点。您可以将结果保存为视频或 gif。 水管工申请窗口

答案4

我跟着andrew.46 的回答。但是,为了正确搜索,您需要在 之前放置-ssand-t或。否则,您将下载超过所需的内容。(指定持续时间并指定输出点;请小心,因为它们是不同的)-to-i-t-to

在手册中ffmpeg,我们被告知在 之后使用-t或。但是,根据我使用 ffmpeg 的经验,之后不起作用;它将被识别为。-to-i-to-i-t

我的示例命令是:(下载“Coffee Run”的购物车滑动部分)

ffmpeg -ss 00:00:37 -to 00:00:44 -i "$(youtube-dl -f best --get-url 'https://youtu.be/PVGeM40dABA')" -c:v copy -c:a copy coffee_sliding.mp4

相关内容