2010-03-31 157 views
2

我正在寫一個應用程序,用於錄製音頻並通過網絡上傳音頻文件。爲了加快上傳速度,我想在完成錄製之前開始上傳。如何流式傳輸WAV文件?

我創建的文件是WAV文件。我的計劃是使用多個數據塊。因此,而不是我正在使用的正常編碼(RIFF,fmt,data)(RIFF,fmt,data,data,...,data)。第一個問題是RIFF頭部需要整個文件的總長度,但當傳輸音頻(我現在使用任意數字)時,這當然是未知的。另一個問題是我不確定它是否有效,因爲Audacity不能識別該文件,並且Windows Media Player打開該文件但只播放一小部分。我一直在閱讀WAV規範,但還沒有找到答案。

有什麼建議嗎?

+0

爲什麼它必須是WAV?你如何分流? – intgr 2010-05-05 21:20:33

回答

0

你上傳到哪裏?你自己的網站?聽起來就像你需要一些服務器端代碼,將原始樣本上傳並將它們組裝成服務器上的有效WAV文件(正確的文件長度字段,一個數據塊)。

但是,如果你真的想加快上傳速度,我會認爲你實際上需要上傳MP3編碼幀,並讓服務器將這些幀彙編成一個MP3文件。恐怕這更復雜。

3

您將只需使用支持添加而不編輯標題的容器格式。

我建議原始PCM樣本。他們可以隨意轉換爲其他任何東西。

Audacity將從文件 - >導入 - >原始數據菜單中導入原始字節。

另一種選擇可能是無損音頻編解碼器,例如可流式容器格式的FLAC。 (As done by a Czech web radio station)

我注意到VLC可以壓縮,並從聲卡流FLAC功能於OGG。應該是從那裏存儲或解壓縮服務器端流的簡單步驟。