Stay organized with collections
Save and categorize content based on your preferences.
This page explains how to programmatically remove unwanted outer areas from an
input video. For information on how to trim the timeline of input videos, see
Stream mappings.
Use the
crop
configuration field to specify the number of pixels to remove from each side of
the input video. You can add this configuration to a
job template or include it in an
ad-hoc job configuration.
The following REST/JSON configuration removes 10 pixels from the top of an input
video. The input video is then scaled to meet the dimensions specified by the
widthPixels and heightPixels fields in the specified codec for the
videoStream
object. The output video is then generated from this scaled intermediate video.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-25 UTC."],[],[],null,["# Cropping a video\n\nThis page explains how to programmatically remove unwanted outer areas from an\ninput video. For information on how to trim the timeline of input videos, see\n[Stream mappings](/transcoder/docs/concepts/stream-mappings).\n\nUse the\n[`crop`](/transcoder/docs/reference/rest/v1/JobConfig#preprocessingconfig)\nconfiguration field to specify the number of pixels to remove from each side of\nthe input video. You can add this configuration to a\n[job template](/transcoder/docs/how-to/job-templates) or include it in an\n[ad-hoc job configuration](/transcoder/docs/how-to/jobs#create_jobs_ad_hoc).\n\nThe following REST/JSON configuration removes 10 pixels from the top of an input\nvideo. The input video is then scaled to meet the dimensions specified by the\n`widthPixels` and `heightPixels` fields in the specified codec for the\n[`videoStream`](/transcoder/docs/reference/rest/v1/JobConfig#videostream)\nobject. The output video is then generated from this scaled intermediate video. \n\n \"inputs\": [\n {\n \"key\": \"input0\",\n \"uri\": \"gs://\u003cvar translate=\"no\"\u003eSTORAGE_BUCKET_NAME\u003c/var\u003e/\u003cvar translate=\"no\"\u003eSTORAGE_INPUT_VIDEO\u003c/var\u003e\",\n \"preprocessingConfig\": {\n \"crop\": {\n \"topPixels\": 10\n }\n }\n }\n ],"]]