Кодирование Speex в звуковой поток SWF версии 10 - PullRequest
0 голосов
/ 01 марта 2012

В спецификации Adobe SWF File Format Specification v10 говорится, что данные, закодированные Speex, могут использоваться для потоковой передачи звука (небольшое пояснение определения «потокового звука» здесь: «Формат файла SWF поддерживает режим потоковой передачи звука, в котором воспроизводятся звуковые данные». и загружается в точной синхронизации с временной шкалой. В этом режиме звуковые пакеты сохраняются с каждым кадром. "- это не имеет никакого отношения к потоковой передаче FMS, не требуется ActionScript - просто обычный SWF).

Это должно быть достигнуто путем использования одного тега SoundStreamHead2 с StreamSoundCompression, равным 11 (что означает «Speex», как указано в вышеупомянутой спецификации), а затем N пар тегов ShowFrame и SoundStreamBlock. Однако это не работает - Flash Player не воспроизводит звук при воспроизведении созданного мной SWF-файла. Обратите внимание, что я могу генерировать такие SWF-файлы, содержащие потоковые данные MP3 или PCM, которые затем воспроизводятся идеально. Только не Speex ...

Я строго соответствую спецификации: http://www.adobe.com/content/dam/Adobe/en/devnet/swf/pdf/swf_file_format_spec_v10.pdf, стр. 220.

Я попробовал подход потокового звука и звука события - оба не работают.

Более того, я не смог найти (где-либо в Интернете) ни одного образца SWF с потоковым звуком (или звуком события), закодированным в Speex. Они вообще существуют? Во всяком случае, Flash CS5.5 не способен их генерировать ...

Я просто хотел бы знать, можно ли найти поддержку Speex для потокового звука SWF где-либо еще, кроме спецификации. (Я знаю, что FLV может содержать Speex и что Flash Player может передавать Speex с микрофона, а FMS может передавать Speex своим клиентам, но это не то, о чем я прошу)

С уважением,

JK

1 Ответ

0 голосов
/ 02 марта 2012

Я нашел документацию формата FLV более полезной. Ищите здесь (стр. 70) для формата тега, после этого просто поместите закодированный вывод Speex.

Просто помните, что вспышка поддерживает только 16 кГц / моно / 16 бит при кодировании с использованием Speex

...