如何使用 Python ProtoBuf 库使用 pssh python 脚本?
how to use pssh python script using Python ProtoBuf library?
我无法弄清楚 Python ProtoBuf 库与使用本文档中的 pssh python 脚本有何关系 https://github.com/google/shaka-packager/tree/master/packager/tools/pssh
如何在没有原型文件的情况下构建 pssh.py 脚本?
您可以将构建脚本与 shaka-packager 一起使用,或者您可以直接从 widevine header proto file 生成 python protobuf 文件。
Protocol Buffers tutorial for python 很好地描述了如何使用 protoc 编译必要的 python 代码。
如果你不想或不需要任何其他 shaka-packager 的东西,而只想使用 pssh.py,那么你可以只修改这部分:
# Append the local protobuf location. Use a path relative to the tools/pssh
# folder where this file should be found. This allows the file to be executed
# from any directory.
_pssh_dir = os.path.dirname(os.path.realpath(__file__))
sys.path.insert(0, os.path.join(_pssh_dir, '../../third_party/protobuf/python'))
# Import the widevine protobuf. Use either Release or Debug.
_proto_path_format = os.path.join(
_pssh_dir, '../../../out/%s/pyproto/packager/media/base')
if os.path.isdir(_proto_path_format % 'Release'):
sys.path.insert(0, _proto_path_format % 'Release')
else:
sys.path.insert(0, _proto_path_format % 'Debug')
try:
import widevine_pssh_data_pb2 # pylint: disable=g-import-not-at-top
except ImportError:
print >> sys.stderr, 'Cannot find proto file, make sure to build first'
raise
只保留import widevine_pssh_data_pb2
并确保你用protoc生成的代码在pssh.py文件的路径中。那么它应该可以很好地工作。
您打算使用 pssh.py 做什么?
我无法弄清楚 Python ProtoBuf 库与使用本文档中的 pssh python 脚本有何关系 https://github.com/google/shaka-packager/tree/master/packager/tools/pssh
如何在没有原型文件的情况下构建 pssh.py 脚本?
您可以将构建脚本与 shaka-packager 一起使用,或者您可以直接从 widevine header proto file 生成 python protobuf 文件。
Protocol Buffers tutorial for python 很好地描述了如何使用 protoc 编译必要的 python 代码。
如果你不想或不需要任何其他 shaka-packager 的东西,而只想使用 pssh.py,那么你可以只修改这部分:
# Append the local protobuf location. Use a path relative to the tools/pssh
# folder where this file should be found. This allows the file to be executed
# from any directory.
_pssh_dir = os.path.dirname(os.path.realpath(__file__))
sys.path.insert(0, os.path.join(_pssh_dir, '../../third_party/protobuf/python'))
# Import the widevine protobuf. Use either Release or Debug.
_proto_path_format = os.path.join(
_pssh_dir, '../../../out/%s/pyproto/packager/media/base')
if os.path.isdir(_proto_path_format % 'Release'):
sys.path.insert(0, _proto_path_format % 'Release')
else:
sys.path.insert(0, _proto_path_format % 'Debug')
try:
import widevine_pssh_data_pb2 # pylint: disable=g-import-not-at-top
except ImportError:
print >> sys.stderr, 'Cannot find proto file, make sure to build first'
raise
只保留import widevine_pssh_data_pb2
并确保你用protoc生成的代码在pssh.py文件的路径中。那么它应该可以很好地工作。
您打算使用 pssh.py 做什么?