How to: Log Footage in Real Time
How to: Log Footage in Real Time
How to: Log Footage in Real Time
Real-time logging allows devices to register comments, asset status, and other data while a piece of media is being recorded on set, before it is registered with Frame.io, for any C2C assets being generated by any device in the same project.
Imagine a director watching their feed in Video Village, being able to hit a button whenever the actor gives a good performance, or a Smart Slate that can mark the clap point on all assets.
If you haven’t read the Implementing C2C: Setting Up guide, give it a quick glance before moving on!
You will need the access_token you received during the hardware device or C2C Application authentication and authorization guide.
To line up real-time logging events with assets, we expect both the asset being captured and the device being used to log to be jam-syned or gen-locked. Both the recording device and the logging device will then be responsible for sending timecode to our backend, where we will do a timecode sync operation to line up the logging event with the correct frame.
Real-time logging operates on a new concept in the data model: Inputs. An input represents a physical button on your device that can be configured to send data to Frame.io. The first thing you will need to decide is the number of buttons you will allow to do this sort of operation, then assign an index, starting at 0, to each button. This index will be used to identify which button has been pressed when the event is sent to our servers. Inputs belong directly to channels, and so each button press message will need to target a specific channel endpoint. For more on channels, see the [channel management guide].
Configuration of what each button does is handled by the user through Frame.io’s UI, allowing integrations to be a simple as possible. You won’t be required for any special UI affordances on your end, besides being able to assign a button to be a “Frame.io action”, if your button / triggers / etc are configurable.
We will work with you to determine following configuration for each of your device’s inputs:
in_progressneeds_reviewapprovedBy supplying this information ahead of time, we keep the demands on your actual device as low as possible.
Real-time logging events can be sent with the following call
On a success, you will receive a 204 with a blank payload.
URL Parameters
channel_id: The UUID of the channel this input is registered to. This ID will have been received by the channel create call or from the identity endpoint.input_index: The index of the input making the callJSON Body
action_type: The type of action to perform. Currently the only supported action is single_press.
offset: The offset from the start of the asset to log the event at.
start: Start time, as represented by the SMPTE timecode + framerate of when the input was triggered.
smpte_timecode: Timecode represented as a SMPTE string.rate: Framerate of the timecode stream.
playback: Playback speed of the framerate, represented as a [numerator, denominator] pair in an array. Optionally, this field also accepts fractions in string format, "numerator/denominator". NTSC framerates like 23.98 should be sent as they’re fully qualified rational value: [24000, 1001].ntsc: The NTSC standard of the timecode. Can be “non_drop" or null. If null, playback must represent a whole-number value, such as [24, 1]. If "non_drop", playback must represent a valid NTSC framerate, such as [24000, 1001].duration: Duration of the event, as represented by a SMPTE timecode + framerate of when the input was triggered. Conform to the same object definition as start. For single_press, events, must be exactly 1 frame ("01:00:00:00").
Realtime upload triggers must apply the same reliability guidelines as uploads, and respect the device paused status.
If you haven’t already, we encourage you to reach out to our team, then continue to the next guide. We look forward to hearing from you!