介绍
我正在为舞蹈比赛创建一个多通道 ASIO 音频和视频记录器。视频和音频流必须完全同步。主要障碍是我无法访问真实设备(Steinberg UR44),所以我使用ASIO4ALL ,而我的客户使用该设备只是向我发送日志。
问题
在我的机器上使用ASIO4ALL,我有理想的同步,但使用该设备的客户端的延迟会随着时间的推移而增长。所以这就是我检测缓冲区丢失的方式:日志显示事件处理程序的2482
调用;AsioOut.AudioAvailable
录制会话持续时间为35.133
秒;缓冲区大小:512
; 格式:16 bit PCM, 44kHz, 1 channel
.
因此:35.133 x 44100 / 512 = 3026
理论上会发生呼叫,但客户只有2482
这样他丢失~20%
了音频数据。这就是为什么输出的音频文件只有28.003
几秒钟的持续时间(~20%
小于录制会话持续时间),这就是为什么在音频-视频同步中出现随时间延迟增长的原因。
问:这个计算和结论是否正确?