[Speex-dev] jspeex question

Jeff Ramin jeff.ramin at singlewire.com
Wed Nov 18 08:45:33 PST 2009


Thanks for the help folks, but I got this working a couple hours ago.  =)
I'm quite please after struggling with it for a few days.

I just needed to take each audio tag from the FLV file and feed the contents
of the tag (except for the first byte) to the jspeex decoder and write the
results to a file.

Jozsef - it is possible to specify 8KHz in the flash client and decode it as
such. Speex definitely does not need to be 16KHz.


Jozsef Vass wrote:
> The link is http://www.adobe.com/devnet/rtmp/. TC Message stands for TinCan message. It is 11 bytes long, first byte is message type, three bytes of payload length four bytes of timestamp and three bytes of stream ID. 
>
> The first byte of the payload for audio message is the format byte and the rest of the byte is the payload.
>
> Jozsef
>
>
>
> ----- Original Message ----
> From: Jeff Ramin <jeff.ramin at singlewire.com>
> To: Jozsef Vass <jozsef_vass at yahoo.com>
> Cc: speex-dev at xiph.org
> Sent: Wed, November 18, 2009 6:09:56 AM
> Subject: Re: jspeex question
>
>
> Is there a document somewhere that describes speex-encoded FLV files?
> What is a TC message?
>
> Thanks.
>
>
> Jozsef Vass wrote:
>   
>> FLV contains TC messages? TC message payload contains a format byte and speex frames (up to eight). In the format byte 0xb0 indicates speex. Speex is always 16 kHz, 16 bit, mono.
>>
>> Jozsef
>>
>>
>> Message: 1
>> Date: Mon, 16 Nov 2009 14:40:20 -0600
>> From: Jeff Ramin <jeff.ramin at singlewire.com>
>> Subject: [Speex-dev] jspeex question
>> To: speex-dev at xiph.org
>> Message-ID: <4B01B8B4.8020904 at singlewire.com>
>> Content-Type: text/plain; charset=ISO-8859-1; format=flowed
>>
>>
>> I assume this list is for the jspeex project, correct?
>>
>> What I am trying to achieve: I have a FLV (flash audio) file that contains
>> speex-encoded data. I want to read that file, extract the audio bits, and
>> convert them to a different format.
>>
>> I've written a little java app to do this, but I receive this error when
>> running it:
>>
>> Exception in thread "main" java.io.StreamCorruptedException: More than 
>> two sideband layers found
>>
>> I've got a feeling the SpeexDecoder class wants/assumes a certain amount
>> of data when decoding and I'm not meeting that expectation.
>>
>> Is that correct? How much data should I hand to the decoder when I call
>> the processData() method?
>>
>> Thanks!
>>
>>  
>>     
>
>
>   


-- 
Jeff Ramin
Software Engineer
Singlewire Software
PO Box 46218
Madison, WI 53744-6218

Phone Direct - 608.298.1024
www.singlewire.com



More information about the Speex-dev mailing list