2011-08-09 44 views
0

我正在构建一个流媒体视频服务器。现在,我必须将视频文件的序列数据(数据包)传输到客户端。但我不知道一个计时器打勾来传输数据包。如果我传输得太快,客户端没有足够的时间解码和显示。我不知道它是否取决于视频文件的比特率或其他信息。我使用的视频文件是WMV。我用于流式处理的协议是Windows Media HTTP Streaming。我正在用C#编程。将视频文件流式传输到客户端的适当时间间隔?

视频文件的信息:

  • 音频:Windows媒体音频48000Hz立体声64Kbps的[原始音频0]
  • 视频:Windows媒体视频9个的320x240 24.00fps 230Kbps的[RAW视频1]

我应该使用什么公式来计算传输数据的时间间隔?

回答

0

你可以计算出多少数据要发送基于视频文件的比特率(你说的是〜300Kbps的每秒= 38400个字节),在伪代码这将是这样的:

startTime = Now; 
bytesStreamed = 0; 
videoFileDataRate = 38400; 

while(streaming) 
{ 
    bytesStreamed += streamSomePackets(); 
    streamDuration = Now - startTime; 
    var secondsStreamed = bytesStreamed /videoFileDataRate; 
    if(streamDuration < secondsStreamed * 0.99) 
    Throttle(); 
} 
相关问题