2009-07-18 6 views
0

Flash 10 предположительно поддерживает аудиоформат Speex. Я хотел бы, чтобы встроить некоторые файлы Speex в моем SWF:в flex, можно ли вставлять 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 для его декодирования. Декодированные байты могут быть поданы во Flash через SampleDataEvent.SAMPLE_DATA. Его мучительно иронично, что Алхимия должна использоваться, когда мы знаем, что libSpeex где-то живет в Flash Player.
  2. Вы не можете вставлять FLV, но вы можете вставлять SWF, поэтому конвертируйте Speex FLV в Speex SWF. Преобразование может быть сделано с помощью FFmpeg, как это:

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

    Однако, что будет, к сожалению, автоматически конвертировать аудио в MP3 внутри SWF. Вы должны быть в состоянии сохранить кодек как этот

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

    но FFmpeg не поддерживает не-MP3 СФБ. Grr. Возможно, есть другие инструменты конверсии, которые это сделают?

1

Speex не является реальным транспортным форматом - он не имеет встроенного в протокол кадрирования, поэтому он обычно завернут в поток OGG (чей API, к сожалению, сложнее, чем сам Speex API, но я отвлекаюсь ...) Таким образом, «audio/x-speex» действительно означает «Speex in OGG».

я не видел нигде, что вспышка поддерживает OGG - так что те файлы, которые вы получаете от speexenc не будет работать :(

сообщениям флэш кодирует/декодирует Speex в формате FLV (по этой странице: 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 
Смежные вопросы