Output formats
In Plainly, you have the flexibility to control the output format of your rendered video. This includes options for video encoding, resolution, quality and other properties that can be customized to suit your needs.
The render output format options are accessed through the top right button in the single render form, and can be configured as well using batch rendering, integration-based invocation or API.
The output format can also be set on a template level, which means that every time you render a video from that template, these options will be applied.
Default behavior
By default, Plainly will render out a video in the MP4 format using with following encoding properties:
libx264
codec for video encoding (yuv420p
pixel format)aac
codec for audio encoding- frame rate of
25fps
Render format is controlled by the Output Format settings, and there are two ways you can control and adjust the rendering format to your needs.
Output module settings can be combined with post encoding settings. However, if neither is defined Plainly will use the default behavior mentioned above.
Use After Effects output module settings
First way is to explicitly control the output of the After Effects rendering process. If output module is set during the rendering Plainly will provide exact video as produced by After Effects without any additional encoding by default. This provides few benefits:
- Get original frame rate, as defined in an After Effects project rendering composition.
- Get output with an alpha channel.
- Get faster rendering times when no additional encoding is specified, but then the video file size will be larger.
Currently, the available options for output module are:
Name | Video extension | API value |
---|---|---|
H.264 - Match Render Settings - 5 Mbps | .mp4 | H_264 |
H.264 - Match Render Settings - 15 Mbps | .mp4 | H_264_HIGH_BIT_RATE |
High Quality | .mov | HQ |
High Quality with Alpha | .mov | HQ_ALPHA |
API cURL example - Create render with output module
curl -X POST \
-H "Content-Type: application/json" \
-u "[API_KEY]:" \
-d '{
"projectId": "[PROJECT_ID]",
"outputFormat": {
"outputModule": "H_264_HIGH_BIT_RATE"
}
}' \
https://api.plainlyvideos.com/api/v2/renders
Use post encoding settings
Second way is to use post encoding settings which add additional step of encoding the video output by After Effects using the FFmpeg library.
There are few different post encoding types you can use:
Name | Description | API type |
---|---|---|
Default | This will render out a video using the default settings mentioned above. | default |
None | This explicitly defines that no additional encoding should be done, and you’ll get original video as produced by After Effects. | none |
Smallest | This will render out a video using the smallest possible file size, with an acceptable quality using H.265 codec. | smallest |
Custom | This allows you to define custom encoding settings on your own. | custom |
Scale | This allows you to scale the video to a desired resolution. | scale |
Captions | This allows you to attach captions to your video, and can be used with other post encoding types. Should not be used directly, use the Captions render option. | captions |
API cURL example - Create render with no post encoding
curl -X POST \
-H "Content-Type: application/json" \
-u "[API_KEY]:" \
-d '{
"projectId": "[PROJECT_ID]",
"outputFormat": {
"postEncoding": {
"type": "none"
}
}
}' \
https://api.plainlyvideos.com/api/v2/renders
API cURL example - Create render with smallest post encoding
curl -X POST \
-H "Content-Type: application/json" \
-u "[API_KEY]:" \
-d '{
"projectId": "[PROJECT_ID]",
"outputFormat": {
"postEncoding": {
"type": "smallest"
}
}
}' \
https://api.plainlyvideos.com/api/v2/renders
Custom encoding
Custom encoding settings can be defined using one of or both of the following parameters:
- Encoding format - this is the short name of the encoding format you want to use and where encoding parameters are pre-defined. Currently, the available options are
MP4
,MP4_H265
,GIF
,MOV
,MXF
, which will result in a video being delivered in the desired format. - Encoding parameters - any custom FFmpeg encoding parameters you want to use, allowing you to have full control over the encoding process.
If both encoding format and parameters are provided, the final video format will be determined by the format, however the provided parameters will be used as additional encoding parameters.
API cURL example - Create render with custom post encoding
curl -X POST \
-H "Content-Type: application/json" \
-u "[API_KEY]:" \
-d '{
"projectId": "[PROJECT_ID]",
"outputFormat": {
"postEncoding": {
"type": "custom",
"encodingFormat": "MP4",
"encodingParamsLine": "-c:a aac -b:a 192k"
}
}
}' \
https://api.plainlyvideos.com/api/v2/renders
Scale resolution
If you want to scale the resolution of the rendered video, this can be done with the Scale post encoding type.
You need to provide the percentage as the scaling factor, which can range from 1
to 400
. A scaling percentage of 100% will keep the video at its original resolution, while values less will reduce and values greater will increase the resolution.
For example, if you want to scale the video down to 50% of its original size, you can set the scaling percentage to 50
, or if you want to scale the video up to double its original size, you can set the scaling percentage to 200
.
API cURL example - Create render with scale post encoding
curl -X POST \
-H "Content-Type: application/json" \
-u "[API_KEY]:" \
-d '{
"projectId": "[PROJECT_ID]",
"outputFormat": {
"postEncoding": {
"type": "scale",
"scalingPercentage": 50,
}
}
}' \
https://api.plainlyvideos.com/api/v2/renders
Draft render
If you want to quickly check how the video looks like, you can use the draft render option. This will render out a video in a half resolution and lower quality, but it will be done much faster.
The draft render option is available under Settings Template of the Output Format settings, and currently it’s free of charge.
For the fastest rendering times, you can use the draft render option combined with None
post encoding type.
API cURL example - Create draft render
curl -X POST \
-H "Content-Type: application/json" \
-u "[API_KEY]:" \
-d '{
"projectId": "[PROJECT_ID]",
"outputFormat": {
"settingsTemplate": "DRAFT"
}
}' \
https://api.plainlyvideos.com/api/v2/renders