Audio FFMPEG-libavformat读写头,采用AES加密

Audio FFMPEG-libavformat读写头,采用AES加密,audio,encryption,ffmpeg,libavformat,Audio,Encryption,Ffmpeg,Libavformat,我使用以下libavformat函数读取音频文件(各种格式),然后将其写入磁盘上的新文件: avformat_open_输入(开始读取新流) avio_打开(开始写入新文件) avformat_write_头(在开始读取时写入相同的头) av_读取_帧(获取帧) av_写入_帧(将帧写入磁盘) 我想知道是否有可能在这个文件中添加加密,或者只是针对头文件部分,或者针对while文件。也就是说,我希望在数据实际写入新文件之前对其进行加密,然后在下次读取之前对其进行解密 是否有FFMPEG支持使用

我使用以下libavformat函数读取音频文件(各种格式),然后将其写入磁盘上的新文件:

  • avformat_open_输入(开始读取新流)
  • avio_打开(开始写入新文件)
  • avformat_write_头(在开始读取时写入相同的头)
  • av_读取_帧(获取帧)
  • av_写入_帧(将帧写入磁盘)
我想知道是否有可能在这个文件中添加加密,或者只是针对头文件部分,或者针对while文件。也就是说,我希望在数据实际写入新文件之前对其进行加密,然后在下次读取之前对其进行解密

是否有FFMPEG支持使用AES加密进行读时加密和写时解密

如果没有,在使用上述函数时,是否有办法截取和更改正在读取或写入的数据

我知道在libavutil中有一个AES加密/解密函数(在AES.h中),但是我找不到任何关于如何将它与我正在使用的其他libavformat函数相匹配的好信息


谢谢

经过大量研究,我找不到在FFMPEG中实现这一点的内置方法

我的解决方案是在使用FFMPEG之前对文件进行加密和解密

但是,我确实在libavutil/aes.h中找到了一个函数,它帮助我完成了实际的加密:

void av_aes_crypt (AVAES *a, uint8_t *dst, const uint8_t *src, int count, uint8_t *iv, int decrypt)