我已经写了一个RTSP服务器。它通过RTP/UDP发送h246/AAC流数据。视频的RTP发送包间隔是30ms,音频的RTP发送包间隔是20ms。时间戳是从flv-tag中提取的(我的服务器从flv文件中获取视频和音频数据)。视频播放器丢失了前几个视频帧。因此,音频比视频提前了几秒钟。为什么会这样呢?在服务器端进行流媒体播放之前,我应该暂停吗?
发布于 2011-11-18 01:23:30
有几种可能性:
在任何情况下,在我看来,你的视频播放器应用程序也有另一个问题:即使帧被丢弃,播放器也负责缓冲和同步音频和视频,并且应该能够做到这一点,而不考虑数据包丢失。
在纯粹的信息注释中,您还可以在RTSP上实现RTP/RTCP交错(因此在TCP上)。这样你就不必担心丢帧了。像live555媒体流库和VLC这样的库支持这一点。
回答你最后一个关于暂停的问题:不,这与它无关。RTSP纯粹是信令协议。数据包丢失将发生在传输(UDP)层。
https://stackoverflow.com/questions/8167932
复制相似问题