Hi Cequn,
Regarding the OpenEphys plugin, I am not sure I can be of help since I never used it before. However, if you can, include the workflow (bonsai and openEphys) you are currently using, I'd be curious to take a look :D.
Regarding the syncing of the ephys system with the camera I can try to explain a bit better what I simple solution would be.
First of all, as you correctly pointed out, the camera is acquired from a parallel system and not with the RHD2000 and so they are not sychronized. As a result, we need to "calibrate" one stream versus the other. One way to achieve this calibration is to know when a certain event happens in Ephys and camera streams, that way you know (making some assumptions like stable acquisition rates, etc...) to what camera frame a certain ephys sample corresponds to.
Now, how do we do this? Different cameras might afford different ways to do it, however, if you are using a "vanilla" webcam you probably don't have the ability to either trigger frame acquisition or embedded the state of a sync signal in the metadata of a given frame. However, we can "embedded" a sync signal directly on the frame of the image.
To achieve this:
> Connect a pair of wires from one of your devices (Arduino, OpenEphys etc...) capable of generating a TTL pulse.
> Split this into 2 (or more if you want to synchronize more devices) wires. Connect one pair to one of the digital inputs ports in the OpenEphys board. Use the second pair to power a LED that you position in a place that can be seen by the camera.
>Now, whenever you send a pulse through this line (make sure the pulse lasts more than a couple of frames so you don't miss it), it will be simultaneously recorded in the Ephys data (thought the digital input) and in the camera (since the LED will turn on). Afterward, you just need to track the luminosity of that small LED ROI and you will be able to know which sample and which frame "saw" the same pulse onset.
I hope this is clearer!
Cheers,
Bruno