序章
ダンス競技用のマルチチャンネル 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%
録音セッションの持続時間よりも短い) しかなく、オーディオとビデオの同期に時間遅延が発生するのはそのためです。
質問:この計算と結論は正しいですか?