Java 使用protobuf解密Widevine PSSH时出错
我试图解析Widevine PSSH数据并读取其内容。这是一个PSSH数据示例,取自 我用这种方式创建proto消息Java 使用protobuf解密Widevine PSSH时出错,java,protocol-buffers,widevine,shaka,pssh,Java,Protocol Buffers,Widevine,Shaka,Pssh,我试图解析Widevine PSSH数据并读取其内容。这是一个PSSH数据示例,取自 我用这种方式创建proto消息 syntax = "proto2"; package drm; option java_package = "com.drm.widevine"; option java_outer_classname = "WidevineCenc"; message WidevinePsshData { enum Algorithm { UNENCRYPTED
syntax = "proto2";
package drm;
option java_package = "com.drm.widevine";
option java_outer_classname = "WidevineCenc";
message WidevinePsshData {
enum Algorithm {
UNENCRYPTED = 0 ;
AESCTR = 1 ;
};
optional Algorithm algorithm = 1 ;
repeated bytes key_id = 2 ;
// Content provider name.
optional string provider = 3 ;
// A content identifier, specified by content provider.
optional bytes content_id = 4 ;
// Track type. Acceptable values are SD, HD and AUDIO. Used to
// differentiate content keys used by an asset.
optional string track_type = 5 ;
// The name of a registered policy to be used for this asset.
optional string policy = 6 ;
// Crypto period index, for media using key rotation.
optional uint32 crypto_period_index = 7;
}
我尝试反序列化pssh数据,如下所示
String psshString = "AAAAR3Bzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAACcIARIBMBoNd2lkZXZpbmVfdGVzdCIKMjAxNV90ZWFycyoFQVVESU8=";
byte[] data = Base64.decode(psshString, Base64.DEFAULT);
WidevineCenc.WidevinePsshData pssh = WidevineCenc.WidevinePsshData.parseFrom(data);
我得到这个错误
com.google.protobuf.InvalidProtocolBufferException:协议消息
包含无效的标记(零)
欢迎来到stackoverflow。参观并获得您的第一枚徽章欢迎来到stackoverflow。带着你的第一个徽章去旅行吧-
String psshString = "AAAAR3Bzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAACcIARIBMBoNd2lkZXZpbmVfdGVzdCIKMjAxNV90ZWFycyoFQVVESU8=";
byte[] data = Base64.decode(psshString, Base64.DEFAULT);
WidevineCenc.WidevinePsshData pssh = WidevineCenc.WidevinePsshData.parseFrom(data);