Page 1 of 1

BMDStreamingAPI.dll support multiple capture?

PostPosted: Sat Jun 20, 2015 4:57 pm
by Kazuo Notake
I have tried multiple capture with H.264 Pro Recorder.
I connected two H.264 Pro Recorder to one PC.
camera1 --- [HDMI] --- H.264 Pro Recorder --- [USB2.0] -+- PC
camera2 --- [HDMI] --- H.264 Pro Recorder --- [USB2.0] -+

I programmed capture application using Blackmagic DeckLink SDK 10.4.
The IBMDStreamingDeviceNotificationCallback::StreamingDeviceArrived() method called twice, and found two H.264 Pro Recorder device.
So, set BMDStreamingH264InputCallback callback to each device, and call IBMDStreamingDeviceInput::StartCapture() method.
My application seemed to have properly good working, but sometime NALpacket lost.

I have question, BMDStreamingAPI.dll support multiple capture?
I wont to capture camera1 and camera2 image at the same time.

Re: BMDStreamingAPI.dll support multiple capture?

PostPosted: Wed Sep 23, 2015 1:21 pm
by Michael Bunk
I also tried this, but made the experience that it does not work to capture two streams in the same process. Having two processes capturing one stream each works.

Re: BMDStreamingAPI.dll support multiple capture?

PostPosted: Sun Feb 11, 2018 7:34 pm
by JP da Conceicao
Bump for this - has anyone managed to get simultaneous streams from 2 h.264 pro recorders in 1 process? Is it theoretically possible?

Re: BMDStreamingAPI.dll support multiple capture?

PostPosted: Mon Feb 12, 2018 3:58 am
by Ian Morrish
For reliability you would be much better off running 2 instances of an app so that if one crashed it didn't impact the other channel. I have run 2 copies of MXPTiny concurrently without any problem (H.264 ProRecorder and TVS as input sources) on a PC with 2 different USB 3 hubs.

Re: BMDStreamingAPI.dll support multiple capture?

PostPosted: Mon Feb 12, 2018 9:30 am
by JP da Conceicao
Cool, I'm going to go that route. thanks Ian.
For the benefit of anyone else that comes across this thread:

When trying to record from 2 blackmagics with 1 process, I would intermittently get strange error messages and behavior:
- "invalid sync byte" messages, and data no longer coming through
- divide by zero exceptions when calling IBMDStreamingH264NALPacket::GetDisplayTime in IBMDStreamingH264InputCallback::H264NALPacketArrived

I suspect the SDK wasn't designed with this is mind.

Running 2 instances of my software and controlling a different device with each, I'm not able to reproduce any of those problems.