> What is different of the format yuv and yours jp4? How can I get yuv-data? > If I want to get high quality image not to be compressed, whether I choose > the yuv data or jp4 data? Thank you!
See https://wiki.elphel.com/wiki/JP4 JP4 is 4:0:0 YCbCr encoded. After reordering back blocks of pixels you get the pixel values of the Bayer pattern. Try this python script <https://wiki.elphel.com/wiki/JP4#python> for deblocking. After deblocking you can: * unapply gammas to get to linear scale * unapply gains to work with unamplified data I want to get camera image raw data(.jp4) buffer, but I cannot get it > through gstreamer. I should do a demo app with C/C++, how can I get the > camera image raw data, and keep the two camera sync? > > The sensors are always in sync (if exposure time is less than 1/fps). Your problem is to download matching jp4 images from different ports buffers, correct? If yes then here's what you can do in your program - example for port 0 and port 1: *I.* Without stopping compressor/sensors *step 1* Read current image pointers in port 0 and port 1 buffers: port0: http://192.168.0.9:2323/pointers port1: http://192.168.0.9:2324/pointers (responses are xml, extract <this>...</this> value) port0: > ... <this>55801952</this> ... port1: > ... <this>xxxxxxx1</this> ... And so: $THISPOINTER0 = 55801952 $THISPOINTER1 = xxxxxxx1 *step 2 *Read meta data http://192.168.0.9:2323/$THISPOINTER0/meta http://192.168.0.9:2324/$THISPOINTER1/meta Responses are xml - extract and compare timestamps (from <timestamp>...</ timestamp>) *step 2a *If timestamps don't match and 'port 0 timestamp' < 'port 1 timestamp' - you will need check one frame back for port 1. Note: there a short help how to navigate the buffers: http://192.168.0.9:2323 port1: http://192.168.0.9:2324/$THISPOINTER1/prev/pointers > ... <this>xxxxxxx2</this> ... $NEWPOINTER1 = xxxxxxx2 next read timestamp from http://192.168.0.9:2324/$NEWPOINTER1/meta and compare. If 'port 0 timestamp' still < 'port 1 timestamp' then $THISPOINTER1 = $NEWPOINTER1, repeat this step *step 3* When timestamps are finally matching, download image(s): http://192.168.0.9:2323/$THISPOINTER0/img http://192.168.0.9:2324/$THISPOINTER1/img Here, we are assuming all requests are performed quickly enough *II.* With stopping triggering *step 1 * Set TRIG_PERIOD=0 ... next steps are the same as in I. but most likely the latest timestamps will match and you won't have to navigate through buffers: meta: http://192.168.0.9:2323/meta meta: http://192.168.0.9:2324/meta image: http://192.168.0.9:2323/img image: http://192.168.0.9:2324/img *step X* Restore TRIG_PERIOD I could probably make a script to do those things and put on the camera. https://wiki.elphel.com/wiki/Using_gstreamer please look at the red > rectangle area, what is this mean? This is outdated information. It should work as described here <https://wiki.elphel.com/wiki/Tmp_manual#RTSP>. So, after you start the streamers: > elphel393~# /usr/bin/str To watch a stream with gstreamer from PC, example: port0: gst-launch-1.0 rtspsrc location=rtsp://192.168.0.9:554 ! rtpjpegdepay ! jpegdec ! videoscale ! video/x-raw,width=640,height=480 ! xvimagesink sync=false port1: gst-launch-1.0 rtspsrc location=rtsp://192.168.0.9:554 ! rtpjpegdepay ! jpegdec ! videoscale ! video/x-raw,width=640,height=480 ! xvimagesink sync=false And this web paper introduce an stream of yuv-format(“gst-launch -v > rtspsrc location=rtsp://192.168.0.9:554 ! queue ! rtpjpegdepay ! queue ! > jpegdec ! queue ! \ videorate ! capsfilter caps="video/x-raw-yuv, format=(fourcc)I420, > width=(int)1024, height=(int)768, framerate (fraction)25/1" ! \ queue ! avimux ! filesink location=/tmp/test.avi”), but in you setting web > of image, I cannot find the value point to the yuv Value point? This is an old example - I cannot make it work. Best regards, Oleg Dzhimiev Electronics Engineer phone: +1 801 783 5555 x124 Elphel, Inc.
_______________________________________________ Support-list mailing list Support-list@support.elphel.com http://support.elphel.com/mailman/listinfo/support-list_support.elphel.com