Pergunta

O Flash 10 supostamente tem suporte para o formato Speex Audio. Eu gostaria de incorporar alguns arquivos Speex no meu SWF:

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

No entanto, recebo o erro:

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

Alguma ideia?

Foi útil?

Solução 2

Eu tenho pesquisado um pouco mais. Aqui estão as opções:

  1. Incorpore um arquivo OGG Speex e use um libogg e libex compilados por alquimia para decodificá-lo. Os bytes decodificados podem ser alimentados em flash via SomeDataateEvent.sample_data. É dolorosamente irônico que a alquimia deve ser usada, quando nós conhecer Esse Libspeex vive no flash player em algum lugar.
  2. Você não pode incorporar FLVs, mas pode incorporar SWFs, portanto, converta um Speex FLV em um SPEE SWF. A conversão pode ser feita com FFMPEG como este:

    $ ffmpeg -i test-with-speex.flv -vn test.swf
    

    No entanto, isso infelizmente vai conquistar automaticamente o áudio em MP3 dentro do SWF. Você deve ser capaz de preservar o codec como este

    $ ffmpeg -i test-with-speex.flv -vn -acodec libspeex test.swf
    

    Mas o FFMPEG atualmente não suporta SWFs não-MP3. Grr. Talvez haja outras ferramentas de conversão que o farão?

Outras dicas

O Speex não é um formato de transporte real - ele não possui enquadramento embutido no protocolo, por isso é normalmente embrulhado em um fluxo OGG (cuja API é infelizmente mais complicada que a própria API Speex, mas eu discordo ...) Então "áudio /x-speex "realmente significa" speex em ogg ".

Eu não vi em nenhum lugar que o flash suporta OGG - então aqueles arquivos que você obtém speexenc Não vai funcionar :(

Alegadamente, o flash codifica/decodifica o Speex em formato FLV (de acordo com esta página: http://jira.red5.org/confluence/display/codecs/speex+codec). Eu não tentei isso porque quero segmentar o Flash 9 (talvez o FFMPEG codifique corretamente com algumas brincadeiras), mas me avise se você chegar a algum lugar com isso.

No lado do servidor, você pode usar este projeto FFMPEG complicado:

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

E codifique seu áudio algo assim:

ffmpeg -i test.wav -acodec libspeex -f flv -y speex.flv
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top