ChrisMottram/MP4MetadataAugmentor
GitHub: ChrisMottram/MP4MetadataAugmentor
轻量级零依赖 Android Kotlin 库,通过尾部追加自定义 atom 将 JSON 元数据嵌入 MP4 文件而不影响视频完整性。
Stars: 0 | Forks: 0
# MP4MetadataAugmentor
`MP4MetadataAugmentor` 是一个高性能的纯 Kotlin Android 库,旨在将自定义元数据直接追加到 MP4 视频文件中,而无需更改原始的视频或音频流。
通过利用低开销的尾部注入,该 SDK 允许开发者将自定义数据直接嵌入到视频文件容器本身中,确保其在 VLC 或 Windows Media Player 等标准媒体播放器中保持 100% 的可播放性。
### ✨ 核心功能
* 🚀 **快速定位架构:** 在文件的绝对末尾采用自定义 atom 指针逻辑 (`kPTR`),实现即时的 $O(1)$ 元数据查找,无需解析整个 MP4 atom 树。
* 🔒 **加密安全性:** 内置支持受密码保护的元数据配置,利用 PBKDF2 进行密钥派生,并使用 AES-256 加密来防止未经授权的数据提取。
* 🎬 **零流中断:** 以非破坏性的尾部 trailer 形式追加数据,保持绝对的视频完整性并兼容标准播放器。
* 📦 **纯逻辑 SDK:** 零外部第三方依赖,直接针对轻量级集成到 Android 生产应用进行了优化。
增强后的 MP4 文件结构:
+-------------------------------------------------------------+
| |
| 原始 MP4 视频数据容器 |
| (保持完全未触碰/有效) |
| |
+-------------------------------------------------------------+
| [kliQ Atom] Size (4B) + Type (4B) | <-- 自定义数据框
| -> Raw JSON String payload 或加密的 AES 二进制块 |
+-------------------------------------------------------------+
| [kPTR Atom] Size (4B) + Type (4B) | <-- 快速定位 Footer
| -> Int (Data Atom Size Block Offset) |
| -> Byte (加密状态标志切换:0 或 1) |
| -> 16 字节加密 KDF 随机盐字符串 |
+-------------------------------------------------------------+ <-- EOF (绝对末尾)
## 📦 安装
将 JitPack 仓库添加到您的根目录 `settings.gradle.kts` 中:
```
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
google()
mavenCentral()
maven { url = java.net.URI("[https://jitpack.io](https://jitpack.io)") }
}
}
```
标签:AES加密, Android, DSL, Kotlin, MP4处理, 元数据管理, 多媒体开发