大家好,本来刚开始从事DS的开发,做的是一个接受HELIX广播的RTSP客户端程序,有几个问题想请教大家:
1,通过RTP协议可以分别接收到音视频的包,解包以后存放在缓存队列里准备播放,我现在很粗糙地分别开了两个Filter Builder,用了两个智能renderer播放,导致音视频不同步比较严重,想使用DS的质量控制,不知道该如何下手,该如何将这两路的
流合并到一个filter manager里面呢?
2,如果需要做智能控制,请问该如何处理RTP包的时间戳和播放时SAMPLE的时间戳问题。RTP包的同步时不时需要做?如果要做质量控制,是不是还需要对待播放的数据SAMPLE时间戳?在何时打呢?
希望有经验的大虾帮忙解惑……
------解决方案--------------------------------------------------------
首先,肯定是不能用两个graph的,那样肯定不会同步的
------解决方案--------------------------------------------------------
所有Filter放在同一个Graph里,其次要以首要推动源Filter为主要参考时钟源,即Audio push filter.
另外要视网络环境和系统要求确定一个缓冲区间,大小由Audio的filter与允许时间延迟来决定
最好是以Audio RTP Receiver的Filter为主,采用2条RTP通道来分别传输Audio及Video,保证Audio的传输质量,以Audio的时间和带宽来控制Video,必要时丢弃一部份Video frame