в flex, можно ли встраивать файлы speex? - PullRequest
0 голосов
/ 18 июля 2009

Flash 10 предположительно имеет поддержку аудиоформата Speex. Я хотел бы добавить некоторые файлы Speex в мой SWF:

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

Однако я получаю сообщение об ошибке:

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

Есть идеи?

Ответы [ 3 ]

1 голос
/ 18 июля 2009

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

Я нигде не видел, чтобы Flash поддерживал OGG - поэтому те файлы, которые вы получаете из speexenc, не будут работать: (

Как сообщается, Flash кодирует / декодирует Speex в формате FLV (в соответствии с этой страницей: http://jira.red5.org/confluence/display/codecs/Speex+Codec). Я не пробовал этого, потому что хочу настроить таргетинг на Flash 9 (возможно, ffmpeg будет корректно кодироваться с некоторой тряской) знаю, получишь ли ты что-нибудь с этим.

0 голосов
/ 11 декабря 2011

На стороне сервера вы можете использовать этот трикотажный проект ffmpeg:

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

И закодируйте ваш звук примерно так:

ffmpeg -i test.wav -acodec libspeex -f flv -y speex.flv
0 голосов
/ 30 июля 2009

Я исследовал это еще немного. Вот варианты:

  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 в настоящее время не поддерживает SWF-файлы, отличные от MP3. Grr. Возможно, есть другие инструменты конвертации, которые это сделают?

...