Flash 10 据说支持 Speex 音频格式。我想在我的 SWF 中嵌入一些 Speex 文件:
[Embed(source='assets/test.spx',mimeType='audio/x-speex')]
private static const SpeexSound:Class;
但是,我收到错误:
no transcoder registered for mimeType 'audio/x-speex'
有任何想法吗?
Flash 10 据说支持 Speex 音频格式。我想在我的 SWF 中嵌入一些 Speex 文件:
[Embed(source='assets/test.spx',mimeType='audio/x-speex')]
private static const SpeexSound:Class;
但是,我收到错误:
no transcoder registered for mimeType 'audio/x-speex'
有任何想法吗?
Speex 不是真正的传输格式——它没有内置在协议中的帧,所以它通常包装在 OGG 流中(不幸的是,它的 API 比 Speex API 本身更复杂,但我离题了......)所以“音频/x-speex”真正的意思是“OGG 中的 Speex”。
我还没有看到 Flash 支持 OGG 的任何地方——所以你从中获得的那些文件speexenc
将无法工作:(
据报道,Flash 以 FLV 格式对 Speex 进行编码/解码(根据此页面:http: //jira.red5.org/confluence/display/codecs/Speex+Codec)。我没有尝试过这个,因为我想以 Flash 9 为目标(也许 ffmpeg 会通过一些摆弄来正确编码),但如果你能得到任何结果,请告诉我。
我一直在研究这个。以下是选项:
您不能嵌入 FLV,但可以嵌入 SWF,因此将 Speex FLV 转换为 Speex SWF。可以使用 ffmpeg 进行转换,如下所示:
$ ffmpeg -i test-with-speex.flv -vn test.swf
但是,不幸的是,这会在 SWF 中自动将音频转换为 MP3。您应该能够像这样保留编解码器
$ ffmpeg -i test-with-speex.flv -vn -acodec libspeex test.swf
但 ffmpeg 目前不支持非 MP3 SWF。Grr。也许还有其他转换工具可以做到这一点?
在服务器端,您可以使用这个被欺骗的 ffmpeg 项目:
http://code.google.com/p/xuggle-ffmpeg/
并对您的音频进行如下编码:
ffmpeg -i test.wav -acodec libspeex -f flv -y speex.flv