关于将 SMPTE 嵌入到我认为应该是 AVMediaTypeTimecode 类型的轨道中,我有几个广泛的问题。SMPTE 数据本身是 64 位 - 后跟 LTC 的 16 位同步信息,或 VITC 的 18 位和 8 位 CRC。
大多数消费者期望 SMPTE 数据的表示类型是什么?即在 FCP 或类似中,它是否会尝试解码 SMPTE 信息的 64、80 或 90 位帧?
AVFoundation 轨道表示的字节序是什么?
最后,您将使用什么特定机制将数据填充到轨道中?即,假设我们正在讨论一个采样率为 50khz 的文件和一个 25 fps 的非丢帧时间码(只是为了让数学变得简单)。假设我拼凑了 00:00:00:01 的 64、80 或 90 位表示。然后我会连续使用第一帧 2,000 次,然后通过 00:00:00:02 的表示转到。
假设我正在使用 AVAssetWriter 并在 AVAssetWriterInput 准备好时填充包含我的数据的 CMSampleBufferRef?
将不胜感激任何帮助。AVFoundation 文档仍然有点不稳定。看起来 32 位 quicktime 界面有一种几乎干净的方式来做到这一点。我的应用程序是 64 位的。