|
1 | | -import type { |
2 | | - AudioCodec, |
3 | | - StillImageFormat, |
4 | | - VideoImageFormat, |
5 | | -} from '@remotion/renderer'; |
6 | | -import type {TypeOfOption} from '@remotion/renderer/client'; |
7 | | -import {BrowserSafeApis} from '@remotion/renderer/client'; |
8 | 1 | import {Config, ConfigInternals} from './config'; |
9 | 2 | import {parsedCli} from './parsed-cli'; |
10 | 3 |
|
11 | | -const { |
12 | | - beepOnFinishOption, |
13 | | - colorSpaceOption, |
14 | | - concurrencyOption, |
15 | | - disallowParallelEncodingOption, |
16 | | - offthreadVideoCacheSizeInBytesOption, |
17 | | - encodingBufferSizeOption, |
18 | | - encodingMaxRateOption, |
19 | | - deleteAfterOption, |
20 | | - folderExpiryOption, |
21 | | - enableMultiprocessOnLinuxOption, |
22 | | - numberOfGifLoopsOption, |
23 | | - x264Option, |
24 | | - enforceAudioOption, |
25 | | - jpegQualityOption, |
26 | | - audioBitrateOption, |
27 | | - videoBitrateOption, |
28 | | - audioCodecOption, |
29 | | - publicPathOption, |
30 | | - audioLatencyHintOption, |
31 | | - darkModeOption, |
32 | | - publicLicenseKeyOption, |
33 | | - forceNewStudioOption, |
34 | | - numberOfSharedAudioTagsOption, |
35 | | - ipv4Option, |
36 | | - pixelFormatOption, |
37 | | - browserExecutableOption, |
38 | | - everyNthFrameOption, |
39 | | - proResProfileOption, |
40 | | - userAgentOption, |
41 | | - disableWebSecurityOption, |
42 | | - ignoreCertificateErrorsOption, |
43 | | - overrideHeightOption, |
44 | | - overrideWidthOption, |
45 | | - overrideFpsOption, |
46 | | - overrideDurationOption, |
47 | | - outDirOption, |
48 | | - packageManagerOption, |
49 | | - webpackPollOption, |
50 | | - keyboardShortcutsOption, |
51 | | - experimentalClientSideRenderingOption, |
52 | | - imageSequencePatternOption, |
53 | | - scaleOption, |
54 | | - overwriteOption, |
55 | | - crfOption, |
56 | | - logLevelOption, |
57 | | - videoCodecOption, |
58 | | - stillFrameOption, |
59 | | - imageSequenceOption, |
60 | | - versionFlagOption, |
61 | | - bundleCacheOption, |
62 | | - envFileOption, |
63 | | - glOption, |
64 | | - runsOption, |
65 | | - reproOption, |
66 | | - mutedOption, |
67 | | -} = BrowserSafeApis.options; |
68 | | - |
69 | | -export type CommandLineOptions = { |
70 | | - [browserExecutableOption.cliFlag]: TypeOfOption< |
71 | | - typeof browserExecutableOption |
72 | | - >; |
73 | | - [pixelFormatOption.cliFlag]: TypeOfOption<typeof pixelFormatOption>; |
74 | | - ['image-format']: VideoImageFormat | StillImageFormat; |
75 | | - [proResProfileOption.cliFlag]: TypeOfOption<typeof proResProfileOption>; |
76 | | - [x264Option.cliFlag]: TypeOfOption<typeof x264Option>; |
77 | | - [bundleCacheOption.cliFlag]: TypeOfOption<typeof bundleCacheOption>; |
78 | | - [envFileOption.cliFlag]: TypeOfOption<typeof envFileOption>; |
79 | | - [ignoreCertificateErrorsOption.cliFlag]: TypeOfOption< |
80 | | - typeof ignoreCertificateErrorsOption |
81 | | - >; |
82 | | - [darkModeOption.cliFlag]: TypeOfOption<typeof darkModeOption>; |
83 | | - [disableWebSecurityOption.cliFlag]: TypeOfOption< |
84 | | - typeof disableWebSecurityOption |
85 | | - >; |
86 | | - [everyNthFrameOption.cliFlag]: TypeOfOption<typeof everyNthFrameOption>; |
87 | | - [numberOfGifLoopsOption.cliFlag]: TypeOfOption<typeof numberOfGifLoopsOption>; |
88 | | - [numberOfSharedAudioTagsOption.cliFlag]: TypeOfOption< |
89 | | - typeof numberOfSharedAudioTagsOption |
90 | | - >; |
91 | | - [offthreadVideoCacheSizeInBytesOption.cliFlag]: TypeOfOption< |
92 | | - typeof offthreadVideoCacheSizeInBytesOption |
93 | | - >; |
94 | | - [colorSpaceOption.cliFlag]: TypeOfOption<typeof colorSpaceOption>; |
95 | | - [disallowParallelEncodingOption.cliFlag]: TypeOfOption< |
96 | | - typeof disallowParallelEncodingOption |
97 | | - >; |
98 | | - [beepOnFinishOption.cliFlag]: TypeOfOption<typeof beepOnFinishOption>; |
99 | | - [versionFlagOption.cliFlag]: TypeOfOption<typeof versionFlagOption>; |
100 | | - [videoCodecOption.cliFlag]: TypeOfOption<typeof videoCodecOption>; |
101 | | - [concurrencyOption.cliFlag]: TypeOfOption<typeof concurrencyOption>; |
102 | | - timeout: number; |
103 | | - config: string; |
104 | | - ['public-dir']: string; |
105 | | - [audioBitrateOption.cliFlag]: TypeOfOption<typeof audioBitrateOption>; |
106 | | - [videoBitrateOption.cliFlag]: TypeOfOption<typeof videoBitrateOption>; |
107 | | - [encodingBufferSizeOption.cliFlag]: TypeOfOption< |
108 | | - typeof encodingBufferSizeOption |
109 | | - >; |
110 | | - [encodingMaxRateOption.cliFlag]: TypeOfOption<typeof encodingMaxRateOption>; |
111 | | - [audioCodecOption.cliFlag]: AudioCodec; |
112 | | - [publicPathOption.cliFlag]: string; |
113 | | - [crfOption.cliFlag]: TypeOfOption<typeof crfOption>; |
114 | | - force: boolean; |
115 | | - output: string | undefined; |
116 | | - [overwriteOption.cliFlag]: TypeOfOption<typeof overwriteOption>; |
117 | | - png: boolean; |
118 | | - props: string; |
119 | | - quality: number; |
120 | | - [jpegQualityOption.cliFlag]: TypeOfOption<typeof jpegQualityOption>; |
121 | | - frames: string | number; |
122 | | - [scaleOption.cliFlag]: TypeOfOption<typeof scaleOption>; |
123 | | - [imageSequenceOption.cliFlag]: TypeOfOption<typeof imageSequenceOption>; |
124 | | - quiet: boolean; |
125 | | - q: boolean; |
126 | | - [logLevelOption.cliFlag]: TypeOfOption<typeof logLevelOption>; |
127 | | - help: boolean; |
128 | | - port: number; |
129 | | - [stillFrameOption.cliFlag]: TypeOfOption<typeof stillFrameOption>; |
130 | | - ['disable-headless']: boolean; |
131 | | - [keyboardShortcutsOption.cliFlag]: TypeOfOption< |
132 | | - typeof keyboardShortcutsOption |
133 | | - >; |
134 | | - [experimentalClientSideRenderingOption.cliFlag]: TypeOfOption< |
135 | | - typeof experimentalClientSideRenderingOption |
136 | | - >; |
137 | | - [mutedOption.cliFlag]: TypeOfOption<typeof mutedOption>; |
138 | | - [overrideHeightOption.cliFlag]: TypeOfOption<typeof overrideHeightOption>; |
139 | | - [overrideWidthOption.cliFlag]: TypeOfOption<typeof overrideWidthOption>; |
140 | | - [overrideFpsOption.cliFlag]: TypeOfOption<typeof overrideFpsOption>; |
141 | | - [overrideDurationOption.cliFlag]: TypeOfOption<typeof overrideDurationOption>; |
142 | | - [runsOption.cliFlag]: TypeOfOption<typeof runsOption>; |
143 | | - concurrencies: string; |
144 | | - [enforceAudioOption.cliFlag]: TypeOfOption<typeof enforceAudioOption>; |
145 | | - [glOption.cliFlag]: TypeOfOption<typeof glOption>; |
146 | | - [packageManagerOption.cliFlag]: TypeOfOption<typeof packageManagerOption>; |
147 | | - [webpackPollOption.cliFlag]: TypeOfOption<typeof webpackPollOption>; |
148 | | - ['no-open']: boolean; |
149 | | - ['browser']: string; |
150 | | - ['browser-args']: string; |
151 | | - [userAgentOption.cliFlag]: TypeOfOption<typeof userAgentOption>; |
152 | | - [outDirOption.cliFlag]: TypeOfOption<typeof outDirOption>; |
153 | | - [audioLatencyHintOption.cliFlag]: AudioContextLatencyCategory; |
154 | | - [ipv4Option.cliFlag]: TypeOfOption<typeof ipv4Option>; |
155 | | - [deleteAfterOption.cliFlag]: TypeOfOption<typeof deleteAfterOption>; |
156 | | - [folderExpiryOption.cliFlag]: TypeOfOption<typeof folderExpiryOption>; |
157 | | - [enableMultiprocessOnLinuxOption.cliFlag]: TypeOfOption< |
158 | | - typeof enableMultiprocessOnLinuxOption |
159 | | - >; |
160 | | - [reproOption.cliFlag]: TypeOfOption<typeof reproOption>; |
161 | | - [imageSequencePatternOption.cliFlag]: TypeOfOption< |
162 | | - typeof imageSequencePatternOption |
163 | | - >; |
164 | | - 'license-key': string; |
165 | | - [publicLicenseKeyOption.cliFlag]: string; |
166 | | - [forceNewStudioOption.cliFlag]: TypeOfOption<typeof forceNewStudioOption>; |
167 | | -}; |
168 | | - |
169 | 4 | export const parseCommandLine = () => { |
170 | 5 | if (parsedCli.frames) { |
171 | 6 | ConfigInternals.setFrameRangeFromCli(parsedCli.frames); |
|
0 commit comments