如何将 Shaka 打包器与 python 子进程调用一起使用?我收到此错误无效的流描述符名称/值对:

Posted

技术标签:

【中文标题】如何将 Shaka 打包器与 python 子进程调用一起使用?我收到此错误无效的流描述符名称/值对:【英文标题】:How to use Shaka packager with python sub-process call? I am getting this error Invalid stream descriptors name/value pairs: 【发布时间】:2021-09-29 05:46:47 【问题描述】:

我是一个新手,试图将 Shaka 打包器用于我正在开发的新应用程序,我无法让它工作,它抛出了这个错误 Invalid stream descriptors name/value pairs:,我无法理解。任何人都可以帮助这段代码,我不明白错误来自哪里。

这是代码。

subprocess.call([
                settings.PACKAGER_PATH, "in=480p_path, stream=audio, output=audio.mp4",
                "in=480p_path, stream=video, output=480p_path",
                 "in=1080p_path, stream=video, output=1080p_path", "--mpd_output dash_path"])

谢谢

【问题讨论】:

【参考方案1】:

它无法解析参数,因为流描述符应该是一个包含用逗号分隔的键值对的单个参数字符串。

DASH 示例:

$ packager \
  in=h264_baseline_360p_600.mp4,stream=audio,output=audio.mp4 \
  in=input_text.vtt,stream=text,output=output_text.vtt \
  in=h264_baseline_360p_600.mp4,stream=video,output=h264_360p.mp4 \
  in=h264_main_480p_1000.mp4,stream=video,output=h264_480p.mp4 \
  in=h264_main_720p_3000.mp4,stream=video,output=h264_720p.mp4 \
  in=h264_high_1080p_6000.mp4,stream=video,output=h264_1080p.mp4 \
  --mpd_output h264.mpd

所以你需要这样做:

subprocess.call([settings.PACKAGER_PATH, 
    "in=480p_path,stream=audio,output=audio.mp4",
    "in=480p_path,stream=video,output=480p_path",
    [...]

【讨论】:

感谢您的回复,现在我收到此错误unknown command line flag 'mpd_output dash_path'。你能帮我如何正确指定输出文件吗? @prehistoricbeast 检查示例,您需要在数组中放置两个单独的参数。空格是分隔符。 对不起,我可能听起来很愚蠢,但我无法理解您在数组中使用 2 个单独参数的意思。你能解释一下吗?谢谢 @prehistoricbeast [ ... "--mpd_output", "dash_path"] 另外,不要在, 之后为前面的流描述符添加空格。

以上是关于如何将 Shaka 打包器与 python 子进程调用一起使用?我收到此错误无效的流描述符名称/值对:的主要内容,如果未能解决你的问题,请参考以下文章

如何在不使用子进程的情况下从 python 自动化脚本中运行 python 'sdist' 命令?

如何将数据从 Python 异步套接字服务器发送到子进程?

如何将选择器与 JavaScript 标识符正确组合?

如何使用 pyinstaller 将多个子进程 python 文件编译成单个 .exe 文件

如何使用 python 子进程模块将 sqlplus 作为 sudo 连接到 oracle 用户?

shaka configure 选择你想玩的表示和适应集