-
Notifications
You must be signed in to change notification settings - Fork 48
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
timecode #42
Comments
The NDI video frame structure allows for a timecode, but this is not set from a timing source. The timecode value is set to the default (synthesised for us). |
Thanks! So I’m trying to sync a tracker with an ndi feed. Right now the ndi feed comes in after the tracking data. I’d like to keep a timecode referenced buffer of tracking data, check the ndi frame timecode, find that frames tracking data from the buffer, and reemit them both in sync. Do you think this is possible? |
I think this could be done. A timecode is available from each received video frame. I have not studied the details of timecodes, but in this plugin you would retrieve it in ofxReceiveImage.cpp > ReceiveImage at line 1139 as the "timecode of the frame in 100-nanosecond intervals". int64_t timecode = video_frame.timecode; For a receiver, there is also "video_frame.timestamp" generated by the SDK when the frame is produced by the sender and this is documented in "Processing.NDI.structs.h". The SDK documentation explains more about the timecode value, time since epoch etc.. |
Hi @leadedge, I'm involved in a project where accessing timestamp and timecode information is essential. In using the ofxNDI addon for openFrameworks, I noticed that the various To work around this, I've experimented by modifying these methods, such as changing Do you think it would be beneficial to integrate optional timecode and timestamp retrieval capabilities into the Thank you for considering this proposal. Best regards, |
Thanks Eduard, I am sure that somebody like @moebiussurfing would be very interested. This project is actually a double wrapper. The ofxNDIsend / ofxNDIreceive classes can be used independently of Openframeworks, so that would be something to consider. Initially I would see some additional function like "GetTimeCode", that works in the same way as "GetMetadataString". Right now I am knee deep, or more likely neck deep, in several other things so can't do anything immediately but I would be interested to have a look at what you have done. |
Hi @Leadge, I needed timestamp and not timecode for my use case. So I just added timestamp retrieval the same way you implemented timecode information in a pull request. My use case is receiving 120fps NDI frames from a camera, and storing it in a pool where I can retrieve the frames based on the timestamp information to create timed video effects. My implementation is as follows:
I wanted to update the receiver example to retreive that information, but last commit seems the example is gone, and there is a non-working sender-reveiver example (does not have sources inside Thanks for all your efforts on improving the library! Eduard |
I have modified the separate sender and receiver to make them a single project. Documentation is still not updated. The sender-receiver example has a define in ofApp.h I will put the sender-receiver-example source in a "src" folder. Meanwhile it's outside that but still in the sender-receiver folder. Copy those files to your Openframeworks src folder. Tomorrow I will add "GetVideoTimestamp()" and test it with the receiver example and come back. |
Hello @leadedge , do you now if the ndi libraries support timecode?
The text was updated successfully, but these errors were encountered: