【发布时间】:2010-01-20 04:23:10
【问题描述】:
我正在开发一个录音系统。我的任务涉及从同步器设备生成的音频输入流中提取 SMPTE 时间码。我正在使用 ASIO SDK 来获取每个回调缓冲区的时间码,但它始终为零。
也许有人在 ASIO SDK(或任何其他可用于从音频流中提取 SMPTE 时间码的平台/sdk)方面有经验可以帮助我?
问候, 本
【问题讨论】:
标签: audio-recording
我正在开发一个录音系统。我的任务涉及从同步器设备生成的音频输入流中提取 SMPTE 时间码。我正在使用 ASIO SDK 来获取每个回调缓冲区的时间码,但它始终为零。
也许有人在 ASIO SDK(或任何其他可用于从音频流中提取 SMPTE 时间码的平台/sdk)方面有经验可以帮助我?
问候, 本
【问题讨论】:
标签: audio-recording
LTC 很简单,所以如果不出意外,您可以只扫描音频流中的 LTC 数据as documented on wikipedia。每个 80 位帧以 0011 1111 1111 1101 结束,只需扫描该字节序列以进行同步,然后将在该同步序列之后开始的缓冲区数据转换为 80 位 struct timecode_t 元素的数组。如果您的缓冲区大小为 80 的倍数,您的计算会更容易(但您确实需要测试同步丢失,因为声卡会因溢出而丢失位)。
困难的部分是,如果我没记错的话,时间码“位”与采样音频流的位不同,因此您必须实现逻辑来检测位序列。这可以只是一个 for 循环检查正确的信号变化并在适当的情况下将位附加到缓冲区(然后在缓冲区已满时调用函数来解释缓冲区)。
【讨论】: