Watermark Filters

Nielsen Encoder

The Nielsen Watermark Converter nlwc filter inserts several different types of audio watermarks:

  • Linear pre-rendering inserts watermarks into content that will be broadcast at a future date and time.
  • VOD watermarks identify specific VOD programs.
  • Recent Telecast (RT) watermarks identify the C3 and C7 rating windows for VOD content.
  • Commercial ID watermarks identify specific commercials.

Each watermark consists of a source identifier, a distribution code and a unique content identifier. Nielsen assigns three types of source identifiers:

  • A source identifier (SID) uniquely identifies the content provider or distribution source. Two fixed SID values are reserved to represent the C3 and C7 rating windows.
  • A CSID uniquely identifies the content source for CBET (Critical Band Encoding) watermarks.
  • A ClientID uniquely identifies a content source for commercial (CommID) watermarks.

Nielsens defines three types of distribution codes:

  • A Program Content (PC) code typically identifies the original distribution source
  • A Final Distributor (FD) code typically identifies the last distribution source.
  • A Commercial Content (CC) code identifies commercial content.

Engine Properties

The following properties configure the Nielsen watermarking engine. Most properties are set automatically based on the WatermarkApplicationType value.

PropertyTypeDescription
WatermarkApplicationTypeintegerDetermines the type of watermark applied to the media:
0 Linear
1 VOD
2 Commercial (CC)
3 Final Distributor (FD)
4 Recent Telecast (RT) VOD
5 Commercial ID (CommID)
LicenseFilePathstringPath to the license file.

Note: this property is set by the pre-processor.

For linear pre-rendering:
/license/NielsenTsLicence.lic

For non-linear and RT-VOD:
/license/NielsenTicLicence.lic
OutputFolderPathstringPath to the folder that contains the log and metadata files produced by the watermark engine.

Note: this property is set by the preprocessor.
WatermarkParamTypeintegerSpecifies the watermarking engine:
0 NAES2 (N2)
1 NAES2 HF (commercials)
2 NAES6 (NW)
3 CBET
4 Nielsen Integrated N2/NW/CBET
ProcessTypeintegerSpecifies the watermarking process:
0 Disabled
1 N2
2 NW
3 N2 + NW
4 CBET
5 NW + CBET
6 N2 + NW + CBET
TimecodeTypeintegerSpecifies the timestamp source:
0 TIC Server
1 System clock
2 Service breakout
3 Clock starting time
4 User clock time
SourceTypeintegerSpecifies the type of content being watermarked:
0 Program content
1 Commercials
2 Service breakout

This property determines the location (program or commercial band) and insertion frequency of the watermarks.
BreakoutTypeintegerIdentifies the service breakout:
0 Reserved
1 VOD
2 Internet
3 Mobile
4 Undefined
DistributionTypeintegerIdentifies the distribution type.

For program content:
0 Content Provider (PC)
1 Final Distributor (FD)

For commercial content:
0 CC1
1 CC2
2 CC3
InsertionTypeintegerDetermines the method of handling a second FD code if FD codes are already present in the stream (N2 only):
0 Refrain
1 Overwrite
IsImmersivebooleanIndicates immersive audio (must be set for channels > 8).
EnableN2HFbooleanSignals N2 as N2 HF encoding.
EnableCbetEasCheck booleanEnables or disables this CBET feature.
EnableCbetStepAsidebooleanEnables or disables this CBET feature.
CbetVodModeintegerSpecifies a method for the CBET VOD mode.

Metadata Properties

The following properties are added to the XML metadata file produced by the watermark engine.

PropertyTypeWatermark
ApplicationNamestringAny
ApplicationVersionstringAny
AdvertiserIdstringCommercial
AdvertiserNamestringCommercial
AgencyIdstringCommercial
AgencyNamestringCommercial
AssetIdstring (max 20 characters)Commercial
VOD
RT-VOD (mandatory)
AssetNamestring (max 50 characters)Linear
VOD
RT-VOD (mandatory)
BrandIdstringCommercial
BrandNamestringCommercial
ClientMediaIdstringCommercial
ClientMediaNamestringCommercial
ClientNamestringLinear
VOD
RT-VOD
CommercialDistributorstringCommercial
CommercialTypestringCommercial
EpisodeIdstring (max 20 characters)VOD
RT-VOD (mandatory)
IntendedUsestringCommercial
LanguageTypePrimarystringCommercial
LanguageTypeSecondarystringCommercial

Encoder Properties

The following properties add encoder information to the watermark. Encoder information is conveyed on a reserved set of SID values (32762 - 32767).

PropertyTypeDescription
EnableSidInfobooleanEnables or disables insertion of the encoder SID information.
EncoderTypeintegerIdentifies the encoder type (1 - 127).
TimeSourceintegerIdentifies the encoding time source.
0 Manual
1 LTC
2 NTP
SerialNumberintegerEncoder serial number (1 - 134217727).
OemHardwareVersionintegerEncoder hardware version (1 - 31).
OemSoftwareVersionintegerEncoder software version (1 - 127).

SID/TIC Server Properties

A Nielsen SID/TIC server is required for VOD and Commercial watermark encoding. Note that your SID/TIC server must be accessible from the instance executing the watermark job.

The following properties control communication with the server.

PropertyTypeDescription
DiscoveryFlagbooleanEnables or disables discovery of the SID/TIC server.
DiscoveryPortintegerSpecifies the IP port used to listen for discovery responses. Default is 6543.
IpAddressstringIP address of the SID/TIC server (required if discovery is disabled).

By default TCP port 6543 is used for server discovery. If discovery is enabled the SID/TIC server must be on the same subnet as the encoding instance. TCP port 7999 is used for communication between the encoding instance and the server.

The Telestream Cloud SID/TIC test server is available at 54.158.65.100. See the test identifiers available on this server.

Channel Configurations

The Nielsen Watermark Converter supports an audio stream with any of the following channel configurations. Specify the speaker label for each channel in the stream. Watermarks are only applied to the L, R and C channels (watermarks are not applied to low-frequency, surround or height channels). Speaker labels may appear in any order.

ChannelsConfigurationSpeaker Labels
11.0 MonoM or C
22.0 StereoL R
65.1 SurroundL R C LFE Ls Rs
85.1 + 2.0L R C LFE Ls Rs
Lt Rt
87.1 SurroundL R C LFE Ls Rs
Lrs Rrs or Lc Rc or Lw Rw or Lsd `Rsd
85.1.2 ImmersiveL R C LFE Ls Rs
Lts Rts or Ltf Rtf or Ltr Rtr
105.1.4 ImmersiveL R C LFE Ls Rs
Ltf Rtf Ltr Rtr
107.1.2 ImmersiveL R C LFE Ls Rs``Lrs Rrs
Lts Rts or Ltf Rtf or Ltr Rtr
127.1.4 ImmersiveL R C LFE Ls Rs Lrs Rrs
Ltf Rtf Ltr Rtr

Multiple Programs

The Nielsen Watermark Converter supports an audio stream containing multiple programs. Specify the program number for each audio channel. Identical watermarks are applied to each program in the stream.

For example the following composition watermarks a 12 channel stream containing three separate audio programs:

  1. complete english mix in 5.1 surround and 2.0 matrix encoded configurations
  2. secondary language mix in a 2.0 configuration
  3. visually impaired mix in a 2.0 configuration
---
input:
  container:
  - name: input1
    audio:
    - name: a1
      channels: 12
      label:
      - L
      - R
      - C
      - LFE
      - Ls
      - Rs
      - Lt
      - Rt
      - L
      - R
      - L
      - R
      program:
      - 1
      - 1
      - 1
      - 1
      - 1
      - 1
      - 1
      - 1
      - 2
      - 2
      - 3
      - 3
      content:
      - complete_mix
      - complete_mix
      - complete_mix
      - complete_mix
      - complete_mix
      - complete_mix
      - complete_mix
      - complete_mix
      - secondary_audio
      - secondary_audio
      - visually_impaired
      - visually_impaired
output:
  container:
  - name: output1
    type: 'wav '
    audio:
    - route:
        name: a1
      sample_rate:
        numerator: 48000
        denominator: 1
      filter:
      - type: nlwc
        properties:
          WatermarkApplicationType: 5

Test Identifiers

The following test identifiers can be used for Nielsen linear watermarks:

SIDCheck DigitsCSIDCSID Check Digits
7001YG0x21233 (135731)IK
9000DK0x51233 (332339)GL
9001OA0x21234 (135732)QO
9003ZC
9005BS0x51235 (332341)DV
9007HW0x21236 (135734)BQ

The following watermarks are available on the Telestream Cloud SID/TIC test server (54.158.65.100):

SIDCSIDDSIDClientID
9000
900177778
90020x123477779
9010

Nielsen Linear

Linear pre-rendering inserts watermarks into content that will be broadcast at a future date and time.

Each watermark contains a source identifier (SID and CSID) assigned by Nielsen and a timestamp representing the broadcast date and time. The timestamp is expressed as the number of seconds that have elapsed since the Unix epoch of January 1, 1970 UTC.

The source identifiers are validated using check digits.

The following code snippet converts an ISO8601 date and time to the equivalent Unix timestamp and time zone offset:

DateTimeOffset broadcast = DateTimeOffset.Parse ("2021-01-01T20:00:00-08:00");

int offset = broadcast.Offset.Hours;

broadcast = broadcast.ToUniversalTime();
  
long timestamp = broadcast.ToUnixTimeSeconds();

For example the following composition watermarks the content for broadcast on January 1, 2021 at 8PM PST:

---
input:
  container:
  - name: input1
    audio:
    - name: a1
output:
  container:
  - name: output1
    type: 'wav '
    audio:
    - route:
        name: a1
      sample_rate:
        numerator: 48000
        denominator: 1
      filter:
      - type: nlwc
        properties:
          LicenseFilePath: /license/NielsenTsLicense.lic
          OutputFolderPath: /output
          WatermarkApplicationType: 0
          SourceId: 7001
          CheckDigits: YG
          CbetSourceId: 135731
          CbetCheckDigits: IK
          StartingTimestamp: 1609560000
          TimeOffsetHours: -8
          ApplicationName: Transform
          ApplicationVersion: 2021-11-001
          ClientName: Blender
          AssetName: Big Buck Bunny
{
  "input": {
    "container": [
      {
        "name": "input1",
        "audio": [
          {
            "name": "a1"
          }
        ]
      }
    ]
  },
  "output": {
    "container": [
      {
        "name": "output1",
        "type": "wav ",
        "audio": [
          {
            "route": {
              "name": "a1"
            },
            "sample_rate": {
              "numerator": 48000,
              "denominator": 1
            },
            "filter": [
              {
                "type": "nlwc",
                "properties": {
                  "LicenseFilePath": "/license/NielsenTsLicense.lic",
                  "OutputFolderPath": "/output",
                  "WatermarkApplicationType": 0,
                  "SourceId": 7001,
                  "CheckDigits": "YG",
                  "CbetSourceId": 135731,
                  "CbetCheckDigits": "IK",
                  "StartingTimestamp": 1609560000,
                  "TimeOffsetHours": -8,
                  "ApplicationName": "Transform",
                  "ApplicationVersion": "2021-11-001",
                  "ClientName": "Blender",
                  "AssetName": "Big Buck Bunny"
                }
              }
            ]
          }
        ]
      }
    ]
  }
}

Watermark Properties

The following properties specify the linear watermark inserted into the content.

PropertyTypeDescription
SourceIdintegerThe Nielsen source identifier (SID) assigned to the content owner or distributor.
CheckDigitsstringPassword used to validate the source identifier (SID).
CbetSourceIdintegerThe Nielsen assigned CBET source identifier.
CbetCheckDigitsstringPassword used to validate the CBET source identifier (SID).
StartingTimestampintegerStarting timestamp of the broadcast. The value is the number of seconds that have elapsed since the Unix epoch (00:00:00 on 1 January 1970 UTC).
TimeOffsetHoursintegerThe time zone offset of the local broadcast.
DestinationDstStatebooleanIndicates whether daylight savings time is in effect in the local broadcast time zone.

Nielsen VOD

The Nielsen filter can insert watermarks into non-linear (VOD) program and commercial content.

Each watermark contains a source identifier (SID and CSID) assigned by Nielsen and a unique timestamp (TIC) value assigned to the content.

A TIC server is used to validate the SID and CSID identifiers and to allocate a range of TIC values to the content. The TIC server is also used to validate the client identifier (ClientID) and to assign content identifiers for commercial (CommID) watermarks. The TIC server must be accessible from the Virtual Private Cloud (VPC) executing the Transform job.

---
input:
  container:
  - name: input1
    audio:
    - name: a1
output:
  container:
  - name: output1
    type: 'wav '
    audio:
    - route:
        name: a1
      sample_rate:
        numerator: 48000
        denominator: 1
      filter:
      - type: nlwc
        properties:
          LicenseFilePath: /license/Nielsen/TicLicense.lic
          OutputFolderPath: /output
          WatermarkApplicationType: 1
          SourceId: 9002
          CbetSourceId: 4660
          IpAddress: 10.0.4.246
          ClientName: Blender
          ApplicationName: Transform
          ApplicationVersion: 2021-11-001
          AssetId: A1234
          AssetName: Big Buck Bunny
          EpisodeId: S2E12
{
  "input": {
    "container": [
      {
        "name": "input1",
        "audio": [
          {
            "name": "a1"
          }
        ]
      }
    ]
  },
  "output": {
    "container": [
      {
        "name": "output1",
        "type": "wav ",
        "audio": [
          {
            "route": {
              "name": "a1"
            },
            "sample_rate": {
              "numerator": 48000,
              "denominator": 1
            },
            "filter": [
              {
                "type": "nlwc",
                "properties": {
                  "LicenseFilePath": "/license/Nielsen/TicLicense.lic",
                  "OutputFolderPath": "/output",
                  "WatermarkApplicationType": 1,
                  "SourceId": 9002,
                  "CbetSourceId": 4660,
                  "IpAddress": "10.0.4.246",
                  "ClientName": "Blender",
                  "ApplicationName": "Transform",
                  "ApplicationVersion": "2021-11-001",
                  "AssetId": "A1234",
                  "AssetName": "Big Buck Bunny",
                  "EpisodeId": "S2E12"
                }
              }
            ]
          }
        ]
      }
    ]
  }
}

Watermark Properties

The following properties specify the VOD watermark inserted into the content.

PropertyTypeDescription
SourceIdintegerThe Nielsen assigned source identifier (SID).
CbetSourceIdintegerThe Nielsen assigned CBET source identifier.
LibVodFlagbooleanEnables or disables this feature.

Nielsen RT-VOD

The Nielsen filter can insert Recent Telecast (RT) flags into VOD content that identify a C3 or C7 rating window.

An RT-VOD flag is a final distributor (FD) watermark with a fixed SID that indicates live telecast plus 3 days (32755) or live telecast plus 7 days (32756).

RT-VOD flags can only be applied to linear or non-linear content with existing program content (PC) or final distributor (FD) watermarks.

---
input:
  container:
  - name: input1
    audio:
    - name: a1
output:
  container:
  - name: output1
    type: 'wav '
    audio:
    - route:
        name: a1
      sample_rate:
        numerator: 48000
        denominator: 1
      filter:
      - type: nlwc
        properties:
          LicenseFilePath: /license/NielsenTicLicense.lic
          OutputFolderPath: /output
          WatermarkApplicationType: 4
          RtVodWatermarkType: 1
          ClientName: Blender
          ApplicationName: Transform
          ApplicationVersion: 2021-11-001
          AssetName: Big Buck Bunny
          AssetId: 123456
          EpisodeId: 256
{
  "input": {
    "container": [
      {
        "name": "input1",
        "audio": [
          {
            "name": "a1"
          }
        ]
      }
    ]
  },
  "output": {
    "container": [
      {
        "name": "output1",
        "type": "wav ",
        "audio": [
          {
            "route": {
              "name": "a1"
            },
            "sample_rate": {
              "numerator": 48000,
              "denominator": 1
            },
            "filter": [
              {
                "type": "nlwc",
                "properties": {
                  "LicenseFilePath": "/license/NielsenTicLicense.lic",
                  "OutputFolderPath": "/output",
                  "WatermarkApplicationType": 4,
                  "RtVodWatermarkType": 1,
                  "ClientName": "Blender",
                  "ApplicationName": "Transform",
                  "ApplicationVersion": "2021-11-001",
                  "AssetName": "Big Buck Bunny",
                  "AssetId": 123456,
                  "EpisodeId": 256
                }
              }
            ]
          }
        ]
      }
    ]
  }
}

Watermark Properties

The following properties specify the RT-VOD watermark inserted into the content.

PropertyTypeDescription
RtVodWatermarkTypeintegerDetermines whether the content is watermarked for the C3 (3 day) or C7 (7 day) windows:
0 C3 (default)
1 C7

Nielsen Commercial ID

The Nielsen encoder can insert unique watermarks into commercial content.

Each watermark contains a client identifier (ClientID) assigned by Nielsen and a unique commercial identifier (CommID) value assigned to the commercial.

A TIC server is used to validate the ClientID and to allocate a CommID value to the commercial. The TIC server must be accessible from the Virtual Private Cloud (VPC) executing the Transform job.

---
input:
  container:
  - name: input1
    audio:
    - name: a1
output:
  container:
  - name: output1
    type: 'wav '
    audio:
    - route:
        name: a1
      sample_rate:
        numerator: 48000
        denominator: 1
      filter:
      - type: nlwc
        properties:
          LicenseFilePath: /license/NielsenTicLicense.lic
          OutputFolderPath: /shawnc/Nielsen/log
          WatermarkApplicationType: 5
          ClientId: 9010
          IpAddress: 10.0.4.246
          ApplicationName: Transform
          ApplicationVersion: 2021-11-001
          AdvertiserName: American Express
          AdvertiserId: 1000
          AgencyName: McGarry Bowen
          AgencyId: 1000
          AssetId: APGB0704000H
          BrandName: American Express
          BrandId: 1000
          ClientMediaName: 'AMEX BIZ CARD CHRONICLES: THE MODEL/CC'
          ClientMediaId: AX00
          CommercialDistributor: SyncroServices
          CommercialType: Commercial
          IntendedUse: Both
          LanguageTypePrimary: English
          LanguageTypeSecondary: English
{
  "input": {
    "container": [
      {
        "name": "input1",
        "audio": [
          {
            "name": "a1"
          }
        ]
      }
    ]
  },
  "output": {
    "container": [
      {
        "name": "output1",
        "type": "wav ",
        "audio": [
          {
            "route": {
              "name": "a1"
            },
            "sample_rate": {
              "numerator": 48000,
              "denominator": 1
            },
            "filter": [
              {
                "type": "nlwc",
                "properties": {
                  "LicenseFilePath": "/license/NielsenTicLicense.lic",
                  "OutputFolderPath": "/shawnc/Nielsen/log",
                  "WatermarkApplicationType": 5,
                  "ClientId": 9010,
                  "IpAddress": "10.0.4.246",
                  "ApplicationName": "Transform",
                  "ApplicationVersion": "2021-11-001",
                  "AdvertiserName": "American Express",
                  "AdvertiserId": 1000,
                  "AgencyName": "McGarry Bowen",
                  "AgencyId": 1000,
                  "AssetId": "APGB0704000H",
                  "BrandName": "American Express",
                  "BrandId": 1000,
                  "ClientMediaName": "AMEX BIZ CARD CHRONICLES: THE MODEL/CC",
                  "ClientMediaId": "AX00",
                  "CommercialDistributor": "SyncroServices",
                  "CommercialType": "Commercial",
                  "IntendedUse": "Both",
                  "LanguageTypePrimary": "English",
                  "LanguageTypeSecondary": "English"
                }
              }
            ]
          }
        ]
      }
    ]
  }
}

Watermark Properties

The following properties specify the CommID watermark inserted into the content.

PropertyTypeDescription
ClientIdintegerThe Nielsen assigned client identifier for commercial ID encoding.

Nielsen Decoder

The Nielsen watermark nwmd decoder is used to extract watermarks from an input container or to verify the watermarks added to an output container.

For example the following composition watermarks and verifies output1:

---
input:
  container:
  - name: input1
    video:
    - name: v1
    audio:
    - name: a1
output:
  container:
  - name: output1
    type: 'mp4 '
    path: out.mp4
    video:
    - route:
        name: v1
    audio:
    - route:
        name: a1
      sample_rate:
        numerator: 48000
        denominator: 1
      filter:
      - type: nlwc
        properties:
          LicenseFilePath: /license/NielsenTsLicense.lic
          OutputFolderPath: /output
          WatermarkApplicationType: 0
          SourceId: 7001
          CheckDigits: YG
          CbetSourceId: 135731
          CbetCheckDigits: IK
          StartingTimestamp: 1609560000
          TimeOffsetHours: -8
          ApplicationName: Transform
          ApplicationVersion: 2021-11-001
          ClientName: Blender
          AssetName: Big Buck Bunny
      - type: nwmd
        properties:
          InputFileName: out.mp4
          OutputFolderPath: /output
          ProcessEngines: 7423
          DnaSignatureMode: 0
          NdashSignatureMode: 0
      encode:
        type: mcac
        properties:
          BitRate: 128000
          MpegVersion: 1
          Profile: 2
{
  "input": {
    "container": [
      {
        "name": "input1",
        "video": [
          {
            "name": "v1"
          }
        ],
        "audio": [
          {
            "name": "a1"
          }
        ]
      }
    ]
  },
  "output": {
    "container": [
      {
        "name": "output1",
        "type": "mp4 ",
        "path": "out.mp4",
        "video": [
          {
            "route": {
              "name": "v1"
            }
          }
        ],
        "audio": [
          {
            "route": {
              "name": "a1"
            },
            "sample_rate": {
              "numerator": 48000,
              "denominator": 1
            },
            "filter": [
              {
                "type": "nlwc",
                "properties": {
                  "LicenseFilePath": "/license/NielsenTsLicense.lic",
                  "OutputFolderPath": "/output",
                  "WatermarkApplicationType": 0,
                  "SourceId": 7001,
                  "CheckDigits": "YG",
                  "CbetSourceId": 135731,
                  "CbetCheckDigits": "IK",
                  "StartingTimestamp": 1609560000,
                  "TimeOffsetHours": -8,
                  "ApplicationName": "Transform",
                  "ApplicationVersion": "2021-11-001",
                  "ClientName": "Blender",
                  "AssetName": "Big Buck Bunny"
                }
              },
              {
                "type": "nwmd",
                "properties": {
                  "InputFileName": "out.mp4",
                  "OutputFolderPath": "/output",
                  "ProcessEngines": 7423,
                  "DnaSignatureMode": 0,
                  "NdashSignatureMode": 0
                }
              }
            ],
            "encode": {
              "type": "mcac",
              "properties": {
                "BitRate": 128000,
                "MpegVersion": 1,
                "Profile": 2
              }
            }
          }
        ]
      }
    ]
  }
}

The Nielsen decoder supports the following properties:

PropertyTypeDescription
InputFileNamestringName of the input file. Used to generate decoder output and log file names.
OutputFolderPathstringPath to the folder where decoder and signature generator output and log files are stored.
ProcessEnginesintegerBit mask that enables one or more decoding and signature engines:
1 Decode N2 watermarks
4 Decode NW watermarks
8 Generate UNITAM signature
16 Generate PAS signature
32 Generate DNA signature
64 Generate NDASH signature
128 Decode CBET watermarks
8192 Generate STREAMFP signature

By default all processing engines are enabled (0x20FD = 8445).

NexGuard Video

The Nexguard nvwc filter add a forensic watermark to a video stream. The filter requires a JSON Web Token (JWT) license issued by NexGuard.

---
input:
  container:
  - name: input1
    video:
    - name: v1
    audio:
    - name: a1
output:
  container:
  - name: output1
    type: 'op1a'
    video:
    - name: v1
      filter:
      - type: 'nvmc'
        properties:
          License: eyJ0eXAiOiJKV1QiLCJqdGkiOiI1NzAxNjI5ZC00OD...
          Preset: Demo Key A_G2 
          Strength: 2
          Payload: 12345
          FixedIdrFrameInterval: 1
    audio:
    - name: a1

The NexGuard video watermarking filter supports the following properties:

PropertyTypeDescription
LicensestringContents of the NexGuard JWT (JSON Web Token) license file.
LicensePathstringPath to the NexGuard license file if the License property is not specified.
PresetstringName of the watermark preset.
StrengthintegerStrength of the watermark.
0 Lightest
1 Lighter
2 Default
3 Stronger
4 Strongest
PayloadintegerA 22 bit number (0 - 4194303) representing the watermark payload. In forensic applications this value uniquely identifies the recipient of the content.
FixedIdrFrameIntervalintegerSpecifies the I frame interval.