Jeff, It's in the manual: http://www.speex.org/docs/manual/speex-manual/node10.html (table 3 and 4). However, if you're asking this, you're probably trying to do something wrong, or the hard way. You probably shouldn't be taking speex output, and trying to "count bytes". If you are using the API, then you will just get the bits out, and then you'll know how many you have. If you're trying to stream an existing stream of speex-encoded bits, then it's pretty trivial to parse the stream. I wrote something to do that a long time ago (google speex_get_bits), though it may not do exactly what you want. -SteveK On 11/1/10 10:44 AM, "Jeff Ramin" <jeff.ramin at singlewire.com> wrote:> >Thanks Steve. > >Is there a document anywhere that shows how many bytes/bits of data >are produced by the speex encoding process for a given amount of time >sampling rate and quality setting? > > >On 11/01/2010 09:41 AM, Steve Kann wrote: >> Jeff, >> >> RFC-5574 is standards-track: http://tools.ietf.org/html/rfc5574 so, >> while it's not an approved standard, it's more standardized than a lot >>of >> interoperable traffic on the internets these days. >> >> The RFC specifies packetization guidelines, which is basically that >>you >> put one or more frames in a packet, and then pad the rest with 0 bits >> until you have a while number of octets. >> >> -SteveK >> >> >> >> On 11/1/10 9:55 AM, "Jeff Ramin"<jeff.ramin at singlewire.com> wrote: >> >>> I need to stream speex-encoded audio over RTP, which doesn't seem >>> to be standardized yet, so I'm gonna roll my own code. I control both >>>the >>> sending and receiving sides, so I can pretty much do what I want. >>> >>> I want each packet to contain 20ms worth of audio (sampled at 8KHz), >>> and I'm encoding using a constant bit rate and quality:6. >>> >>> Q: how do I determine how many bytes of data go into each packet? I'm >>> putting one frame (20 ms) into each packet. >>> >>> Thanks! >>> >>> -- >>> Jeff Ramin >>> Software Engineer >>> Singlewire Software >>> 2601 W Beltline Hwy #510 >>> Madison, WI 53713 >>> >>> Phone Direct - 608.661.1172 >>> www.singlewire.com >>> >>> _______________________________________________ >>> Speex-dev mailing list >>> Speex-dev at xiph.org >>> http://lists.xiph.org/mailman/listinfo/speex-dev >> > > >-- >Jeff Ramin >Software Engineer >Singlewire Software >2601 W Beltline Hwy #510 >Madison, WI 53713 > >Phone Direct - 608.661.1172 >www.singlewire.com >
Thanks again Steve. I'll search for the term you mention below. What I really want is to take the output of the speex encoder and spit it out on the network via RTP. I haven't been able to find a library or code example that does that. On 11/01/2010 12:03 PM, Steve Kann wrote:> Jeff, > > It's in the manual: > > http://www.speex.org/docs/manual/speex-manual/node10.html (table 3 and 4). > > However, if you're asking this, you're probably trying to do something > wrong, or the hard way. You probably shouldn't be taking speex output, > and trying to "count bytes". If you are using the API, then you will > just get the bits out, and then you'll know how many you have. > > If you're trying to stream an existing stream of speex-encoded bits, then > it's pretty trivial to parse the stream. I wrote something to do that a > long time ago (google speex_get_bits), though it may not do exactly what > you want. > > -SteveK > > > > > > > On 11/1/10 10:44 AM, "Jeff Ramin"<jeff.ramin at singlewire.com> wrote: > >> Thanks Steve. >> >> Is there a document anywhere that shows how many bytes/bits of data >> are produced by the speex encoding process for a given amount of time >> sampling rate and quality setting? >> >> >> On 11/01/2010 09:41 AM, Steve Kann wrote: >>> Jeff, >>> >>> RFC-5574 is standards-track: http://tools.ietf.org/html/rfc5574 so, >>> while it's not an approved standard, it's more standardized than a lot >>> of >>> interoperable traffic on the internets these days. >>> >>> The RFC specifies packetization guidelines, which is basically that >>> you >>> put one or more frames in a packet, and then pad the rest with 0 bits >>> until you have a while number of octets. >>> >>> -SteveK >>> >>> >>> >>> On 11/1/10 9:55 AM, "Jeff Ramin"<jeff.ramin at singlewire.com> wrote: >>> >>>> I need to stream speex-encoded audio over RTP, which doesn't seem >>>> to be standardized yet, so I'm gonna roll my own code. I control both >>>> the >>>> sending and receiving sides, so I can pretty much do what I want. >>>> >>>> I want each packet to contain 20ms worth of audio (sampled at 8KHz), >>>> and I'm encoding using a constant bit rate and quality:6. >>>> >>>> Q: how do I determine how many bytes of data go into each packet? I'm >>>> putting one frame (20 ms) into each packet. >>>> >>>> Thanks! >>>> >>>> -- >>>> Jeff Ramin >>>> Software Engineer >>>> Singlewire Software >>>> 2601 W Beltline Hwy #510 >>>> Madison, WI 53713 >>>> >>>> Phone Direct - 608.661.1172 >>>> www.singlewire.com >>>> >>>> _______________________________________________ >>>> Speex-dev mailing list >>>> Speex-dev at xiph.org >>>> http://lists.xiph.org/mailman/listinfo/speex-dev >> >> -- >> Jeff Ramin >> Software Engineer >> Singlewire Software >> 2601 W Beltline Hwy #510 >> Madison, WI 53713 >> >> Phone Direct - 608.661.1172 >> www.singlewire.com >> >-- Jeff Ramin Software Engineer Singlewire Software 2601 W Beltline Hwy #510 Madison, WI 53713 Phone Direct - 608.661.1172 www.singlewire.com
Have you tried typing "speex rtp" into google code search? It gives lots of examples of real applications which do exactly that. http://www.google.com/codesearch?as_q=speex+rtp -SteveK On 11/1/10 1:13 PM, "Jeff Ramin" <jeff.ramin at singlewire.com> wrote:> >Thanks again Steve. I'll search for the term you mention below. > >What I really want is to take the output of the speex encoder and spit >it out on the network via RTP. I haven't been able to find a library or >code >example that does that. > > >On 11/01/2010 12:03 PM, Steve Kann wrote: >> Jeff, >> >> It's in the manual: >> >> http://www.speex.org/docs/manual/speex-manual/node10.html (table 3 and >>4). >> >> However, if you're asking this, you're probably trying to do something >> wrong, or the hard way. You probably shouldn't be taking speex output, >> and trying to "count bytes". If you are using the API, then you will >> just get the bits out, and then you'll know how many you have. >> >> If you're trying to stream an existing stream of speex-encoded bits, >>then >> it's pretty trivial to parse the stream. I wrote something to do that a >> long time ago (google speex_get_bits), though it may not do exactly what >> you want. >> >> -SteveK >> >> >> >> >> >> >> On 11/1/10 10:44 AM, "Jeff Ramin"<jeff.ramin at singlewire.com> wrote: >> >>> Thanks Steve. >>> >>> Is there a document anywhere that shows how many bytes/bits of data >>> are produced by the speex encoding process for a given amount of time >>> sampling rate and quality setting? >>> >>> >>> On 11/01/2010 09:41 AM, Steve Kann wrote: >>>> Jeff, >>>> >>>> RFC-5574 is standards-track: http://tools.ietf.org/html/rfc5574 >>>>so, >>>> while it's not an approved standard, it's more standardized than a lot >>>> of >>>> interoperable traffic on the internets these days. >>>> >>>> The RFC specifies packetization guidelines, which is basically that >>>> you >>>> put one or more frames in a packet, and then pad the rest with 0 bits >>>> until you have a while number of octets. >>>> >>>> -SteveK >>>> >>>> >>>> >>>> On 11/1/10 9:55 AM, "Jeff Ramin"<jeff.ramin at singlewire.com> wrote: >>>> >>>>> I need to stream speex-encoded audio over RTP, which doesn't seem >>>>> to be standardized yet, so I'm gonna roll my own code. I control both >>>>> the >>>>> sending and receiving sides, so I can pretty much do what I want. >>>>> >>>>> I want each packet to contain 20ms worth of audio (sampled at 8KHz), >>>>> and I'm encoding using a constant bit rate and quality:6. >>>>> >>>>> Q: how do I determine how many bytes of data go into each packet? I'm >>>>> putting one frame (20 ms) into each packet. >>>>> >>>>> Thanks! >>>>> >>>>> -- >>>>> Jeff Ramin >>>>> Software Engineer >>>>> Singlewire Software >>>>> 2601 W Beltline Hwy #510 >>>>> Madison, WI 53713 >>>>> >>>>> Phone Direct - 608.661.1172 >>>>> www.singlewire.com >>>>> >>>>> _______________________________________________ >>>>> Speex-dev mailing list >>>>> Speex-dev at xiph.org >>>>> http://lists.xiph.org/mailman/listinfo/speex-dev >>> >>> -- >>> Jeff Ramin >>> Software Engineer >>> Singlewire Software >>> 2601 W Beltline Hwy #510 >>> Madison, WI 53713 >>> >>> Phone Direct - 608.661.1172 >>> www.singlewire.com >>> >> > > >-- >Jeff Ramin >Software Engineer >Singlewire Software >2601 W Beltline Hwy #510 >Madison, WI 53713 > >Phone Direct - 608.661.1172 >www.singlewire.com >