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处理, 元数据管理, 多媒体开发