Hi everyone,
I’d like to request a feature that would make vMix much more useful in ATEM-based multicam productions: reading the embedded SDI timecode (RP188/ATC) from DeckLink inputs and writing it into the recorded files, both in MultiCorder and in the main Recording.
My setup
ATEM Constellation HD 2 M/E. It embeds time-of-day RP188 timecode on all its SDI outputs, aux outputs included.
8 camera feeds from the ATEM aux outputs into 2× DeckLink Duo 2, plus a DeckLink Quad HDMI Recorder.
vMix 29 (29.0.0.49), MultiCorder recording every camera as ISO, then editing in DaVinci Resolve.
The problem
As far as I can tell, vMix ignores the timecode arriving on DeckLink inputs. MultiCorder and Recording files carry no source timecode.
The -timecode option in an FFMPEG recording format only writes a fixed start value. It doesn’t follow the source.
So ISO files can’t be synced by timecode in the NLE.
A cut list logged from the ATEM, which carries the ATEM’s own timecode, can’t be matched frame-accurately to the files.
It’s available from the hardware
The DeckLink SDK exposes the timecode on every captured frame through IDeckLinkVideoInputFrame::GetTimecode(), with bmdTimecodeRP188Any, VITC1, VITC2 or LTC. I tested a DeckLink Duo 2 at 1080i50 and 1080p25 with an RP188 source. The timecode was read on every frame, with no gaps over a 5-minute run, and it was attached to the correct frame. I checked this against a frame counter burned into the picture.
What I’m asking for
Per DeckLink input, an option to read embedded timecode: Off / RP188 Any / RP188 VITC1 / VITC2 / LTC.
MultiCorder: each ISO file gets the timecode of its own input. That means a tmcd track in MOV, or the timecode in MXF, starting from the first recorded frame.
Recording (Program): an option to take the timecode from a chosen input, for example the ATEM program feed, or from any input carrying it.
Nice to have:
the current input timecode shown in the API XML;
a warning, or a log entry, when the timecode jumps or frames are dropped during a recording. A MOV timecode track only stores the start value, so a discontinuity would otherwise go unnoticed.
Why it matters
With this, a vMix MultiCorder recording would come out ready for timecode-based multicam sync in Resolve or Premiere. It could also be lined up exactly with ATEM switching logs, with no clapper, audio sync or manual offsets. Many of us already use vMix next to an ATEM, and the ATEM already provides the timecode for free on every SDI output.
Workaround I tried
I generated LTC from the ATEM timecode and recorded it on extra audio channels through Application Audio. It works, but the LTC travels on a separate audio path from the video, so the alignment isn’t guaranteed. It also costs audio channels and needs decoding afterwards. Native support would be far more reliable.
Thanks for considering it, and thanks for a great product.
Andrea Angeli