我已经构建了一个小应用引擎应用,可让用户上传短片。一些录音是在浏览器中使用https://github.com/mattdiamond/Recorderjs完成的,它创建了wav文件。为了节省空间,我想在将它们写入应用程序引擎数据存储区之前将它们转换为ogg,以便在我将录音回放给用户时使用较少的传出带宽。
我该怎么做?我google了一下,显然有一个名为oggenc的命令行工具,它编码为ogg - 但我很确定我无法在app引擎上安装它(或者,即使我可以安装它,也可以调用它)。
我在Encode audio from getUserMedia() to a .OGG in JavaScript找到了一个类似的问题 - 这链接到https://github.com/jpemartins/speex.js,这个项目看起来最终可以在javascript中从wav转换为ogg(这会很棒),但是,据我所知,目前还没有这样做。在https://github.com/jpemartins/speex.js/issues/4,作者提到了WAV - > ... - > OGG还不可能。
我还应该尝试什么?
编辑:我的应用引擎代码是用Python编写的,所以另一种可能性就是在那里进行转换,使用可以将wav转换为ogg的python模块。我认为http://pymedia.org/可以做到这一点,但我必须以某种方式将其安装在应用引擎上 - 这可能吗?
答案 0 :(得分:2)
Pymedia不是纯粹的python,因此你无法在app引擎上使用它。
你可能想在Compute Engine上构建一些东西来做这件事。
答案 1 :(得分:1)
如果可以用AppEngine中的fork chris-rudmin/Recorderjs(demo page)替换Matt Diamond的recorderjs,这应该是可行的。或者首先编码为WAV并使用opusenc.js(demo page),这是Opusenc工具的Emscripten端口,将临时WAV文件转换为Ogg-Opus客户端。