32723f81bc
pssh-box.py needs Python protos, which we were not building. It also needs to have those protos installed properly. This fixes generation of Python proto interfaces and fixes the install targets to put those protos where they are needed. This also updates the documentation to match. |
||
---|---|---|
.. | ||
CMakeLists.txt | ||
README.md | ||
pssh-box.py |
README.md
pssh-box - Utility to parse and generate PSSH boxes
Prerequisite
- Python 3.
Build the utility using Shaka Packager build setup
The utility needs to be built before being used, i.e. do not use the script in
packager/tools/pssh/pssh_box.py
directly.
If you have not set up the build environment for Shaka Packager, see https://github.com/shaka-project/shaka-packager/blob/master/docs/source/build_instructions.md.
With the build environment set up, use ninja
to build the utility:
$ ninja -C build/ pssh-box.py
Then you can use the built utility in build/pssh-box.py
.
Usage
All examples below assume that that pssh-box.py
is in the PATH
variable of
the executing shell.
PSSH box generation
The utility can be used to generate one or more PSSH boxes.
An example to generate a Widevine PSSH with content-id 1234:
$ pssh-box.py --widevine-system-id --content-id 1234
It can be also be used to generate PSSH box from PSSH data (base64), e.g.
$ pssh-box.py --widevine-system-id --pssh-data AAAABCICEjQ=
The output can be in base64 form (--base64
), in hex form (--hex
) or in human
readable form (--human
). Human readable form is the default.
An example to generate a Widevine PSSH with content-id 1234 in hex:
$ pssh-box.py --widevine-system-id --content-id 1234 --hex
Multiple boxes can be generated by separating boxes with --
.
An example to generate concatenated PSSHs with a Widevine PSSH with content-id 1234 and a common PSSH with key-id 31323334353637383930313233343536 (hex form).
$ pssh-box.py \
--widevine-system-id --content-id 1234 -- \
--common-system-id --key-id 31323334353637383930313233343536
PSSH box parsing
The utility can be used to parse a single PSSH box or multiple concatenated PSSH boxes. The input can be in hex or in base64.
$ pssh-box.py --from-hex \
000000247073736800000000EDEF8BA979D64ACEA3C827DCD51D21ED0000000422021234
$ pssh-box.py --from-base64 AAAAJHBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAAQiAhI0
More options
Run the utility with no arguments to see the full list of options.
$ pssh-box.py