我有一个可以拍摄视频的应用,我需要在视频中存储准确的创建时间(精确到毫秒)。然后,该视频会通过用户想要的任何应用进行共享,以便使用软件工具根据我设置的准确创建时间在视频顶部添加一些遥测覆盖。
设置 creation_time 元数据标签没有帮助,因为 Whatsapp 等应用程序会删除所有元数据并压缩视频。
有没有办法将确切的创建时间存储在视频/音频流本身的某个地方?或者也许为此创建一个新的流?可以修改软件工具以查看我最终存储此值的位置。还有其他想法吗?
答案1
简短的回答是,除非您存储视频并分享下载链接,否则这是不可能的。
详细回答:视频在重新压缩后,就从头开始重新制作。这使得无法可靠地存储保留的信息,同时又向观看者隐藏相同的信息。
解决方案是将视频与元数据一起存储在您管理的位置,并获取该视频的下载链接并共享该链接,而不是将视频作为文件本身共享。如果人们共享链接,则无法更改其内容。
软件工具必须下载视频才能运行,然后必须上传其版本并共享链接,以确保压缩不会以任何不令人满意的方式改变其版本。
答案2
您还没有说您是否关心用户是否知道代码存在/是否想防止手动删除。
假设您不关心用户是否知道,而只关心代码不会被自动处理(例如重新压缩)删除,那么有很多选择,例如:
- 在视频开始时添加 1 秒的全屏二维码 - 根据您要编码的数据量,二维码的复杂程度有所不同,如果您只有少量数据,则它可能更能经受住压缩。
- 您可以采用传统方法并以类似的方式使用条形码。
- 在图像的整个侧面添加一个宽条(例如 10 像素)。
- 向音轨添加一系列音调。
压缩/重新压缩只会从视频/音频流中剥离精细的细节,如果您的编码很大/很明显,则很可能它会在重新压缩后而不会出现问题。
如果您控制应用程序并希望向用户隐藏编码,您只需要在应用程序中采取适当的操作 - 例如在开始向用户播放之前向前跳过 1 秒。