wang-bin / mdk-sdk

multimedia development kit. download:
https://sourceforge.net/projects/mdk-sdk/files/
270 stars 32 forks source link

mdk中可以设置加密解密参数吗? #236

Closed feiyangqingyun closed 1 month ago

feiyangqingyun commented 1 month ago

在ffmpeg中可以通过av_dict_set来设置参数encryption_key/decryption_key实现加密和解密。不知道mdk的setProperty有没有提供对应的设置

wang-bin commented 1 month ago

setProperty("avio.key",val) 或avformat.key,具体看是哪一层的option

feiyangqingyun commented 1 month ago

试过了,不行,打印提示 Error ret @122 D:\a\mdk-sdk\mdk-sdk\mdk\ffmpeg\plugin\AVCoderBase.cpp: (0xbebbb1b7) Invalid data found when processing input [FFmpeg:aac] Sample rate index in program config element does not match the sample rate index configured by the container. [FFmpeg:h264] non-existing PPS 2 referenced [FFmpeg:aac] decode_pce: Input buffer exhausted before END element found Error ret @122 D:\a\mdk-sdk\mdk-sdk\mdk\ffmpeg\plugin\AVCoderBase.cpp: (0xffffffff) Operation not permitted [FFmpeg:aac] Prediction is not allowed in AAC-LC. 无论是avformat.key还是avio.key 都不行。我使用的是ffmpeg指定加密秘钥保存了一个文件,通过mdk来解密播放。要等下一个版本吗?

wang-bin commented 1 month ago

完整日志

feiyangqingyun commented 1 month ago

log.txt

wang-bin commented 1 month ago

setProperty("avformat.decryption_key", ...),所有option都是这种形式,前面说的key val是指option的名字和值

feiyangqingyun commented 1 month ago

哦,怪不得,明天我试试,谢谢

feiyangqingyun commented 1 month ago

试过了,解密播放可以了。但是加密保存好像还是不行。同样的代码用ffmpeg就可以加密保存。avformat也试过不行。 player->setProperty("avio.encryption_scheme", "cenc-aes-ctr"); player->setProperty("avio.encryption_key", cryptoKey.toStdString()); player->setProperty("avio.encryption_kid", cryptoKey.toStdString());

wang-bin commented 1 month ago

加密保存是啥?录制?

feiyangqingyun commented 1 month ago

嗯,录制,在ffmpeg中是avformat_write_header的第二个参数应用的

wang-bin commented 1 month ago

试下最新包

feiyangqingyun commented 1 month ago

试过了,不行,还要等最新包?我下载的一个小时前的最新的

wang-bin commented 1 month ago

不行的话贴下日志

feiyangqingyun commented 1 month ago

log.txt

feiyangqingyun commented 1 month ago

最后保存的还是没有加密的文件,这三个参数没有起到作用

wang-bin commented 1 month ago

哦忘了,录制的属性要以record开头,比如"record.avformat.encryption_scheme"

feiyangqingyun commented 1 month ago

嗯,确实可以了,感谢大佬。不过还有个小遗憾就是貌似不支持265,对264支持很好,不知道是不是ffmpeg的限制

feiyangqingyun commented 1 month ago

确切的说是有几个265的网络摄像头的流不行,我用265的mp4文件是可以的

wang-bin commented 1 month ago

发下日志

feiyangqingyun commented 1 month ago

应该和你的无关,用ffmpeg命令行也是有问题