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

如何在Python中正确向FFmpeg的-vf ass滤镜传递含空格的Windows路径?

解决Python调用FFmpeg加载ASS字幕时路径解析错误问题

你的问题出在Windows路径的反斜杠被FFmpeg当作转义字符处理,加上f-string的字符串拼接逻辑,导致原始路径被破坏,最终FFmpeg把残缺的路径当成了视频尺寸参数解析,才报出这个错误。

给你几个可行的解决办法:

方法1:将Windows路径的反斜杠替换为正斜杠

FFmpeg支持用正斜杠作为路径分隔符,直接替换后无需担心转义问题:

ass_path = r'C:\Users\username\Desktop\Title Of Video.ass'.replace('\\', '/')
command = [
    'ffmpeg',
    '-i', mp4_path,
    '-vf', f"ass='{ass_path}'",
    '-c:v', 'libx264',
    '-c:a', 'copy',
    output_path
]

方法2:给路径中的反斜杠做双重转义

FFmpeg解析路径时,单个反斜杠会被当作转义符,所以需要把每个反斜杠换成两个反斜杠:

ass_path = r'C:\Users\username\Desktop\Title Of Video.ass'.replace('\\', '\\\\')
command = [
    'ffmpeg',
    '-i', mp4_path,
    '-vf', f"ass='{ass_path}'",
    '-c:v', 'libx264',
    '-c:a', 'copy',
    output_path
]

方法3:使用FFmpeg滤镜的参数拆分写法(更规范)

避免在滤镜字符串里嵌套引号,改用FFmpeg滤镜的参数语法,把路径作为单独的参数传递,搭配方法1的正斜杠替换效果更好:

ass_path = r'C:\Users\username\Desktop\Title Of Video.ass'.replace('\\', '/')
command = [
    'ffmpeg',
    '-i', mp4_path,
    '-vf', f'ass=filename={ass_path}',
    '-c:v', 'libx264',
    '-c:a', 'copy',
    output_path
]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 05:25:01