Search code examples
python-3.xvideosubprocessvideo-streamingshaka

How to use Shaka packager with python sub-process call? I am getting this error Invalid stream descriptors name/value pairs:


I am a newbie trying to use Shaka packager for a new app I am working on, I can't make it to work, it's throwing out this error Invalid stream descriptors name/value pairs: which I am not able to understand. Can anyone help with this piece of code, I don't understand where the error is coming from.

This is the code.

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}"])

Thanks


Solution

  • It fails parsing the arguments because a stream descriptor should be a single argument string containing key-value pairs separated by commas.

    DASH example:

    $ 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
    

    So you need to do:

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