You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用ffmpeg-python通过URL下载指定时长的YouTube视频片段

用ffmpeg-python下载YouTube视频指定片段

问题描述

我想编写脚本,使用ffmpeg+ffmpeg-python库通过URL下载YouTube视频的指定片段。已有可用的终端命令:

ffmpeg -i "url_to_download" -ss 00:00:15 -t 00:00:25 -c:v copy -c:a copy "demo.mp4"

其中url_to_download是获取到的YouTube流地址。我写出了部分Python代码,但不知道如何将-c:v copy -c:a copy "demo.mp4"这些参数传递进去,且请勿建议使用subprocess(我遇到了路径空格相关问题):

import ffmpeg

FROM = "00:00:15"
TO = "00:00:25"
TARGET = "demo.mp4"

ffmpeg.input(url_to_download, ss=FROM, t=TO)

解决方案

在ffmpeg-python库中,-c:v copy和-c:a copy对应output()方法的vcodec和acodec参数,输出文件名直接作为output()的第一个参数传入。完整可运行代码如下:

import ffmpeg

FROM = "00:00:15"
TO = "00:00:25"
TARGET = "demo.mp4"
url_to_download = "你的YouTube流地址"  # 替换为实际获取到的流地址

# 构建并执行ffmpeg命令链
(
    ffmpeg
    .input(url_to_download, ss=FROM, t=TO)
    .output(TARGET, vcodec='copy', acodec='copy')
    .run()
)

参数对应说明

  • .input()方法:处理输入源与时间参数,对应终端命令中的-i、-ss(起始时间)、-t(时长)
  • .output()方法:指定输出文件路径,vcodec='copy'对应-c:v copy(视频流直接复制),acodec='copy'对应-c:a copy(音频流直接复制)
  • .run()方法:执行构建好的ffmpeg命令

这样写既完全匹配你原本的终端命令逻辑,又能避开subprocess的路径空格问题。

内容的提问来源于stack exchange,提问作者puf

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 14:55:19