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

FFmpeg中如何为metadata=print:file参数指定绝对路径?

解决FFmpeg metadata filter写入绝对路径文件的错误问题

问题原因

你遇到的错误是因为Windows路径中的反斜杠未正确转义,导致FFmpeg解析filter参数时出错:未转义的\s被当成转义序列,使得file=D:\scenescores.txt被拆分为file=D:和scenescores.txt,后者被错误识别为direct选项的布尔值参数,最终触发过滤器初始化失败。

解决方案

有两种可靠的方式解决这个问题:

1. 改用正斜杠作为路径分隔符

Windows系统支持正斜杠作为路径分隔符,这种方式无需额外转义,写法更简洁:

ffmpeg -i input.mp4 -vf "select='gte(scene,0)',metadata=print:file=D:/scenescores.txt" -an -f null -

2. 转义反斜杠

如果必须使用反斜杠,需要对路径中的每个反斜杠进行双重转义(FFmpeg层面的转义):

ffmpeg -i input.mp4 -vf "select='gte(scene,0)',metadata=print:file=D:\\scenescores.txt" -an -f null -

Java应用中的特殊处理

在Java字符串中,反斜杠本身需要转义,因此如果使用反斜杠路径,需要写成四重反斜杠:

String ffmpegCmd = "ffmpeg -i input.mp4 -vf \"select='gte(scene,0)',metadata=print:file=D:\\\\scenescores.txt\" -an -f null -";

如果使用正斜杠路径,Java中无需额外转义,写法更简单:

String ffmpegCmd = "ffmpeg -i input.mp4 -vf \"select='gte(scene,0)',metadata=print:file=D:/scenescores.txt\" -an -f null -";

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 15:01:05