关于vlc中是如何同步live库得到的rtp audio,video流?
各位大牛,我最近做个实验,关于从wowza服务器发出的rtsp流. 是 audio为 mpa, video为 h264.
在客户端 ,用vlc 以tcp来连接,基本上可以看到 audio,video是同步的,虽然有时候会卡,但 顺畅之后还是保持同步.
不过,在 log消息里,将等级设为2,可以看到 很多 pts late,audio buffer,什么 drop buffer ,upsampling等消息.感觉,
vlc为了同步,去除了很多 不理想的数据?
请问,这个vlc这是通过什么算法,来 判断 哪些audio或者video数据不合理,从而选择丢弃,保持同步呢?
而我自己在自己实现的播放器代码里,也是调用了live库. 我自己的pts同步策略很简单.就是 将得到的 每个rtp数据包 所带的pts, 作为同步时间.当然要以第一个得到的数据pts为参考值,之后的与之相减. audio,video各自以 第一个作为参考值的.
但很明显,效果很不理想,播放之后,很快就不同步了. 声音总是慢慢的越来越之后 . 可见,我的同步算法太幼稚了.
我是假想 用live库从server上得到的pts应该,本身就是同步好了的.到我这边,我直接用就可以了. 可是,从现象来看,以及从 vlc的log来看, 似乎还需要做 pts的误差调整.
希望,哪位熟悉这个的,帮忙解解惑.应该怎么处理pts,才能维持好同步呢?
万分感谢~