java - 如何在发送音频的 Java 客户端中使用 PTPv2 时钟初始化 AES67 音频流?
问题描述
我有一个应该与虚拟 AES 声卡对话的 Java 客户端应用程序。我知道 AES67 是通过 IP/UDP/RTP 以线性 PCM 编码的,所以我特别想了解 PTPv2 时钟的设置。
解决方案
ptp 用于同步时钟,使用 PTP 可以实现亚微秒范围内的精度(NTP 为毫秒) 您创建的 RTP 数据包中的时间戳基于 PTP 时钟,因此它对延迟的影响
ptp同步:
第一步:在同步之前,将时钟组织成一个主从层次结构(基于观察包含在 Announce 消息中的时钟属性信息中包含的时钟属性信息)
Announce消息携带用于建立主从层次结构的信息;它们不用于同步
第 2 步:每个从属设备使用延迟请求-响应或对等延迟机制与其主设备同步,通过与其主设备交换消息(并且可能与上游对等透明时钟,如果存在的话)
它如何与 AES67 一起工作:
首先你需要同步到ptp时钟,
发送 SDP 消息(带有多播 ip、ptp 时钟主 mac、音频格式...),然后开始流式传输,创建 RTP 数据包(带有 PCM 日期)并将它们发送到 AES67 多播 ip 239.69.xx
推荐阅读
- android - 如何在android中的editText中限制小数点后的值?
- passport.js - 在护照天蓝色广告中使用承载策略将当前用户附加到请求
- github - 如何在 GitHub 工作流 yml 文件中拥有特定于工作流的环境
- javascript - RegEx 替代lookbehind
- angular - 在 Angular 中使用 HTTP 请求测试私有方法
- .htaccess - Opencart Redirect 301 最后带有“/”
- r - Lavaan 错误:要替换的项目数不是替换长度的倍数
- google-bigquery - Google Cloud Stackdriver 日志记录 - 将日志导出到 BigQuery - 拒绝访问数据集
- caching - BigQuery 中的查询缓存
- jupyter-notebook - Jupyter:单击散点图中的点时触发输出,该点替换以前的输出(而不是被附加)