如何将 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 子进程调用一起使用?我收到此错误无效的流描述符名称/值对:的主要内容,如果未能解决你的问题,请参考以下文章