|
<< Click to Display Table of Contents >> Navigation: Nodes > Tasks > Image Processing > NagraNexGuard |
Embeds a NAGRA NexGuard forensic watermark into every frame of the input media, using the NexGuard File Marker SDK. The watermark carries a number, the Payload, that identifies the recipient of each copy. It is invisible in normal viewing and is designed to survive what a pirated copy goes through, including re-encoding, rescaling, cropping and camcording, so a leaked copy can be traced back to the recipient it was made for, according to NAGRA.
This node only embeds the watermark. Reading it back is not done in Mistika Workflows: suspect copies are analyzed by NAGRA's own detection service, which returns the payload found.
This node does not create new media files by itself, the output needs to be connected to an encoder node specialized on your desired output format. The watermark is always applied as the workflow renders.
A NexGuard license file (.lic) issued by NAGRA is required. The watermark settings available to you, called presets, travel inside that file: each one determines the watermarking technology (see below) and the key used. Where a contract does not require a certified forensic watermark, the TraceMarkWrite node offers a lighter traceability mark that needs no license.
Each preset in the license uses one NexGuard watermarking technology, and which ones are available depends entirely on the license NAGRA issued. The technology decides which payloads and frame rates are accepted. The node knows the limits of these technologies, as documented by the NexGuard SDK, and narrows the Payload range and the Frame Rate list to them:
G2: payloads from 1 to 4,194,303, broadcast frame rates (23.976, 24, 25, 29.97, 30, 48, 50, 59.94 and 60 fps; higher rates depend on the license).
ClipMark: payloads from 0 to 1,023, frame rates from 10 to 120 fps.
ClipMark 20 bit: payloads from 0 to 1,048,575, frame rates from 10 to 120 fps.
Streaming: payload 0 or 1, the A and B variants of a streaming delivery, frame rates from 10 to 120 fps.
For a technology not in this list, the node narrows nothing: it accepts payloads from 0 to 4,194,303 and frame rates from 10 to 120 fps, and the NexGuard SDK itself refuses at render time whatever that technology does not support.
Input_1: Input media files to be watermarked. Any media Mistika Workflows can read is accepted, including image sequences and camera RAW, from 256 x 144 up to 8192 pixels on either side.
Output: Input media files with the Watermark applied
License: License File: The NexGuard license file (.lic) issued by NAGRA. Selecting it fills the Preset list. The workflow will not start without a license file, or if the file does not exist.
Preset: The watermark setting to use, as declared in the license file. The selection is kept by name: if a renewed license no longer declares the selected preset, it stays selected, marked as not in the license, and the workflow will not start until another one is chosen. This prevents a copy from being silently marked with a different setting, which would make it untraceable.
Payload: The number embedded in the media, normally one per recipient. Its valid range depends on the technology of the preset (see Technologies); a value out of range stops the workflow instead of being adjusted, since it is what the detection service will give back. The node does not keep a record of which payload was given to whom: keep that record in your own tracking system.
Strength: How strongly the watermark is embedded, from Lightest to Strongest. A stronger watermark is more robust and more likely to be visible. Default is the SDK's default setting.
Video:
Transfer Curve: How the pictures fed to the node are encoded, so the watermark is shaped for how they will be seen: Linear for gamma-corrected video (Rec.709 and other SDR), PQ ST2084 and HLG for HDR, Log Cineon for Cineon log pictures. The NexGuard SDK documents Log Cineon only for 10-bit RGB input, so it may be refused at render time.
Range: Full 0-255 (the default) or Video 16-235, matching the levels of the pictures.
Frame Rate: From Project uses the frame rate of the media. Otherwise, the list offers the rates the technology of the selected preset accepts.
First Frame Index: The position of the first frame of this media within the whole watermarked sequence. Leave it at 0 unless a long piece is delivered in separate segments that must form one continuous watermark: then each segment starts at the frame where the previous one ended.
- A watermark needs a minimum continuous duration to be recoverable: measured at 25 fps, between 20 and 30 seconds for ClipMark and between 2 and 3 minutes for G2. Shorter media, or media rendered in short separate pieces, may be marked but not detectable.
- Frames are watermarked in order. When the render does not walk them in order, the watermark is restarted as a new sequence from that frame, which costs time and shortens the continuous runs above.
- Every running watermarking process holds one seat of the license. With a seat-limited license, the number of workflows that can watermark at the same time, render farm nodes included, is the number of seats.
- Media already watermarked with the same preset is not marked again: watermarking stops with an error saying the content is already watermarked with the selected setting, and the render log lists the presets the content can still be marked with.
- The render log reports the license (seats and expiry date), the preset in use, and any warning from the SDK, such as an embedding period too short to be detected.
Typical workflow example:
Folder or Watcher > Nagra NexGuard > ProREs (or any other encoder node). To make one copy per recipient, use one NagraNexGuard node per recipient, each one with its own Payload and connected to its own encoder.
Property Label |
Property ID |
License File |
License_LicenseFile |
Preset |
preset |
Payload |
Watermark_PayloadNL |
Watermark_Strength |
Watermark_Strength |
Video_TransferCurve |
Video_TransferCurve |
Video_Range |
Video_Range |
Frame Rate |
frameRate |
Advanced_FirstFrameIndexNL |
Advanced_FirstFrameIndexNL |
Worker Threads |
Advanced_WorkerThreads |
Advanced_TestOverlay |
Advanced_TestOverlay |