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

本文关键字:当时 时间 客户端 文件 视频 传输 | 更新日期: 2023-09-27 18:05:13

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

视频文件信息:

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

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

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

您可以根据视频文件的比特率计算要发送多少数据(您说的是~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();
}