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

如何通过Python subprocess调用Shaka Packager?出现无效流描述符错误如何解决

问题原因

你遇到的Invalid stream descriptors name/value pairs:错误是Shaka Packager无法识别传入的流参数格式导致的,代码有三处核心错误:

  • 占位符未实际替换:你写的{480p_path}、{1080p_path}、{dash_path}只是占位符语法,没有替换成对应的实际路径变量值,传给Packager的是带大括号的无效字符串。
  • 流描述符存在多余空格:Shaka要求流描述符的键值对之间用逗号直接分隔,不能加空格,你代码里in={480p_path}, stream=audio中逗号后带了空格,会触发解析失败。
  • 命令参数拆分错误:使用subprocess.call传列表参数时,--mpd_output和它后面的路径是两个独立参数,你合并成了一个字符串,会被Packager当成无效的流描述符处理。

修复后的代码

# 先替换所有占位符为实际值,同时去掉流描述符中的多余空格
audio_stream = f"in={480p_path},stream=audio,output=audio.mp4"
video_480_stream = f"in={480p_path},stream=video,output={480p_path}"
video_1080_stream = f"in={1080p_path},stream=video,output={1080p_path}"

subprocess.call([
    settings.PACKAGER_PATH,
    audio_stream,
    video_480_stream,
    video_1080_stream,
    "--mpd_output",  # 参数名单独作为列表项
    dash_path        # 参数值单独作为列表项
])

验证建议

可以先把拼接好的所有参数打印出来,手动在命令行运行测试,确认没有格式问题后再放到Python代码中执行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 12:06:03