我有两个数据流,一个包含音频数据,另一个包含视频数据。
我用DirectSound
录制的声音被放入一个长度为100毫秒的缓冲区中,DirectShow
ISampleGrabbe
巫婆以每秒30帧的速度为每帧抓取一帧(每帧33,33毫秒一帧)
TimeStamping
的含义是什么?我应该将视频/音频附加到DateTime
字段,并在接收时验证哪个音频数据包与视频帧具有相同的TimeStamp
?
我知道这是一个非常难的主题,但你可以给我一个想法吗?
答案 0 :(得分:1)
这意味着每个视频/音频元素都有一个时间偏移量,表示何时必须根据视频/音频的启动时间进行播放。因此,接收端将按时间戳对接收到的元素进行排序,并按顺序播放它们,当视频或音频元素丢失时它也会等待。
您不应该为每个元素添加DateTime属性。相反,视频/音频标题应指示必须播放媒体的帧速率或频率,以及每秒钟将接收多少元素。所以一个简单的自动编号就可以了。玩家有责任对收到的元素进行排序,并检查它收到所有元素的位置是否足以在将来继续播放。