如何处理音频流中的时钟偏差



问题:

  1. 它的实时音频 - 视频流通过WiFi + udp网络。
  2. 流 : Mpeg2T
  3. 播放器框架:gstreamer。
  4. Pipeline Appsrc ----> tsdemuxer -----> audio-queue---->faad decoder--->alsasink - ----->video-queue->vpudecoder ---->videosink
  5. 音频设备配置为每秒处理 48000 个样本。
  6. 发送方时钟
  7. 比接收方时钟快,我通过跟踪流中的 PCR 值和接收机系统时钟来获取此信息。1 小时后,发送方和接收方时钟之间有 8 秒的差异。
  8. 所以问题是发送方在
  9. 一秒钟内相对于接收方时钟发送更多样本,因为发送方和接收方之间的延迟随着时间的推移而不断增加。

时钟偏差应由 GStreamer 的同步机制和音频接收器基类内的倾斜逻辑自动处理。

为了解决发送方和接收方之间延迟增加的问题,您必须正确为输入添加时间戳,而不是依赖 TS 流中的时间戳(这些时间戳基于发送方时钟,因此在您这边是错误的)。为此,使用足够新的 GStreamer 版本并在 appsrc 上设置 do-timestamp=true 和 format=time 可能已经足够了。

相关内容

  • 没有找到相关文章

最新更新