I’ve found myself with the need to incorporate some live video capture+playback inside an app that runs in an installation environment ( think of it as a less cheesy videobooth of sorts ). I’ve done some fairly extensive research, but thought the community at large would be able to weigh in with some valuable insights - possibly someone’s done something similar in the past.
I’ve done some automation using a Canon DSLR in the past, however that was just shooting and processing stills. That being said, I’m inclined to stick with what I know, and was planning on writing a block that wraps libgphoto2 that hopefully allows me to record and playback some decent quality video using a DSLR.
I guess a few questions for the community off the bat are: has anyone worked with another capture device, perhaps an HD IP camera, that would be better suited to this? and how to circumvent the issues of running out of memory when writing to a buffer ( I’ll probably looking to caputre 30 - 60s of footage at a time ).
Any advice / resources would be greatly appreciated!
Just for information :
I tested https://github.com/pizthewiz/Cinder-EDSDK
with canon DSLR under windows.
Live preview (low resolution), takePicture and download high quality picture worked very well !
I think it was perfect for photobooth with quality of image !
For live high quality video recording, perhaps SDI input or blackmagic card capture !
It depends of latency, resolution and framerate you accept !
List of hardware input :
I’ve done this two different ways. One was to use the Canon sdk with a nice camera, which is really good for still images. I can’t remember how it is for capturing video.
For video I’ve used the BlackMagic UltraStudioMini with the BlackMagic SDK to capture the live HDMI out of a camera. If you use a DSLR, it will typically have a bunch of GUI elements all over it which isn’t ideal. You can flash your camera with new firmware (like MagicLantern) to get around this, but I’ve found it’s actually much nicer to just buy a cheap video camera. I used a Canon VIXIA HF R700 for an installation that worked great, and it was cheap enough that I wasn’t freaking out about leaving it alone.
Speed was really nice through the capture box, though it was a little tricky to get the code working. I’ve never captured long videos, but you could potentially maybe use a separate thread to save out pngs, and then use ffmpeg to stitch them together. Good luck!
Thanks Colin! I hadn’t come across the EDSDK block before, so i’ll definitely check it out!
Thanks Charlie. I’d considered using the BlackMagic capture card as an option, but hadn’t thought beyond the DSLR. From what you’ve said, I’m assuming you never found a BlackMagic Block anywhere online? I’ll definitely look into getting a cheaper video camera to play around with.
I ended up porting/rewriting one that I found. It worked well for me, but I haven’t tested it thoroughly. Would be happy to make it available for any interested parties. There are a couple out there I think like (https://github.com/num3ric/Cinder-Sdi) and this one which is a little outdated (https://github.com/lichtfaktor/cinderBlackMagic).
I’m actively working on the blackmagic SDI block these days. There is at least two current issues in it I haven’t pushed fixes on github yet (YUV color shader and callback destruction), which I intend to update ASAP. Please let me know if you find any further issues, and will gladly try to help!
Great! Thanks @num3ric, I’m probably going to start experimenting in the next few days, or early next week - I’ll keep you posted!
be careful when using a DSLR to capture video in an installation. They are not designed to operate for hours on end and tend to get very hot. It’s better to use a camera that was designed for continuous operation.
Thanks Paul. I’ve read about the overheating issues, however I’d only be capturing 60-120s per hour, so wasn’t overly concerned.
We’ve used CrazyFire HD SDI 1080P cameras quite a bit in installations with video takeaways and had good results (unless you’re trying to do high res portraits or something).
For anyone that stumbles onto this in the future and is interested in the solution - I ended up using an Allied Vision Mako IP camera and wrapping their Vimba SDK. Make sure to get a NIC that can enable Jumbo 9K frames, otherwise your framerate will suffer!
For video takeaways, if you’re doing social sharing, do you mind me asking if you built your own solution or used something off-the-shelf?
In the past, I’ve been required by a couple clients to integrate with social photo and video sharing apps (I capture, nearby iPad allows takeaway) and I’ve been unimpressed or completely frustrated by their quality, performance/reliability, and lack of customizability.
My current client has budgeted for me to build a completely custom flow and to retain authorship so that I can continue to use it in future projects, which is great!!
But I’ve told them that I will (and I intend to) attempt a thorough survey of off-the-shelf solutions out there to see if there’s anything decent…
(Apologies, not exactly a Cinder question, but a real-world integration that doesn’t seem to be going away. While corporate clients I’m working with don’t seem to care, at least half of entertainment-related projects lately seem to require video or photo takeaways.)