2

问题 :

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

1 回答 1

2

时钟偏移应该由 GStreamer 的同步机制和音频接收器基类中的偏移逻辑自动处理。

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

于 2014-12-29T09:57:15.627 回答