我正在写一个应用程序,我录制音频并将音频文件上传到网络上。为了加快上传速度,我想在完成录制之前就开始上传。
我正在创建的文件是一个WAV文件。我的计划是使用多个数据块。因此,我使用的不是常规编码(RIFF,fmt,data) (RIFF,fmt,data,data,...,data)。第一个问题是,RIFF头需要整个文件的总长度,但在流式传输音频时,这当然是未知的(我现在使用一个任意的数字)。另一个问题是,我不确定它是否有效,因为Audacity无法识别文件,Windows Media Player打开文件但只播放了很小的一部分。我一直在看WAV的规格,但还没有找到答案。
有什么建议吗?
发布于 2010-05-06 05:17:14
您只需使用支持追加的容器格式,而无需编辑标题。
我建议使用原生的PCM样品。它们可以随意转换为任何其他格式。
Audacity将从文件->导入->原始数据菜单导入原始字节。
另一种选择可以是无损音频编解码器,例如可流容器格式内的FLAC。(As done by a Czech web radio station)
我注意到VLC可以从声卡中压缩和流式传输FLAC-in-OGG。从那里开始,在服务器端存储或解压缩流应该是一个简单的步骤。
发布于 2019-03-19 18:54:44
我只使用了一个数据块,并将ChunkSize设置为0xFFFFFFFF,将Subchunk2Size设置为0xFFFFFFFF,从而成功地流式传输了wav。生成的文件并不完全符合规格,但当通过<audio>
标签嵌入时,Chrome可以毫无问题地实时播放它。下载的文件也是可播放的。
发布于 2010-03-31 23:45:22
你要上传到哪里?你自己的网站?听起来您需要一些服务器端代码来获取您的原始样本上传,并在服务器上将它们组装成一个有效的WAV文件(正确的文件长度字段,一个数据块)。
但如果你真的想加快上传速度,我认为你实际上是想上传MP3编码的帧,并让服务器将这些帧组装成一个MP3文件。我担心这会更复杂。
https://stackoverflow.com/questions/2551943
复制相似问题