2009-07-18 15 views
0

Flash 10はSpeexオーディオフォーマットをサポートしていると思われます。私は私のSWFにいくつかのSpeexのファイルを埋め込むしたいと思います:、speexファイルを埋め込むことは可能ですか?

[Embed(source='assets/test.spx',mimeType='audio/x-speex')] 
private static const SpeexSound:Class; 

はしかし、私はエラーを取得する:

no transcoder registered for mimeType 'audio/x-speex' 

任意のアイデア?

答えて

0

私はこれ以上調べています。オプションは次のとおりです。

  1. ogg speexファイルを埋め込み、AlchemyでコンパイルしたlibOggとlibSpeexを使ってデコードします。デコードされたバイトは、SampleDataEvent.SAMPLE_DATA経由でFlashに送られます。私たちがを知ったときに、錬金術が使用されなければならない痛いほど皮肉なのは、libSpeexがどこかでFlash Playerに住んでいることを知っているです。
  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。おそらくそれを行う他の変換ツールがありますか?サーバー側で

1

Speexは実際のトランスポートフォーマットではありません。プロトコルにフレーミングが組み込まれていないため、通常はOGGストリームでラップされます(APIはSpeex API自体よりも複雑ですが... ) "audio/x-speex"は実際に "Speex in OGG"を意味します。

私はフラッシュはOGGをサポートしていることをどこでも見ていない - ので、あなたがspeexencから取得し、それらのファイルは:(

を仕事に行くされていない報道によるとフラッシュは、エンコード/ FLV形式でのSpeexをデコードする(このページによると: http://jira.red5.org/confluence/display/codecs/Speex+Codec)私はFlash 9をターゲットにしたいので(ffmpegはいくつかの手抜きで正しくエンコードするかもしれませんが)、これを試していませんが、これでどこにいてもわかるようにしてください。

+0

を問題があることですFLVファイルを埋め込むことはできないようです。 :/ – paleozogt

0

、あなたはこのだまさアウトffmpegのプロジェクトに使用することができます

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

をそして、このようなあなたのオーディオ何かエンコード:

ffmpeg -i test.wav -acodec libspeex -f flv -y speex.flv 
関連する問題