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.
Property | Type | Description |
---|---|---|
WatermarkApplicationType | integer | Determines the type of watermark applied to the media:0 Linear1 VOD2 Commercial (CC)3 Final Distributor (FD)4 Recent Telecast (RT) VOD5 Commercial ID (CommID) |
LicenseFilePath | string | Path 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 |
OutputFolderPath | string | Path to the folder that contains the log and metadata files produced by the watermark engine. Note: this property is set by the preprocessor. |
WatermarkParamType | integer | Specifies the watermarking engine:0 NAES2 (N2)1 NAES2 HF (commercials)2 NAES6 (NW)3 CBET4 Nielsen Integrated N2/NW/CBET |
ProcessType | integer | Specifies the watermarking process:0 Disabled1 N22 NW3 N2 + NW4 CBET5 NW + CBET6 N2 + NW + CBET |
TimecodeType | integer | Specifies the timestamp source:0 TIC Server1 System clock2 Service breakout3 Clock starting time4 User clock time |
SourceType | integer | Specifies the type of content being watermarked:0 Program content1 Commercials2 Service breakoutThis property determines the location (program or commercial band) and insertion frequency of the watermarks. |
BreakoutType | integer | Identifies the service breakout:0 Reserved1 VOD2 Internet3 Mobile4 Undefined |
DistributionType | integer | Identifies the distribution type. For program content: 0 Content Provider (PC)1 Final Distributor (FD)For commercial content: 0 CC11 CC22 CC3 |
InsertionType | integer | Determines the method of handling a second FD code if FD codes are already present in the stream (N2 only):0 Refrain1 Overwrite |
IsImmersive | boolean | Indicates immersive audio (must be set for channels > 8). |
EnableN2HF | boolean | Signals N2 as N2 HF encoding. |
EnableCbetEasCheck | boolean | Enables or disables this CBET feature. |
EnableCbetStepAside | boolean | Enables or disables this CBET feature. |
CbetVodMode | integer | Specifies a method for the CBET VOD mode. |
Metadata Properties
The following properties are added to the XML metadata file produced by the watermark engine.
Property | Type | Watermark |
---|---|---|
ApplicationName | string | Any |
ApplicationVersion | string | Any |
AdvertiserId | string | Commercial |
AdvertiserName | string | Commercial |
AgencyId | string | Commercial |
AgencyName | string | Commercial |
AssetId | string (max 20 characters) | Commercial VOD RT-VOD (mandatory) |
AssetName | string (max 50 characters) | Linear VOD RT-VOD (mandatory) |
BrandId | string | Commercial |
BrandName | string | Commercial |
ClientMediaId | string | Commercial |
ClientMediaName | string | Commercial |
ClientName | string | Linear VOD RT-VOD |
CommercialDistributor | string | Commercial |
CommercialType | string | Commercial |
EpisodeId | string (max 20 characters) | VOD RT-VOD (mandatory) |
IntendedUse | string | Commercial |
LanguageTypePrimary | string | Commercial |
LanguageTypeSecondary | string | Commercial |
Encoder Properties
The following properties add encoder information to the watermark. Encoder information is conveyed on a reserved set of SID values (32762 - 32767).
Property | Type | Description |
---|---|---|
EnableSidInfo | boolean | Enables or disables insertion of the encoder SID information. |
EncoderType | integer | Identifies the encoder type (1 - 127). |
TimeSource | integer | Identifies the encoding time source.0 Manual1 LTC2 NTP |
SerialNumber | integer | Encoder serial number (1 - 134217727). |
OemHardwareVersion | integer | Encoder hardware version (1 - 31). |
OemSoftwareVersion | integer | Encoder 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.
Property | Type | Description |
---|---|---|
DiscoveryFlag | boolean | Enables or disables discovery of the SID/TIC server. |
DiscoveryPort | integer | Specifies the IP port used to listen for discovery responses. Default is 6543. |
IpAddress | string | IP 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.
Channels | Configuration | Speaker Labels |
---|---|---|
1 | 1.0 Mono | M or C |
2 | 2.0 Stereo | L R |
6 | 5.1 Surround | L R C LFE Ls Rs |
8 | 5.1 + 2.0 | L R C LFE Ls Rs Lt Rt |
8 | 7.1 Surround | L R C LFE Ls Rs Lrs Rrs or Lc Rc or Lw Rw or Lsd `Rsd |
8 | 5.1.2 Immersive | L R C LFE Ls Rs Lts Rts or Ltf Rtf or Ltr Rtr |
10 | 5.1.4 Immersive | L R C LFE Ls Rs Ltf Rtf Ltr Rtr |
10 | 7.1.2 Immersive | L R C LFE Ls Rs``Lrs Rrs Lts Rts or Ltf Rtf or Ltr Rtr |
12 | 7.1.4 Immersive | L 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:
- complete english mix in 5.1 surround and 2.0 matrix encoded configurations
- secondary language mix in a 2.0 configuration
- 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:
SID | Check Digits | CSID | CSID Check Digits |
---|---|---|---|
7001 | YG | 0x21233 (135731) | IK |
9000 | DK | 0x51233 (332339) | GL |
9001 | OA | 0x21234 (135732) | QO |
9003 | ZC | ||
9005 | BS | 0x51235 (332341) | DV |
9007 | HW | 0x21236 (135734) | BQ |
The following watermarks are available on the Telestream Cloud SID/TIC test server (54.158.65.100):
SID | CSID | DSID | ClientID |
---|---|---|---|
9000 | |||
9001 | 77778 | ||
9002 | 0x1234 | 77779 | |
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.
Property | Type | Description |
---|---|---|
SourceId | integer | The Nielsen source identifier (SID) assigned to the content owner or distributor. |
CheckDigits | string | Password used to validate the source identifier (SID). |
CbetSourceId | integer | The Nielsen assigned CBET source identifier. |
CbetCheckDigits | string | Password used to validate the CBET source identifier (SID). |
StartingTimestamp | integer | Starting 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). |
TimeOffsetHours | integer | The time zone offset of the local broadcast. |
DestinationDstState | boolean | Indicates 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.
Property | Type | Description |
---|---|---|
SourceId | integer | The Nielsen assigned source identifier (SID). |
CbetSourceId | integer | The Nielsen assigned CBET source identifier. |
LibVodFlag | boolean | Enables 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.
Property | Type | Description |
---|---|---|
RtVodWatermarkType | integer | Determines 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.
Property | Type | Description |
---|---|---|
ClientId | integer | The 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:
Property | Type | Description |
---|---|---|
InputFileName | string | Name of the input file. Used to generate decoder output and log file names. |
OutputFolderPath | string | Path to the folder where decoder and signature generator output and log files are stored. |
ProcessEngines | integer | Bit mask that enables one or more decoding and signature engines:1 Decode N2 watermarks4 Decode NW watermarks8 Generate UNITAM signature16 Generate PAS signature32 Generate DNA signature64 Generate NDASH signature128 Decode CBET watermarks8192 Generate STREAMFP signatureBy 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:
Property | Type | Description |
---|---|---|
License | string | Contents of the NexGuard JWT (JSON Web Token) license file. |
LicensePath | string | Path to the NexGuard license file if the License property is not specified. |
Preset | string | Name of the watermark preset. |
Strength | integer | Strength of the watermark.0 Lightest1 Lighter2 Default3 Stronger4 Strongest |
Payload | integer | A 22 bit number (0 - 4194303) representing the watermark payload. In forensic applications this value uniquely identifies the recipient of the content. |
FixedIdrFrameInterval | integer | Specifies the I frame interval. |
Updated about 1 year ago