Gstreamer的音视频同步

本文探讨了Gstreamer中基于音频时钟的音视频同步方法,通过在数据流上打时间戳并根据参考时钟安排播放,确保播放同步。内容包括Gstreamer的音视频分离、时钟提供以及默认由AudioSink作为参考时钟的情况,其中AudioClock利用声卡时钟进行时间同步。
摘要由CSDN通过智能技术生成

一 概述

    Gstreamer的音频视频同步,概括起来是一个比较大的问题,因为在网上可以看到很多音视频同步的办法。这里我们只看最普通的一种。以音频时钟做为参考时钟(要求参考时钟上的时间是线性递增的);生成数据流时依据参考时钟上的时间给每个数据块都打上时间戳(一般包括开始时间和结束时间);在播放时,读取数据上的时间戳,同时参考当前参考时钟上的时间来安排播放(如果数据块上的时间大于参考时钟的时间,则不急于播放,直到参考时钟达到数据块的开始时间;如果数据块上的时间小于参考时钟的时间,则应"尽快"播放或者干脆"丢弃"该数据块,以使得播放赶上播放进度。)

    Gstreamer的因视频分离器如下图:

    demux element将音频,视频分离后,给各自的解码器进行解码播放。     

                     +-----------+
                     |   Audio   |
                  +--|           |
                 /   +-----------+
   +----------+ /
   |  demux   |/
   |          |\
   +----------+ \
                 \   +-----------+
                  +--|   Video   |
                     |           |
                     +-----------+

二  提供时钟

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值