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

问题描述

我是一个新手,试图将 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}"])

谢谢

标签: python-3.xvideosubprocessvideo-streamingshaka

解决方案


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

破折号示例:

$ 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}",
    [...]

推荐阅读