

# Working with Nielsen watermarking
<a name="nielsen-watermarking"></a>

Nielsen is a company that tracks how often video assets are watched by viewers. One form of that tracking uses tones in a media asset's audio that are audible to machines but not humans. These tones are encoded directly in the audio stream and can also be cued in the metadata. To use this Nielsen audio watermarking with MediaConvert, you must first establish a relationship with Nielsen.

MediaConvert supports Nielsen audio watermarking in these ways:
+ *PCM to ID3 watermarking*: With PCM to ID3 watermarking, MediaConvert translates watermarking that already exists in your input audio stream to markers in your output's ID3 metadata.
+ *Non-linear watermarking*: With non-linear watermarking, MediaConvert inserts integers, called *TICs*, into the PCM audio stream of the asset. At the locations of these TICs, MediaConvert also encodes audio tones.

  With non-linear watermarking, your input must start without watermarking. AWS Elemental MediaConvert receives the TICs from a Nielsen SID/TIC server that you set up in the AWS Cloud.

**Note**  
If you want both types of watermarking, you must run your job twice. First create an output with non-linear watermarking, and then use that output as input to the next job to add ID3 watermarking from your PCM stream. You can't enable both kinds of watermarking in a single job.

**Topics**
+ [Configuring PCM to ID3 metadata](setting-up-pcm-to-id3-metadata.md)
+ [Configuring Nielsen non-linear watermarking](setting-up-non-linear-watermarking.md)
+ [Nielsen SID/TIC server requirements in the AWS Cloud](how-mediaconvert-interacts-with-your-nielsen-sid-tic-server-in-the-aws-cloud.md)

# Configuring PCM to ID3 metadata
<a name="setting-up-pcm-to-id3-metadata"></a>

To use this feature, your input must have PCM audio that contains Nielsen watermarks. You provide your Nielsen distributor ID to MediaConvert and then, during the transcode, MediaConvert inserts the watermark information into the ID3 metadata of your output.

You can put Nielsen watermarking information into the ID3 metadata of outputs in the following output groups only:
+ Apple HLS
+ File group, when your output container is MPEG-2 Transport Stream

**To enable PCM to ID3 metadata (console)**

1.  Set up your job inputs and outputs as described in [Tutorial: Configuring job settings](setting-up-a-job.md).

1. Enable PCM to ID3 metadata in the job-wide settings.

   1. On the **Create job** page, in the **Job** pane on the left, under **Job settings** choose **Settings**.

   1. In the **Partner integrations** section on the right, choose **Nielsen PCM to ID3 metadata**.

   1. For **Distributor ID**, provide the ID that Nielsen assigned to your organization.

1. Enable PCM to ID3 metadata in the outputs where you want it. Do these steps for each **Apple HLS** output that you want to have ID3 metadata.

   1. In the **Job** pane on the left, choose the output.

   1. In the **Output settings** section on the right, expand the section **Transport stream settings**.

   1. For **Nielsen ID3**, choose **Insert**.

1. Do these steps for each **File group** output that you want to have ID3 metadata.

   1. In the **Job** pane on the left, choose the output.

   1. In the **Output settings** section on the right, expand the section **Container settings**.

   1. Scroll to the section **PID controls**.

   1. For **Nielsen ID3**, choose **Insert**.

**To enable PCM to ID3 metadata (API, CLI, and SDK)**

If you use the API, CLI, or an SDK, specify the relevant settings in your JSON job specification and then submit it programmatically with your job. For more information about submitting your job programmatically, see one of the introductory topics of the *AWS Elemental MediaConvert API Reference*:
+ [Getting started with AWS Elemental MediaConvert using the AWS SDKs or the AWS CLI](https://docs.aws.amazon.com/mediaconvert/latest/apireference/custom-endpoints.html)
+ [Getting started with AWS Elemental MediaConvert using the API](https://docs.aws.amazon.com/mediaconvert/latest/apireference/getting-started.html)
+ Use the MediaConvert console to generate your JSON job specification. We recommend this approach, because the console functions as an interactive validator against the MediaConvert job schema. Follow these steps to generate your JSON job specification using the console:

  1. Follow the previous procedure for the console.

  1. In the **Job** pane on the left, under **Job settings**, choose **Show job JSON**.

Find additional information, including where each setting belongs in the job settings structure, in the *AWS Elemental MediaConvert API Reference*. Links in this list go to information about the setting in that document:
+ **Nielsen PCM to ID3 metadata** (`[nielsenConfiguration](https://docs.aws.amazon.com/mediaconvert/latest/apireference/jobs.html#jobs-prop-jobsettings-nielsenconfiguration)`)
+ **Distributor ID** (`[distributorId](https://docs.aws.amazon.com/mediaconvert/latest/apireference/jobs.html#jobs-prop-nielsenconfiguration-distributorId)`)
+ **Nielsen ID3**, for outputs in an **Apple HLS** output group (`[nielsenId3](https://docs.aws.amazon.com/mediaconvert/latest/apireference/jobs.html#jobs-prop-m3u8settings-nielsenid3)`, child of `[m3u8Settings](https://docs.aws.amazon.com/mediaconvert/latest/apireference/jobs.html#jobs-prop-containersettings-m3u8settings)`)
+ **Nielsen ID3**, for outputs in a **File group** output group (`[nielsenId3](https://docs.aws.amazon.com/mediaconvert/latest/apireference/jobs.html#jobs-prop-m2tssettings-nielsenid3)`, child of `[m2tsSettings](https://docs.aws.amazon.com/mediaconvert/latest/apireference/jobs.html#jobs-prop-containersettings-m2tssettings)`)

# Configuring Nielsen non-linear watermarking
<a name="setting-up-non-linear-watermarking"></a>

To use this feature, you must first establish a relationship with Nielsen and set up a Nielsen SID/TIC server in the AWS Cloud. Contact Nielsen to download their SID/TIC server software, generate a WRR license file, and receive installation and setup instructions. For an overview of how the infrastructure works, see [Nielsen SID/TIC server requirements in the AWS Cloud](how-mediaconvert-interacts-with-your-nielsen-sid-tic-server-in-the-aws-cloud.md).

**To set up Nielsen non-linear watermarking (console)**

1. Set up a Nielsen SID/TIC server system in the AWS Cloud. For more information, contact Nielsen.

1. Set up an Amazon S3 bucket to hold your Nielsen metadata .zip file. MediaConvert writes the metadata to this bucket.

1.  Set up your job inputs and outputs as described in [Tutorial: Configuring job settings](setting-up-a-job.md).

1. On the **Create job** page, in the **Job** pane on the left, under **Job settings** choose **Settings**.

1. In the **Partner integrations** section on the right, choose **Nielsen non-linear watermarking**.

1. Provide values for the settings that become visible when you enable **Nielsen non-linear watermarking**. For instructions and guidance about each of these settings, choose the **Info** link next to the setting label.

1. Choose **Create**, at the bottom of the page, to run your job.

1. Transfer the data in your metadata Amazon S3 bucket to Nielsen, according to their instructions.

**To set up Nielsen non-linear watermarking (API, CLI, and SDK)**

If you use the API, CLI, or an SDK, specify the relevant settings in your JSON job specification and then submit it programmatically with your job. For more information about submitting your job programmatically, see one of the introductory topics of the *AWS Elemental MediaConvert API Reference*:
+ [Getting started with AWS Elemental MediaConvert using the AWS SDKs or the AWS CLI](https://docs.aws.amazon.com/mediaconvert/latest/apireference/custom-endpoints.html)
+ [Getting started with AWS Elemental MediaConvert using the API](https://docs.aws.amazon.com/mediaconvert/latest/apireference/getting-started.html)
+ Use the MediaConvert console to generate your JSON job specification. We recommend this approach, because the console functions as an interactive validator against the MediaConvert job schema. Follow these steps to generate your JSON job specification using the console:

  1. Follow the previous procedure for the console.

  1. In the **Job** pane on the left, under **Job settings**, choose **Show job JSON**.

Find additional information, including where each setting belongs in the job settings structure, in the *AWS Elemental MediaConvert API Reference*. Links in this list go to information about the setting in that document:
+ **Nielsen non-linear watermarking** (`[nielsenNonLinearWatermark](https://docs.aws.amazon.com/mediaconvert/latest/apireference/jobs.html#jobs-prop-jobsettings-nielsennonlinearwatermark)`)
+ **Source watermark status** (`[sourceWatermarkStatus](https://docs.aws.amazon.com/mediaconvert/latest/apireference/jobs.html#jobs-prop-nielsennonlinearwatermarksettings-sourcewatermarkstatus)`)
+ **Watermark types** (`[activeWatermarkProcess](https://docs.aws.amazon.com/mediaconvert/latest/apireference/jobs.html#jobs-prop-nielsennonlinearwatermarksettings-activewatermarkprocess)`)
+ **SID** (`[sourceId](https://docs.aws.amazon.com/mediaconvert/latest/apireference/jobs.html#jobs-prop-nielsennonlinearwatermarksettings-sourceid)`)
+ **CSID** (`[cbetSourceId](https://docs.aws.amazon.com/mediaconvert/latest/apireference/jobs.html#jobs-prop-nielsennonlinearwatermarksettings-cbetsourceid)`)
+ **Asset ID** (`[assetId](https://docs.aws.amazon.com/mediaconvert/latest/apireference/jobs.html#jobs-prop-nielsennonlinearwatermarksettings-assetid)`)
+ **Asset name** (`[assetName](https://docs.aws.amazon.com/mediaconvert/latest/apireference/jobs.html#jobs-prop-nielsennonlinearwatermarksettings-assetname)`)
+ **Episode ID** (`[episodeId](https://docs.aws.amazon.com/mediaconvert/latest/apireference/jobs.html#jobs-prop-nielsennonlinearwatermarksettings-episodeid)`)
+ **TIC server REST endpoint** (`[ticServerUrl](https://docs.aws.amazon.com/mediaconvert/latest/apireference/jobs.html#jobs-prop-nielsennonlinearwatermarksettings-ticserverurl)`)
+ **ADI file** (`[adiFilename](https://docs.aws.amazon.com/mediaconvert/latest/apireference/jobs.html#jobs-prop-nielsennonlinearwatermarksettings-adifilename)`)
+ **Metadata destination** (`[metadataDestination](https://docs.aws.amazon.com/mediaconvert/latest/apireference/jobs.html#jobs-prop-nielsennonlinearwatermarksettings-metadatadestination)`)
+ **Share TICs across tracks** (`[uniqueTicPerAudioTrack](https://docs.aws.amazon.com/mediaconvert/latest/apireference/jobs.html#jobs-prop-nielsennonlinearwatermarksettings-uniqueticperaudiotrack)`)

# Nielsen SID/TIC server requirements in the AWS Cloud
<a name="how-mediaconvert-interacts-with-your-nielsen-sid-tic-server-in-the-aws-cloud"></a>

The following diagram shows, at a high level, how MediaConvert interacts with the other parts of the system.

There are four major parts of the system that you set up by following instructions from Nielsen:
+ Transfer your Nielsen metadata .zip file. MediaConvert writes this file to the Amazon S3 bucket that you create. You provide this bucket URL for the setting **Metadata destination** (`[metadataDestination](https://docs.aws.amazon.com/mediaconvert/latest/apireference/jobs.html#jobs-prop-nielsennonlinearwatermarksettings-metadatadestination)`) when you set up your job.
**Note**  
This bucket is different from the one that you set up for the media asset outputs of your job. For information about that bucket, see [Prerequisites to start using MediaConvert](setting-up.md), which is a sub-topic of the Getting started chapter of this guide.
+ Set up an Amazon EC2 instance and an AWS Lambda proxy in an Amazon VPC. Then install the SID/TIC server software and license from Nielsen.
+ Use Amazon API Gateway to set up a gateway to manage requests and responses between MediaConvert and your Nielsen SID/TIC server.

  This should result in a REST endpoint that you provide for the setting **TIC server REST endpoint** (`[ticServerUrl](https://docs.aws.amazon.com/mediaconvert/latest/apireference/jobs.html#jobs-prop-nielsennonlinearwatermarksettings-ticserverurl)`) when you set up your job.
+ Use AWS Identity and Access Management (IAM) to manage access and authentication between MediaConvert, your API gateway, and your SID/TIC server.
**Note**  
The roles and access you set up for this data sharing is different from the IAM permissions you set up to allow MediaConvert to access your input and output Amazon S3 buckets. For information about that setup, see [Setting up IAM permissions](iam-role.md), which is a sub-topic of the Getting started chapter of this guide.

![\[The video is rotated so that the top of the pre-rotation image is parallel to the right edge of the post-rotation video frame. Black vertical bars on the right and left accommodate the difference between the aspect ratio of the original video and the rotated video.\]](http://docs.aws.amazon.com/mediaconvert/latest/ug/images/NielsenWatermarking.png)
