0

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'

有任何想法吗?

4

3 回答 3

1

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 会通过一些摆弄来正确编码),但如果你能得到任何结果,请告诉我。

于 2009-07-18T17:41:16.807 回答
0

我一直在研究这个。以下是选项:

  1. 嵌入 ogg speex 文件并使用 Alchemy 编译的 libOgg 和 libSpeex 对其进行解码。解码后的字节可以通过SampleDataEvent.SAMPLE_DATA输入 Flash 。当我们知道libSpeex 存在于 Flash Player 中的某个地方时,必须使用 Alchemy,这非常讽刺。
  2. 您不能嵌入 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。也许还有其他转换工具可以做到这一点?

于 2009-07-29T20:52:46.963 回答
0

在服务器端,您可以使用这个被欺骗的 ffmpeg 项目:

http://code.google.com/p/xuggle-ffmpeg/

并对您的音频进行如下编码:

ffmpeg -i test.wav -acodec libspeex -f flv -y speex.flv
于 2011-12-10T20:22:31.637 回答