

# Creating a Frame capture output group
<a name="opg-framecapture"></a>

When you create a AWS Elemental MediaLive channel, you might want to include a Frame capture output group. A Frame capture output is a supplement to streaming; it isn't itself a streaming output. This type of output might be useful for your workflow. For example, you might use a Frame capture output to create thumbnails of the content. (You can also create thumbnails by using the [thumbnails feature](thumbnails.md).)

**Topics**
+ [Organize encodes in a Frame capture output group](design-framecapture-package.md)
+ [Coordinate with the downstream system](framecapture-op-origin-server-s3.md)
+ [Create a Frame capture output group](creating-framecapture-output-group.md)

# Organize encodes in a Frame capture output group
<a name="design-framecapture-package"></a>

A Frame capture output group can contain the following:
+ One or more outputs.

Each output can contain only one video JPEG encode. 

# Coordinate with the downstream system
<a name="framecapture-op-origin-server-s3"></a>

The destination for a Frame capture output group is always in an Amazon S3 bucket. You and the Amazon S3 operator must agree about the bucket to use.

**To arrange setup of the destination**

1. Decide if you need two destinations for the output: 
   + You need two destinations in a [standard channel](plan-redundancy.md).
   + You need one destination in a single-pipeline channel.

   Note that a Frame capture output group requires only one set of destination addresses, not one for each output.

1. We recommend that you design the full path of the destination — the Amazon S3 bucket and all the folders. See or [Frame capture destination](framecapture-destinations.md). 

1. Ask the Amazon S3 user to create any buckets that don't already exist. 

   With MediaLive, the Amazon S3 bucket name must not use dot notation, which means it mustn't use . (dot) between the words in the bucket name. 

1. Discuss bucket ownership with the Amazon S3 user. If the bucket belongs to another AWS account, you typically want that account to become the owner of the output. For more information, see [Controlling access to the output](archive-op-origin-server-s3.md#setting-dss-archive-canned-acl), after this procedure.

Note that you don't need user credentials to send to an S3 bucket. MediaLive has permission to write to the bucket via the trusted entity. Someone in your organization should have already set up these permissions. For more information, see [Access requirements for the trusted entity](trusted-entity-requirements.md).

## Controlling access to the output
<a name="setting-dss-framecapture-canned-acl"></a>

You might be sending output files to an Amazon S3 bucket that is owned by another AWS account. In this situation, you typically want the other account to become the owner of the output files (the object being put in the bucket). If the bucket owner doesn't become the object owner, you (MediaLive) will be the only agent that can delete the files when the files are no longer required.

It is therefore in everyone's interest to transfer ownership of the output files after they are in the Amazon S3 bucket.

To transfer object ownership, the following setup is required:
+ The bucket owner must add a bucket permissions policy that grants you permission to add an Amazon S3 canned access control list (ACL) when MediaLive delivers the output files to the bucket. The bucket owner should read the information in [Managing access with ACLs](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acls) in the Amazon Simple Storage Service user guide. The bucket owner must set up ACL permissions for the bucket, not for the objects. 
+ The bucket owner should also set up object ownership. This feature effectively makes it mandatory (rather than optional) for the sender (MediaLive) to include the *Bucket owner full control* ACL. The bucket owner should read the information in [Controlling object ownership](https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership) in the Amazon Simple Storage Service user guide.

  If the bucket owner implements this feature, then you must set up MediaLive to include the ACL. If you don't, delivery to the Amazon S3 bucket will fail.
+ You must set up MediaLive to include the *Bucket owner full control** *ACL when it delivers to the bucket. You will perform this setup when you [create the channel](archive-destinations.md).

The S3 canned ACL feature supports ACLs other than *Bucket owner full control*. But those other ACLs are typically not applicable to the use case of delivering video from MediaLive.

# Create a Frame capture output group
<a name="creating-framecapture-output-group"></a>

You create the output group and its outputs when you [create or edit a MediaLive channel](creating-a-channel-step4.md). 

1.  On the **Create channel** page, under **Output groups**, choose **Add**. 

1.  In the **Add output group** section, choose **Frame capture**, and then choose **Confirm**. More sections appear. 
   +  **Destination** – This section contains fields for the [output destination](framecapture-destinations.md). 
   +  **Frame capture settings** – This section contains a field for the output group name and for the [output destination](framecapture-destinations.md). 
   +  **Frame capture outputs** – This section shows the output that is added by default. A Frame capture output can contain only one output, so don't click **Add output**.

     To view the fields, choose the **Settings** link. 

1.  In **Frame capture outputs**, choose the **Settings** link to view the sections for the individual output:
   +  **Output settings** – This section contains fields for the [output destination](framecapture-destinations.md). 
   +  **Stream settings** – This section contains fields for the [output streams](output-settings-framecapture.md) (the video, audio, and captions). 

1. (Optional) Enter names for the output group and the output:
   +  In **Frame capture settings**, for **Name**, enter a name for the output group. This name is internal to MediaLive; it doesn't appear in the output. For example, **Sports Game Thumbnails**. 
   +  In **Frame capture outputs**, for **Name**, enter a name for the output. This name is internal to MediaLive; it doesn't appear in the output. 

1.  To complete the other fields, see the topics listed after this procedure. 

1.  After you have finished setting up this output group and its single output, you can create another output group (of any type), if your plan requires it. Otherwise, go to [Save the channel](creating-a-channel-step9.md). 

**Topics**
+ [Frame capture destination](framecapture-destinations.md)
+ [Settings for the stream](output-settings-framecapture.md)

# Frame capture destination
<a name="framecapture-destinations"></a>

The following fields configure the location and names of the frame capture files (the destination).
+ **Output group** – **Frame capture group destination** section
+ **Output group** – **Frame capture settings** – **CDN settings**

  **Output settings** – **Name modifier**

You must design the destination path or paths for the output. You must then enter the different portions of the path into the appropriate fields on the console.

## Design the path for the output destination
<a name="framecapture-about-destination-path"></a>

**To design the path**
+ Design the destination path or paths, following this syntax:

  `protocol bucket folders baseFilename nameModifier counter extension`

  For example, for a standard channel:

  `s3ssl://amzn-s3-demo-bucket1/sports-thumbnails/delivery/curling-20180820.00000.jpg`

  `s3ssl://amzn-s3-demo-bucket1/sports-thumbnails/backup/curling-20180820.00000.jpg`

If you have two destinations, the destination paths must be different from each other in some way. At least one of the portions of one path must be different from the other. It is acceptable for all the portions to be different.

The following table maps each portion in the example to the portion in the syntax.


| Portion of the URL | Example | Comment | 
| --- | --- | --- | 
| protocol | s3ssl:// | The protocol is always s3ssl:// because the destination for a Frame capture output is always an S3 bucket. | 
| bucket portion of the path | amzn-s3-demo-bucket1 |  With MediaLive, the S3 bucket name must not use dot notation, which means it mustn't use . (dot) between the words in the bucket name.   | 
| folders portion of the path | sports-thumbnails/delivery/ | The folders can be present or not, and can be as long as you want.The folders must always end with a slash. | 
| baseFilename | curling | Don't terminate the file name with a slash. | 
| nameModifier | -20180820 | The modifier is optional for an Frame capture output. | 
| delimiter before the counter | . | MediaLive automatically inserts this delimiter. | 
| counter | 00000 | MediaLive automatically generates this counter. Initially, this is a five-digit number starting at 00000, and increasing by 1. So 00000, 00001, 00002 and so on. After 99999, the next number is 100000 (six digits), then 100001, 100002, and so on. Then from 999999 to 1000000 (seven digits), and so on. | 
| dot before the extension | . | MediaLive automatically inserts this dot. | 
| extension | jpg | Always jpg. | 

## Complete the fields on the console
<a name="framecapture-specify-destination"></a>

**To specify the location for the output**

1. Enter the different portions of the destination in the appropriate fields.     
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/medialive/latest/ug/framecapture-destinations.html)

1. Leave the **Credentials** section blank in both the **Frame capture group destinations** sections. MediaLive has permission to write to the S3 bucket via the trusted entity. Someone in your organization should have already set up these permissions. For more information, see [Access requirements for the trusted entity](trusted-entity-requirements.md).

1. Complete the **CDN settings** field only if MediaLive must set a canned ACL whenever it sends this output to the Amazon S3 bucket.

   Use of a canned ACL typically only applies if your organization is not the owner of the Amazon S3 bucket. You should have discussed the use of a canned ACL with the bucket owner when you discussed the [destination for the output](archive-op-origin-server-s3.md#setting-dss-archive-canned-acl).

# Settings for the stream
<a name="output-settings-framecapture"></a>

By default, the output is set up with one video encode. This is the only encode that a Frame capture output can contain. Therefore, you can't add audio or captions encodes or more video encodes.

For information about the fields in the video encode, see [Set up the video encode](creating-a-channel-step6.md).