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

使用ffmpeg生成DASH manifest:Docker exec可行但Go的os.exec失败

问题解决:Go os.exec执行FFmpeg生成DASH Manifest报错

问题根源

你遇到的问题是参数传递时多余的引号导致FFmpeg解析失败。在shell中用引号包裹含空格的参数,是为了让shell将其识别为单个参数;但Go的exec.Command直接接收参数切片,每个元素本身就是独立参数,不需要额外添加引号。

你当前代码中-adaptation_sets的参数写为"\"id=0,streams=0 id=1,streams=1\"",这会导致FFmpeg实际收到的参数是带双引号的字符串:"id=0,streams=0 id=1,streams=1",而非预期的id=0,streams=0 id=1,streams=1,进而导致适配集解析错误,触发"Operation not permitted"的头部写入失败。

修复方案

直接去掉-adaptation_sets参数值前后的转义引号,修改后的调用代码如下:

runFFmpeg([]string{
    "-f", "webm_dash_manifest", "-i", "./480.webm",
    "-f", "webm_dash_manifest", "-i", "./audio.webm",
    "-c", "copy", "-map", "0:0", "-map", "1:0", "-y",
    "-f", "webm_dash_manifest",
    "-adaptation_sets", "id=0,streams=0 id=1,streams=1", // 移除前后转义引号
    "./manifest.mpd"
})

验证点

修复后,打印的命令行中-adaptation_sets的参数会变成:

-adaptation_sets id=0,streams=0 id=1,streams=1

和你在bash中直接执行的命令完全一致,FFmpeg就能正确解析适配集参数,生成正常的DASH Manifest。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 16:30:44