Files
plexjs/docs/models/operations/transcodesubtitlesrequest.md

93 lines
97 KiB
Markdown

# TranscodeSubtitlesRequest
## Example Usage
```typescript
import {
TranscodeSubtitlesLocation,
TranscodeSubtitlesProtocol,
TranscodeSubtitlesRequest,
TranscodeSubtitlesSubtitles,
} from "@lukehagar/plexjs/models/operations";
import { AdvancedSubtitles, BoolInt, TranscodeType } from "@lukehagar/plexjs/models/shared";
let value: TranscodeSubtitlesRequest = {
transcodeType: TranscodeType.Video,
advancedSubtitles: AdvancedSubtitles.Burn,
audioBoost: 50,
audioChannelCount: 5,
autoAdjustQuality: BoolInt.True,
autoAdjustSubtitle: BoolInt.True,
directPlay: BoolInt.True,
directStream: BoolInt.True,
directStreamAudio: BoolInt.True,
disableResolutionRotation: BoolInt.True,
hasMDE: BoolInt.True,
location: TranscodeSubtitlesLocation.Wan,
mediaBufferSize: 102400,
mediaIndex: 0,
musicBitrate: 5000,
offset: 90.5,
partIndex: 0,
path: "/library/metadata/151671",
peakBitrate: 12000,
photoResolution: "1080x1080",
protocol: TranscodeSubtitlesProtocol.Dash,
secondsPerSegment: 5,
subtitleSize: 50,
subtitles: TranscodeSubtitlesSubtitles.None,
videoBitrate: 12000,
videoQuality: 50,
videoResolution: "1080x1080",
xPlexClientProfileExtra:
"add-limitation(scope=videoCodec&scopeName=*&type=upperBound&name=video.frameRate&value=60&replace=true)+append-transcode-target-codec(type=videoProfile&context=streaming&videoCodec=h264%2Chevc&audioCodec=aac&protocol=dash)",
xPlexClientProfileName: "generic",
};
```
## Fields
| Field | Type | Required | Description | Example |
| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `accepts` | [shared.Accepts](../../models/shared/accepts.md) | :heavy_minus_sign: | Indicates the client accepts the indicated media types | |
| `clientIdentifier` | *string* | :heavy_minus_sign: | An opaque identifier unique to the client | abc123 |
| `product` | *string* | :heavy_minus_sign: | The name of the client product | Plex for Roku |
| `version` | *string* | :heavy_minus_sign: | The version of the client application | 2.4.1 |
| `platform` | *string* | :heavy_minus_sign: | The platform of the client | Roku |
| `platformVersion` | *string* | :heavy_minus_sign: | The version of the platform | 4.3 build 1057 |
| `device` | *string* | :heavy_minus_sign: | A relatively friendly name for the client device | Roku 3 |
| `model` | *string* | :heavy_minus_sign: | A potentially less friendly identifier for the device model | 4200X |
| `deviceVendor` | *string* | :heavy_minus_sign: | The device vendor | Roku |
| `deviceName` | *string* | :heavy_minus_sign: | A friendly name for the client | Living Room TV |
| `marketplace` | *string* | :heavy_minus_sign: | The marketplace on which the client application is distributed | googlePlay |
| `transcodeType` | [shared.TranscodeType](../../models/shared/transcodetype.md) | :heavy_check_mark: | Type of transcode media | |
| `transcodeSessionId` | *string* | :heavy_minus_sign: | Transcode session UUID | |
| `advancedSubtitles` | [shared.AdvancedSubtitles](../../models/shared/advancedsubtitles.md) | :heavy_minus_sign: | Indicates how incompatible advanced subtitles (such as ass/ssa) should be included: * 'burn' - Burn incompatible advanced text subtitles into the video stream * 'text' - Transcode incompatible advanced text subtitles to a compatible text format, even if some markup is lost<br/> | burn |
| `audioBoost` | *number* | :heavy_minus_sign: | Percentage of original audio loudness to use when transcoding (100 is equivalent to original volume, 50 is half, 200 is double, etc) | 50 |
| `audioChannelCount` | *number* | :heavy_minus_sign: | Target video number of audio channels. | 5 |
| `autoAdjustQuality` | [shared.BoolInt](../../models/shared/boolint.md) | :heavy_minus_sign: | Indicates the client supports ABR. | 1 |
| `autoAdjustSubtitle` | [shared.BoolInt](../../models/shared/boolint.md) | :heavy_minus_sign: | Indicates if the server should adjust subtitles based on Voice Activity Data. | 1 |
| `directPlay` | [shared.BoolInt](../../models/shared/boolint.md) | :heavy_minus_sign: | Indicates the client supports direct playing the indicated content. | 1 |
| `directStream` | [shared.BoolInt](../../models/shared/boolint.md) | :heavy_minus_sign: | Indicates the client supports direct streaming the video of the indicated content. | 1 |
| `directStreamAudio` | [shared.BoolInt](../../models/shared/boolint.md) | :heavy_minus_sign: | Indicates the client supports direct streaming the audio of the indicated content. | 1 |
| `disableResolutionRotation` | [shared.BoolInt](../../models/shared/boolint.md) | :heavy_minus_sign: | Indicates if resolution should be adjusted for orientation. | 1 |
| `hasMDE` | [shared.BoolInt](../../models/shared/boolint.md) | :heavy_minus_sign: | Ignore client profiles when determining if direct play is possible. Only has an effect when directPlay=1 and both mediaIndex and partIndex are specified and neither are -1 | 1 |
| `location` | [operations.TranscodeSubtitlesLocation](../../models/operations/transcodesubtitleslocation.md) | :heavy_minus_sign: | Network type of the client, can be used to help determine target bitrate. | wan |
| `mediaBufferSize` | *number* | :heavy_minus_sign: | Buffer size used in playback (in KB). Clients should specify a lower bound if not known exactly. This value could make the difference between transcoding and direct play on bandwidth constrained networks. | 102400 |
| `mediaIndex` | *number* | :heavy_minus_sign: | Index of the media to transcode. -1 or not specified indicates let the server choose. | 0 |
| `musicBitrate` | *number* | :heavy_minus_sign: | Target bitrate for audio only files (in kbps, used to transcode). | 5000 |
| `offset` | *number* | :heavy_minus_sign: | Offset from the start of the media (in seconds). | 90.5 |
| `partIndex` | *number* | :heavy_minus_sign: | Index of the part to transcode. -1 or not specified indicates the server should join parts together in a transcode | 0 |
| `path` | *string* | :heavy_minus_sign: | Internal PMS path of the media to transcode. | /library/metadata/151671 |
| `peakBitrate` | *number* | :heavy_minus_sign: | Maximum bitrate (in kbps) to use in ABR. | 12000 |
| `photoResolution` | *string* | :heavy_minus_sign: | Target photo resolution. | 1080x1080 |
| `protocol` | [operations.TranscodeSubtitlesProtocol](../../models/operations/transcodesubtitlesprotocol.md) | :heavy_minus_sign: | Indicates the network streaming protocol to be used for the transcode session: * 'http' - include the file in the http response such as MKV streaming * 'hls' - hls stream (RFC 8216) * 'dash' - dash stream (ISO/IEC 23009-1:2022)<br/> | dash |
| `secondsPerSegment` | *number* | :heavy_minus_sign: | Number of seconds to include in each transcoded segment | 5 |
| `subtitleSize` | *number* | :heavy_minus_sign: | Percentage of original subtitle size to use when burning subtitles (100 is equivalent to original size, 50 is half, ect) | 50 |
| `subtitles` | [operations.TranscodeSubtitlesSubtitles](../../models/operations/transcodesubtitlessubtitles.md) | :heavy_minus_sign: | Indicates how subtitles should be included: * 'auto' - Compute the appropriate subtitle setting automatically * 'burn' - Burn the selected subtitle; auto if no selected subtitle * 'none' - Ignore all subtitle streams * 'sidecar' - The selected subtitle should be provided as a sidecar * 'embedded' - The selected subtitle should be provided as an embedded stream * 'segmented' - The selected subtitle should be provided as a segmented stream<br/> | Burn |
| `videoBitrate` | *number* | :heavy_minus_sign: | Target video bitrate (in kbps). | 12000 |
| `videoQuality` | *number* | :heavy_minus_sign: | Target photo quality. | 50 |
| `videoResolution` | *string* | :heavy_minus_sign: | Target maximum video resolution. | 1080x1080 |
| `xPlexClientProfileExtra` | *string* | :heavy_minus_sign: | See [Profile Augmentations](#section/API-Info/Profile-Augmentations) . | add-limitation(scope=videoCodec&scopeName=*&type=upperBound&name=video.frameRate&value=60&replace=true)+append-transcode-target-codec(type=videoProfile&context=streaming&videoCodec=h264%2Chevc&audioCodec=aac&protocol=dash) |
| `xPlexClientProfileName` | *string* | :heavy_minus_sign: | Which built in Client Profile to use in the decision. Generally should only be used to specify the Generic profile. | generic |
| `xPlexSessionIdentifier` | *string* | :heavy_minus_sign: | Unique per client playback session. Used if a client can playback multiple items at a time (such as a browser with multiple tabs) | |