Hello,

I am trying to stream real-time video data over RTP using live555 library with MJPEG format. To to so, I created a derived class of JPEGVideoSource. Within the derived class, I have implemented the following methods:

a) The doGetNextFrame() method which dequeue an RGB video frame, converts it to YUV420 and then perform JPEG video compression.
b) The type() method returns 1 (based on Elphel example)
c) The width() and height() methods returns the frame width and height as per JPEG header computed in (a) d) The qFactor() parameter was determined by scaling the ffmpeg's quantizer parameter [0..31] to a jpeg quality factor in the range [0..100].

I am less sure about (d). However, I could observe that when ffmpeg quantizer=4, setting qFactor() = 100-(4/31*100) = 87 gives "proper color" on the receiving side. However, it is still not right. The received video is very jumpy and, typically, the first 100 pixels or so appears at the end of each line of video. I wonder what is going wrong.

I know my JPEG encoder/decoder works fine as I did perform the following tests:
1) encode -> decode -> display without using live555
2) encode -> save to jpeg file -> open with any image viewer

Also I should add that I am only writing the JPEG payload (not the 623 words header) to fTo buffer. and therefore I set fFrameSize = size-623

On the receiving end (when I combine live555 with ffmpeg jpeg codec), here is the errors returned by ffmpeg decoder:

[mjpeg @ 6BEA47E0]mjpeg_decode_dc: bad vlc: 0:0 (003DBEE0)
[mjpeg @ 6BEA47E0]error dc
[mjpeg @ 6BEA47E0]error y=29 x=34
[mjpeg @ 6BEA47E0]mjpeg_decode_dc: bad vlc: 0:0 (003DBEE0)
[mjpeg @ 6BEA47E0]error dc
[mjpeg @ 6BEA47E0]error y=29 x=35
[mjpeg @ 6BEA47E0]mjpeg_decode_dc: bad vlc: 0:0 (003DBEE0)
[mjpeg @ 6BEA47E0]error dc
[mjpeg @ 6BEA47E0]error y=29 x=34
[mjpeg @ 6BEA47E0]mjpeg_decode_dc: bad vlc: 0:0 (003DBEE0)
[mjpeg @ 6BEA47E0]error dc
[mjpeg @ 6BEA47E0]error y=29 x=34
[mjpeg @ 6BEA47E0]mjpeg_decode_dc: bad vlc: 0:0 (003DBEE0)
[mjpeg @ 6BEA47E0]error dc
[mjpeg @ 6BEA47E0]error y=29 x=34
[mjpeg @ 6BEA47E0]mjpeg_decode_dc: bad vlc: 0:0 (003DBEE0)
[mjpeg @ 6BEA47E0]error dc
[mjpeg @ 6BEA47E0]error y=29 x=35
[mjpeg @ 6BEA47E0]mjpeg_decode_dc: bad vlc: 0:0 (003DBEE0)
[mjpeg @ 6BEA47E0]error dc
[mjpeg @ 6BEA47E0]error y=29 x=37

Any help on that issue would be greatly appreciated
Silvain

_______________________________________________
live-devel mailing list
live-devel@lists.live555.com
http://lists.live555.com/mailman/listinfo/live-devel

Reply via email to