首页 > 解决方案 > 如何在发送音频的 Java 客户端中使用 PTPv2 时钟初始化 AES67 音频流?

问题描述

我有一个应该与虚拟 AES 声卡对话的 Java 客户端应用程序。我知道 AES67 是通过 IP/UDP/RTP 以线性 PCM 编码的,所以我特别想了解 PTPv2 时钟的设置。

标签: javaaudioaudio-streaming

解决方案


ptp 用于同步时钟,使用 PTP 可以实现亚微秒范围内的精度(NTP 为毫秒) 您创建的 RTP 数据包中的时间戳基于 PTP 时钟,因此它对延迟的影响

ptp同步:

第一步:在同步之前,将时钟组织成一个主从层次结构(基于观察包含在 Announce 消息中的时钟属性信息中包含的时钟属性信息)

Announce消息携带用于建立主从层次结构的信息;它们不用于同步

第 2 步:每个从属设备使用延迟请求-响应或对等延迟机制与其主设备同步,通过与其主设备交换消息(并且可能与上游对等透明时钟,如果存在的话)

它如何与 AES67 一起工作:

首先你需要同步到ptp时钟,

发送 SDP 消息(带有多播 ip、ptp 时钟主 mac、音频格式...),然后开始流式传输,创建 RTP 数据包(带有 PCM 日期)并将它们发送到 AES67 多播 ip 239.69.xx


推荐阅读