将视频文件流式传输到客户端的适当时间间隔?

时间:2011-08-09 14:20:16

标签: c# timer streaming video-streaming formula

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

视频文件的信息:

  • 音频:Windows Media Audio 48000Hz立体声64Kbps [原始音频0]
  • 视频:Windows Media Video 9 320x240 24.00fps 230Kbps [原始视频1]

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

1 个答案:

答案 0 :(得分:0)

您可以根据视频文件的比特率(您所说的~300Kbps = 38400字节/秒)计算要发送的数据量,在伪代码中,这可能是这样的:< / p>

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

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