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

ffmpeg concat加-safe 0参数时嵌套ffconcat列表报Unsafe file name错误

问题原因
  • ffmpeg命令中传入的-safe 0参数仅对命令行直接指定的首层输入concat文件(即此处的file1.txt)生效,concat文件内部嵌套引用其他concat文件时,ffmpeg不会继承首层的安全检查配置,会默认启用严格的路径安全校验。
  • 路径安全校验默认仅允许加载与当前正在解析的concat文件同目录、无特殊字符、无相对路径回退(../)的文件,解析嵌套的file2.txt时安全校验未关闭,所以抛出Unsafe file name错误。
解决方法

方法1:子concat文件内声明关闭安全检查

在所有嵌套的concat文件的ffconcat version 1.0行后新增safe 0配置,指定解析当前文件时关闭安全校验:
修改后file1.txt内容:

ffconcat version 1.0
safe 0
file 'video1.mp4'
file 'file2.txt'

修改后file2.txt内容:

ffconcat version 1.0
safe 0
file 'video2.mp4'
file 'file1.txt'

该方案无需调整执行命令,适配所有嵌套引用场景。

方法2:命令行指定concat解复用器的全局安全参数

执行命令时新增-demuxer concat:safe=0参数,给所有concat解复用操作全局关闭安全检查,修改后命令如下:

ffmpeg -nostdin -re -f concat -safe 0 -demuxer concat:safe=0 -i ./file1.txt -c copy ...

方法3:使用绝对路径声明文件

如果不需要关闭安全校验,可以把所有concat文件内的路径替换为绝对路径,符合安全校验规则即可正常加载,示例如下:

ffconcat version 1.0
file '/data/videos/video2.mp4'
file '/data/videos/file1.txt'

注意:你当前两个concat文件互相引用会触发无限循环加载,若你是要实现循环播放场景该配置可正常使用,若你是要拼接两个视频,建议把两个视频路径写到同一个concat文件中,避免循环引用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 18:06:03