0

I am very new to the EDSDK so sorry for maybe weird question in some places.

Is it possible to access a video stream and perform some operations on it using the SDK? I need this to capture very thin region (ROI) of a specified size (for example 3840x10 px) for each frame in the stream. Don`t understand this as compression of a frame, aspect ratios are not needed to follow. These changes in theory should increase fps, because the region will be very thin (Should they?).

I found the code snippet below from the official documentation, although it seems this causes only to send a signal for starting and stopping video rec, without accessing the stream.

EdsUInt32 record_start = 4; // Begin movie shooting
err = EdsSetPropertyData(cameraRef, kEdsPropID_Record, 0, sizeof(record_start), &record_start);
EdsUInt32 record_stop = 0; // End movie shooting
err = EdsSetPropertyData(cameraRef, kEdsPropID_Record, 0, sizeof(record_stop), &record_stop);

I would be very thanksful for any suggestions and help. Please feel free to ask any additional information!

Michael
  • 1,170
  • 2
  • 14
  • 35
  • I'm not familiar with this particular SDK but in my experience this kind of SDK's comes with `Examples` or similar folder with sample applications, if exist you should look for (as you guessed) `Capture` or `Video Capture` app. In source file there must be captured video frame buffer pointers. If you came this far, rest will be easy. – the kamilz Nov 10 '17 at 06:44
  • @thekamilz thanks for suggestion, I spent more time to read their documentation and it seems they provide a possibility only to send signals for a video recording start and stop, but edititind frames exactly in a video stream is unavailable, probably this is changeble at firmware level – Michael Nov 10 '17 at 08:32
  • I see. So this SDK is different than I thought. Aynway did you check this one?: https://stackoverflow.com/questions/22965982/canon-edsdk-saving-image-in-my-pc?rq=1 – the kamilz Nov 10 '17 at 08:53
  • @thekamilz Yes, I was reading about a memory stream also, the main point of memory streams in a EDSDK as I understand is that first of all you send signals for taking a picture, recording a video etc., and when the picture is taken or the video is recorded, you can load object in the memory stream and do some operations on it. That will not affect video fps or other parametrs, because the initial video stream or picture object was modeled and transfered to a camera processor as usually. Instead, my task was to access initial stream object, reduce dimensions, etc., so this could increase fps – Michael Nov 10 '17 at 09:28
  • @thekamilz If I am wrong, please correct me, because C/C++ are not languages I am working with mainly and EDSDK is kind of new thing for me, but I did that conclusions after reading some main points from their documentation. – Michael Nov 10 '17 at 09:35

1 Answers1

1

This sdk doesnt allow you to directly get access to hi res streams like industrial cams would. You can access over USB ~960x640 liveview images in sequential JPGs. Movie recording can only be done to internal card, and after stopping transfering the result. Outside of this SDk, use of an external HDMI recorder gives access to a near realtime feed at max FullHD1080p, depending on model and not always “clean”.

gdh
  • 498
  • 3
  • 14