End time in seconds, relative to the output file timeline. When
end_time_offset is not specified, the sprites are generated until the end
of the output file.
The quality of the generated sprite sheet. Enter a value between 1
and 100, where 1 is the lowest quality and 100 is the highest quality.
The default is 100. A high quality value corresponds to a low image data
compression ratio.
The maximum number of rows per sprite sheet. When the sprite sheet is full,
a new sprite sheet is created. The default is 0, which indicates no maximum
limit.
Required. The height of sprite in pixels. Must be an even integer. To
preserve the source aspect ratio, set the
[SpriteSheet.sprite_height_pixels][google.cloud.video.transcoder.v1.SpriteSheet.sprite_height_pixels]
field or the
[SpriteSheet.sprite_width_pixels][google.cloud.video.transcoder.v1.SpriteSheet.sprite_width_pixels]
field, but not both (the API will automatically calculate the missing
field).
For portrait videos that contain horizontal ASR and rotation metadata,
provide the height, in pixels, per the horizontal ASR. The API calculates
the width per the horizontal ASR. The API detects any rotation metadata
and swaps the requested height and width for the output.
Required. The width of sprite in pixels. Must be an even integer. To
preserve the source aspect ratio, set the
[SpriteSheet.sprite_width_pixels][google.cloud.video.transcoder.v1.SpriteSheet.sprite_width_pixels]
field or the
[SpriteSheet.sprite_height_pixels][google.cloud.video.transcoder.v1.SpriteSheet.sprite_height_pixels]
field, but not both (the API will automatically calculate the missing
field).
For portrait videos that contain horizontal ASR and rotation metadata,
provide the width, in pixels, per the horizontal ASR. The API calculates
the height per the horizontal ASR. The API detects any rotation metadata
and swaps the requested height and width for the output.
[[["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-09-09 UTC."],[[["\u003cp\u003eThe \u003ccode\u003eSpriteSheet\u003c/code\u003e class provides configuration options for generating sprite sheets in the Transcoder v1 API, with the latest version being 2.9.0.\u003c/p\u003e\n"],["\u003cp\u003eSprite sheets can be customized with properties such as \u003ccode\u003eColumnCount\u003c/code\u003e, \u003ccode\u003eRowCount\u003c/code\u003e, \u003ccode\u003eQuality\u003c/code\u003e, and \u003ccode\u003eFormat\u003c/code\u003e to control the layout and appearance of the generated sprites, with the \u003ccode\u003ejpeg\u003c/code\u003e format being default.\u003c/p\u003e\n"],["\u003cp\u003eThe time-based positioning of sprites can be configured using \u003ccode\u003eStartTimeOffset\u003c/code\u003e, \u003ccode\u003eEndTimeOffset\u003c/code\u003e, and \u003ccode\u003eInterval\u003c/code\u003e properties, and the total number of sprites generated can be controlled with \u003ccode\u003eTotalCount\u003c/code\u003e.\u003c/p\u003e\n"],["\u003cp\u003eSprite dimensions are set with \u003ccode\u003eSpriteHeightPixels\u003c/code\u003e and \u003ccode\u003eSpriteWidthPixels\u003c/code\u003e, though only one needs to be defined, as the other will be automatically calculated to preserve the aspect ratio.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eFilePrefix\u003c/code\u003e property is required and determines the naming convention of the generated sprite sheet files.\u003c/p\u003e\n"]]],[],null,["# Transcoder v1 API - Class SpriteSheet (2.10.0)\n\nVersion latestkeyboard_arrow_down\n\n- [2.10.0 (latest)](/dotnet/docs/reference/Google.Cloud.Video.Transcoder.V1/latest/Google.Cloud.Video.Transcoder.V1.SpriteSheet)\n- [2.9.0](/dotnet/docs/reference/Google.Cloud.Video.Transcoder.V1/2.9.0/Google.Cloud.Video.Transcoder.V1.SpriteSheet)\n- [2.8.0](/dotnet/docs/reference/Google.Cloud.Video.Transcoder.V1/2.8.0/Google.Cloud.Video.Transcoder.V1.SpriteSheet)\n- [2.7.0](/dotnet/docs/reference/Google.Cloud.Video.Transcoder.V1/2.7.0/Google.Cloud.Video.Transcoder.V1.SpriteSheet)\n- [2.6.0](/dotnet/docs/reference/Google.Cloud.Video.Transcoder.V1/2.6.0/Google.Cloud.Video.Transcoder.V1.SpriteSheet)\n- [2.5.0](/dotnet/docs/reference/Google.Cloud.Video.Transcoder.V1/2.5.0/Google.Cloud.Video.Transcoder.V1.SpriteSheet)\n- [2.4.0](/dotnet/docs/reference/Google.Cloud.Video.Transcoder.V1/2.4.0/Google.Cloud.Video.Transcoder.V1.SpriteSheet)\n- [2.3.0](/dotnet/docs/reference/Google.Cloud.Video.Transcoder.V1/2.3.0/Google.Cloud.Video.Transcoder.V1.SpriteSheet)\n- [2.2.0](/dotnet/docs/reference/Google.Cloud.Video.Transcoder.V1/2.2.0/Google.Cloud.Video.Transcoder.V1.SpriteSheet)\n- [2.1.0](/dotnet/docs/reference/Google.Cloud.Video.Transcoder.V1/2.1.0/Google.Cloud.Video.Transcoder.V1.SpriteSheet)\n- [2.0.0](/dotnet/docs/reference/Google.Cloud.Video.Transcoder.V1/2.0.0/Google.Cloud.Video.Transcoder.V1.SpriteSheet)\n- [1.0.0](/dotnet/docs/reference/Google.Cloud.Video.Transcoder.V1/1.0.0/Google.Cloud.Video.Transcoder.V1.SpriteSheet) \n\n public sealed class SpriteSheet : IMessage\u003cSpriteSheet\u003e, IEquatable\u003cSpriteSheet\u003e, IDeepCloneable\u003cSpriteSheet\u003e, IBufferMessage, IMessage\n\nReference documentation and code samples for the Transcoder v1 API class SpriteSheet.\n\nSprite sheet configuration. \n\nInheritance\n-----------\n\n[object](https://learn.microsoft.com/dotnet/api/system.object) \\\u003e SpriteSheet \n\nImplements\n----------\n\n[IMessage](https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.IMessage-1.html)[SpriteSheet](/dotnet/docs/reference/Google.Cloud.Video.Transcoder.V1/latest/Google.Cloud.Video.Transcoder.V1.SpriteSheet), [IEquatable](https://learn.microsoft.com/dotnet/api/system.iequatable-1)[SpriteSheet](/dotnet/docs/reference/Google.Cloud.Video.Transcoder.V1/latest/Google.Cloud.Video.Transcoder.V1.SpriteSheet), [IDeepCloneable](https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.IDeepCloneable-1.html)[SpriteSheet](/dotnet/docs/reference/Google.Cloud.Video.Transcoder.V1/latest/Google.Cloud.Video.Transcoder.V1.SpriteSheet), [IBufferMessage](https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.IBufferMessage.html), [IMessage](https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.IMessage.html) \n\nInherited Members\n-----------------\n\n[object.GetHashCode()](https://learn.microsoft.com/dotnet/api/system.object.gethashcode) \n[object.GetType()](https://learn.microsoft.com/dotnet/api/system.object.gettype) \n[object.ToString()](https://learn.microsoft.com/dotnet/api/system.object.tostring)\n\nNamespace\n---------\n\n[Google.Cloud.Video.Transcoder.V1](/dotnet/docs/reference/Google.Cloud.Video.Transcoder.V1/latest/Google.Cloud.Video.Transcoder.V1)\n\nAssembly\n--------\n\nGoogle.Cloud.Video.Transcoder.V1.dll\n\nConstructors\n------------\n\n### SpriteSheet()\n\n public SpriteSheet()\n\n### SpriteSheet(SpriteSheet)\n\n public SpriteSheet(SpriteSheet other)\n\nProperties\n----------\n\n### ColumnCount\n\n public int ColumnCount { get; set; }\n\nThe maximum number of sprites per row in a sprite sheet. The default is 0,\nwhich indicates no maximum limit.\n\n### EndTimeOffset\n\n public Duration EndTimeOffset { get; set; }\n\nEnd time in seconds, relative to the output file timeline. When\n`end_time_offset` is not specified, the sprites are generated until the end\nof the output file.\n\n### ExtractionStrategyCase\n\n public SpriteSheet.ExtractionStrategyOneofCase ExtractionStrategyCase { get; }\n\n### FilePrefix\n\n public string FilePrefix { get; set; }\n\nRequired. File name prefix for the generated sprite sheets.\n\nEach sprite sheet has an incremental 10-digit zero-padded suffix starting\nfrom 0 before the extension, such as `sprite_sheet0000000123.jpeg`.\n\n### Format\n\n public string Format { get; set; }\n\nFormat type. The default is `jpeg`.\n\nSupported formats:\n\n- `jpeg`\n\n### HasTotalCount\n\n public bool HasTotalCount { get; }\n\nGets whether the \"total_count\" field is set\n\n### Interval\n\n public Duration Interval { get; set; }\n\nStarting from `0s`, create sprites at regular intervals. Specify the\ninterval value in seconds.\n\n### Quality\n\n public int Quality { get; set; }\n\nThe quality of the generated sprite sheet. Enter a value between 1\nand 100, where 1 is the lowest quality and 100 is the highest quality.\nThe default is 100. A high quality value corresponds to a low image data\ncompression ratio.\n\n### RowCount\n\n public int RowCount { get; set; }\n\nThe maximum number of rows per sprite sheet. When the sprite sheet is full,\na new sprite sheet is created. The default is 0, which indicates no maximum\nlimit.\n\n### SpriteHeightPixels\n\n public int SpriteHeightPixels { get; set; }\n\nRequired. The height of sprite in pixels. Must be an even integer. To\npreserve the source aspect ratio, set the\n\\[SpriteSheet.sprite_height_pixels\\]\\[google.cloud.video.transcoder.v1.SpriteSheet.sprite_height_pixels\\]\nfield or the\n\\[SpriteSheet.sprite_width_pixels\\]\\[google.cloud.video.transcoder.v1.SpriteSheet.sprite_width_pixels\\]\nfield, but not both (the API will automatically calculate the missing\nfield).\n\nFor portrait videos that contain horizontal ASR and rotation metadata,\nprovide the height, in pixels, per the horizontal ASR. The API calculates\nthe width per the horizontal ASR. The API detects any rotation metadata\nand swaps the requested height and width for the output.\n\n### SpriteWidthPixels\n\n public int SpriteWidthPixels { get; set; }\n\nRequired. The width of sprite in pixels. Must be an even integer. To\npreserve the source aspect ratio, set the\n\\[SpriteSheet.sprite_width_pixels\\]\\[google.cloud.video.transcoder.v1.SpriteSheet.sprite_width_pixels\\]\nfield or the\n\\[SpriteSheet.sprite_height_pixels\\]\\[google.cloud.video.transcoder.v1.SpriteSheet.sprite_height_pixels\\]\nfield, but not both (the API will automatically calculate the missing\nfield).\n\nFor portrait videos that contain horizontal ASR and rotation metadata,\nprovide the width, in pixels, per the horizontal ASR. The API calculates\nthe height per the horizontal ASR. The API detects any rotation metadata\nand swaps the requested height and width for the output.\n\n### StartTimeOffset\n\n public Duration StartTimeOffset { get; set; }\n\nStart time in seconds, relative to the output file timeline. Determines the\nfirst sprite to pick. The default is `0s`.\n\n### TotalCount\n\n public int TotalCount { get; set; }\n\nTotal number of sprites. Create the specified number of sprites\ndistributed evenly across the timeline of the output media. The default\nis 100."]]