[Live-devel] Streaming JPEGs from Memory using LIVE555

nikhiln at paxit.com nikhiln at paxit.com
Tue Nov 13 17:15:53 PST 2007


Hey Ross, 

I had shot you an email earlier this morning with regards to an issue with 
being unable to correctly open a file saved in memory as a JPEG. Well we 
soon figured out that fTo gets only the image data and the JPEG header is 
sent separately and that is what had caused the problem. Originally I was 
providing the entire JPEG array to fTo and this caused streaming issues. 

Now we have run into another issue! We are using our own library to create 
the JPEG in memory on the Server. This library has it's own method for 
setting the compression ratio(0-99) and we set that compression ratio on the 
fly. What we are seeing is that the JPEG image displayed at the client 
side is much more lossy-(ier) than it should be for the value of the 
compression ratio. We have written the JPEG from memory to a file on the 
Server side and it does not have nearly the amount of compression that 
arrives at the client. I have a feeling this is partly in regards to the 
fLastQfactor on the server. I tried providing the same value to fLastQfactor 
as the compression ratio when we create the jpeg in memory and it did not 
seem to help. Only when the compression is set to about 95~99 is when we see 
an image that isn't severely compressed. How is the fLastQfactor related to 
how the client side receives and decompresses the JPEG? We again are using 
our own custom library to decode and display the JPEG on the client side, 
yet how we set fLastQfactor on the server is affecting the compression ratio 
that is recognized on the client side. We assumed that since we are 
encoding and decoding the jpeg with our own library that all of the 
information as far as compressing/decompressing the images would come from 
our library rather than any code from the server or client. 

Our desire here is simply to have the client recognize the same amount of 
comression as is set on the server. Essentially whatever we compressed to 
memory on the server is what we want to display on the client side. 

Do we need to derive our own create Qfactor table on the server? 

Hope to hear from you at your earliest convenience. Any help in this regard 
Would be seriously appreciated. 

Thanks, 

Nikhil. 



More information about the live-devel mailing list