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

Windows系统下使用FFmpeg提取视频非规则多段内容的方法咨询

Windows系统下使用FFmpeg提取视频非规则多段内容的方法咨询

我现在遇到了个FFmpeg的使用难题,想请教大家怎么解决:我需要从视频里提取几个不连续的片段(还可能要把它们合并),但试了几种方法都不太顺利。

和我查到的那些按固定间隔提取片段的示例不同,我的需求是提取任意时间点的片段。我查了不少资料后,尝试用concat分离器的方法,命令如下:

ffmpeg -f concat -i seg.txt -c copy out_%03d.mp4

但这个命令跑不通,主要有两个问题:

  • 输出文件名out_%03d.mp4没有自动展开成out_001.mp4、out_002.mp4这类序列文件;
  • 输入文件的配置被FFmpeg标记为“有问题”,具体报错信息我放在了seg.txt的末尾。

下面是seg.txt的完整内容:

#file 'e:\tmp\video\kr.mp4' ... 
file 'KR.mp4'

inpoint  75.0
outpoint 92.0

inpoint  275.0
outpoint 300.0

inpoint  1049.0
outpoint 1082.0

# [eof]

# errors:
#[concat @ 05a6a5c0] Unsafe file name 'E:\tmp\video\kr.mp4'
#seg.txt: Operation not permitted
#seg.txt: Invalid data found when processing input

除了这个方法,我也试过直接在一条命令里指定多个输出片段,比如:

ffmpeg -i kr.mp4 ^
   -c:v libx264 -pix_fmt yuv420p -r 25 -y ^
   -preset ultrafast -crf 38 ^
      -ss   75.0 -to   92.0 out_001.mp4 ^
      -ss  275.0 -to  300.0 out_002.mp4 ^
      -ss 1049.0 -to 1082.0 out_003.mp4

但实际需求里,每个片段都要加滤镜参数(比如指定字体文件、字号等),再加上视频文件的路径,如果要提取50多个片段的话,命令长度肯定会超过Windows命令行8192字符的限制,这个方法显然不太行。

我的运行环境是Windows 8 32位,用的FFmpeg版本是n6.0-22-g549430e14d-20230529,在cmd.exe里执行命令,而且因为找不到更新的32位版本,没法升级FFmpeg。

想请大家指点下:

  1. 怎么正确调用FFmpeg实现我的需求?
  2. 带路径的输入文件名该怎么正确指定?
  3. 怎么让输出文件的掩码out_%03d.mp4正常展开?
  4. 如果把命令写到批处理文件里,转义规则该怎么处理?

谢谢大家的帮助!


备注:内容来源于stack exchange,提问作者Skeeve

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.17 12:03:10