2011-08-09 45 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(); 
} 
相關問題