Math expressions bring very dynamic functionality to your jobs.
Usage
Math expressions, unlike variables, must be surrounded by {% expression %}
Like "if" key for conditional outputs, all variables can be used inside math expressions.
"outputs": {
"mp4": [
{
"key": "mp4-half",
"format": {
"resolution": "{% input.width / 2 %}x",
"video_bitrate": "{% int(input.video_bitrate / 2) %}k"
},
"path": "/half.mp4"
}
]
}
Math Operators
+ - / * are supported.
Functions
Function | Description | Example |
min(int, int, int, ...) | Return the lowest number | {% min(input.video_bitrate, 1200) %} |
max(int, int, int, ...) | Return the biggest number | {% max(input.fps, 30) %} |
int(val) | Return the value as integer | {% int(input.video_bitrate / 2) %} |
float(val) | Return the value as float | {% float(input.duration / 6) %} |
array(val1, val2, val3) | Return an array with the given values | {% array(0, input.duration / 3, input.duration-1) %} |
if(condition, val1, val2) | Evaluate the given condition and return the value weither it's true or false | {% if(input.video_bitrate > 2000,
2000, input.video_bitrate) %} |
More examples
Limit the video bitrate to not be higher than original.
"mp4": {
"path": "/video.mp4",
"format": {
"video_bitrate": "{% max(input.video_bitrate, 2500) %}k"
}
}
Crop the video to make a zoom effect.
"mp4:1080p": {
"path": "/crop.mp4",
"crop": "{% input.width / 2 %}:{% input.height / 2 %}"
}
Give offsets in second dynamically.
"jpg:320x"": {
"path": "thumbnails%.2d.jpg",
"offsets": "{% array(1, input.duration / 3, input.duration / 2, input.duration-1) %}"
}