问题:
- 它的实时音频 - 视频流通过WiFi + udp网络。
- 流 : Mpeg2T
- 播放器框架:gstreamer。
- Pipeline Appsrc ----> tsdemuxer -----> audio-queue---->faad decoder--->alsasink - ----->video-queue->vpudecoder ---->videosink
- 音频设备配置为每秒处理 48000 个样本。 发送方时钟
- 比接收方时钟快,我通过跟踪流中的 PCR 值和接收机系统时钟来获取此信息。1 小时后,发送方和接收方时钟之间有 8 秒的差异。 所以问题是发送方在
- 一秒钟内相对于接收方时钟发送更多样本,因为发送方和接收方之间的延迟随着时间的推移而不断增加。
时钟偏差应由 GStreamer 的同步机制和音频接收器基类内的倾斜逻辑自动处理。
为了解决发送方和接收方之间延迟增加的问题,您必须正确为输入添加时间戳,而不是依赖 TS 流中的时间戳(这些时间戳基于发送方时钟,因此在您这边是错误的)。为此,使用足够新的 GStreamer 版本并在 appsrc 上设置 do-timestamp=true 和 format=time 可能已经足够了。