@temelj/ffmpeg 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +118 -0
- package/dist/args.d.mts +9 -0
- package/dist/args.d.mts.map +1 -0
- package/dist/args.mjs +71 -0
- package/dist/args.mjs.map +1 -0
- package/dist/builder.d.mts +52 -0
- package/dist/builder.d.mts.map +1 -0
- package/dist/builder.mjs +174 -0
- package/dist/builder.mjs.map +1 -0
- package/dist/filter-graph.d.mts +87 -0
- package/dist/filter-graph.d.mts.map +1 -0
- package/dist/filter-graph.mjs +206 -0
- package/dist/filter-graph.mjs.map +1 -0
- package/dist/generated/options.d.mts +493 -0
- package/dist/generated/options.d.mts.map +1 -0
- package/dist/generated/options.mjs +1 -0
- package/dist/generated/serialize.d.mts +34 -0
- package/dist/generated/serialize.d.mts.map +1 -0
- package/dist/generated/serialize.mjs +294 -0
- package/dist/generated/serialize.mjs.map +1 -0
- package/dist/mapping.d.mts +27 -0
- package/dist/mapping.d.mts.map +1 -0
- package/dist/mapping.mjs +44 -0
- package/dist/mapping.mjs.map +1 -0
- package/dist/mod.d.mts +7 -0
- package/dist/mod.mjs +5 -0
- package/dist/structured.d.mts +66 -0
- package/dist/structured.d.mts.map +1 -0
- package/dist/structured.mjs +114 -0
- package/dist/structured.mjs.map +1 -0
- package/dist/types.d.mts +26 -0
- package/dist/types.d.mts.map +1 -0
- package/dist/types.mjs +1 -0
- package/package.json +37 -0
|
@@ -0,0 +1,294 @@
|
|
|
1
|
+
//#region src/generated/serialize.ts
|
|
2
|
+
const makeFlag = (flag) => ({
|
|
3
|
+
flag,
|
|
4
|
+
isFlag: true,
|
|
5
|
+
isArray: false
|
|
6
|
+
});
|
|
7
|
+
const makeValue = (flag) => ({
|
|
8
|
+
flag,
|
|
9
|
+
isFlag: false,
|
|
10
|
+
isArray: false
|
|
11
|
+
});
|
|
12
|
+
const makeArray = (flag) => ({
|
|
13
|
+
flag,
|
|
14
|
+
isFlag: false,
|
|
15
|
+
isArray: true
|
|
16
|
+
});
|
|
17
|
+
const generatedInputDefs = {
|
|
18
|
+
f: makeValue("-f"),
|
|
19
|
+
i: makeValue("-i"),
|
|
20
|
+
streamLoop: makeValue("-stream_loop"),
|
|
21
|
+
c: makeValue("-c"),
|
|
22
|
+
t: makeValue("-t"),
|
|
23
|
+
to: makeValue("-to"),
|
|
24
|
+
ss: makeValue("-ss"),
|
|
25
|
+
sseof: makeValue("-sseof"),
|
|
26
|
+
isync: makeValue("-isync"),
|
|
27
|
+
itsoffset: makeValue("-itsoffset"),
|
|
28
|
+
itsscale: makeValue("-itsscale"),
|
|
29
|
+
dn: makeFlag("-dn"),
|
|
30
|
+
reinitFilter: makeFlag("-reinit_filter"),
|
|
31
|
+
dropChanged: makeFlag("-drop_changed"),
|
|
32
|
+
dumpAttachment: makeValue("-dump_attachment"),
|
|
33
|
+
r: makeValue("-r"),
|
|
34
|
+
s: makeValue("-s"),
|
|
35
|
+
displayRotation: makeValue("-display_rotation"),
|
|
36
|
+
displayHflip: makeFlag("-display_hflip"),
|
|
37
|
+
displayVflip: makeFlag("-display_vflip"),
|
|
38
|
+
masteringDisplay: makeValue("-mastering_display"),
|
|
39
|
+
contentLight: makeValue("-content_light"),
|
|
40
|
+
vn: makeFlag("-vn"),
|
|
41
|
+
pixFmt: makeValue("-pix_fmt"),
|
|
42
|
+
swsFlags: makeValue("-sws_flags"),
|
|
43
|
+
applyCropping: makeValue("-apply_cropping"),
|
|
44
|
+
filterHwDevice: makeValue("-filter_hw_device"),
|
|
45
|
+
hwaccel: makeValue("-hwaccel"),
|
|
46
|
+
hwaccelDevice: makeValue("-hwaccel_device"),
|
|
47
|
+
fixSubDurationHeartbeat: makeValue("-fix_sub_duration_heartbeat"),
|
|
48
|
+
ar: makeValue("-ar"),
|
|
49
|
+
ac: makeValue("-ac"),
|
|
50
|
+
an: makeFlag("-an"),
|
|
51
|
+
acodec: makeValue("-acodec"),
|
|
52
|
+
guessLayoutMax: makeValue("-guess_layout_max"),
|
|
53
|
+
sn: makeFlag("-sn"),
|
|
54
|
+
ignoreUnknown: makeFlag("-ignore_unknown"),
|
|
55
|
+
copyUnknown: makeFlag("-copy_unknown"),
|
|
56
|
+
readrate: makeValue("-readrate"),
|
|
57
|
+
re: makeFlag("-re"),
|
|
58
|
+
readrateInitialBurst: makeValue("-readrate_initial_burst"),
|
|
59
|
+
readrateCatchup: makeValue("-readrate_catchup"),
|
|
60
|
+
copyTs: makeFlag("-copyts"),
|
|
61
|
+
startAtZero: makeFlag("-start_at_zero"),
|
|
62
|
+
copyTb: makeValue("-copytb"),
|
|
63
|
+
bitExact: makeFlag("-bitexact"),
|
|
64
|
+
dtsDeltaThreshold: makeValue("-dts_delta_threshold"),
|
|
65
|
+
dtsErrorThreshold: makeValue("-dts_error_threshold"),
|
|
66
|
+
bsf: makeValue("-bsf"),
|
|
67
|
+
tag: makeValue("-tag"),
|
|
68
|
+
timecode: makeValue("-timecode"),
|
|
69
|
+
accurateSeek: makeFlag("-accurate_seek"),
|
|
70
|
+
seekTimestamp: makeFlag("-seek_timestamp"),
|
|
71
|
+
threadQueueSize: makeValue("-thread_queue_size"),
|
|
72
|
+
discard: makeValue("-discard"),
|
|
73
|
+
loop: makeValue("-loop"),
|
|
74
|
+
initHwDevice: makeValue("-init_hw_device")
|
|
75
|
+
};
|
|
76
|
+
const generatedOutputDefs = {
|
|
77
|
+
f: makeValue("-f"),
|
|
78
|
+
c: makeValue("-c"),
|
|
79
|
+
t: makeValue("-t"),
|
|
80
|
+
to: makeValue("-to"),
|
|
81
|
+
fs: makeValue("-fs"),
|
|
82
|
+
ss: makeValue("-ss"),
|
|
83
|
+
timestamp: makeValue("-timestamp"),
|
|
84
|
+
metadata: makeArray("-metadata"),
|
|
85
|
+
disposition: makeArray("-disposition"),
|
|
86
|
+
program: makeArray("-program"),
|
|
87
|
+
streamGroup: makeArray("-stream_group"),
|
|
88
|
+
target: makeValue("-target"),
|
|
89
|
+
dn: makeFlag("-dn"),
|
|
90
|
+
dframes: makeValue("-dframes"),
|
|
91
|
+
frames: makeValue("-frames"),
|
|
92
|
+
q: makeValue("-q"),
|
|
93
|
+
filter: makeValue("-filter"),
|
|
94
|
+
pre: makeValue("-pre"),
|
|
95
|
+
attach: makeValue("-attach"),
|
|
96
|
+
vframes: makeValue("-vframes"),
|
|
97
|
+
r: makeValue("-r"),
|
|
98
|
+
fpsmax: makeValue("-fpsmax"),
|
|
99
|
+
s: makeValue("-s"),
|
|
100
|
+
aspect: makeValue("-aspect"),
|
|
101
|
+
vn: makeFlag("-vn"),
|
|
102
|
+
vcodec: makeValue("-vcodec"),
|
|
103
|
+
pass: makeValue("-pass"),
|
|
104
|
+
passLogfile: makeValue("-passlogfile"),
|
|
105
|
+
vf: makeValue("-vf"),
|
|
106
|
+
pixFmt: makeValue("-pix_fmt"),
|
|
107
|
+
swsFlags: makeValue("-sws_flags"),
|
|
108
|
+
rcOverride: makeValue("-rc_override"),
|
|
109
|
+
vstats: makeValue("-vstats"),
|
|
110
|
+
vstatsFile: makeValue("-vstats_file"),
|
|
111
|
+
vstatsVersion: makeValue("-vstats_version"),
|
|
112
|
+
vtag: makeValue("-vtag"),
|
|
113
|
+
forceKeyFrames: makeValue("-force_key_frames"),
|
|
114
|
+
copyinkf: makeFlag("-copyinkf"),
|
|
115
|
+
aframes: makeValue("-aframes"),
|
|
116
|
+
ar: makeValue("-ar"),
|
|
117
|
+
aq: makeValue("-aq"),
|
|
118
|
+
ac: makeValue("-ac"),
|
|
119
|
+
an: makeFlag("-an"),
|
|
120
|
+
acodec: makeValue("-acodec"),
|
|
121
|
+
sampleFmt: makeValue("-sample_fmt"),
|
|
122
|
+
af: makeValue("-af"),
|
|
123
|
+
atag: makeValue("-atag"),
|
|
124
|
+
chLayout: makeValue("-ch_layout"),
|
|
125
|
+
channelLayout: makeValue("-channel_layout"),
|
|
126
|
+
scodec: makeValue("-scodec"),
|
|
127
|
+
sn: makeFlag("-sn"),
|
|
128
|
+
canvasSize: makeValue("-canvas_size"),
|
|
129
|
+
map: makeArray("-map"),
|
|
130
|
+
mapMetadata: makeArray("-map_metadata"),
|
|
131
|
+
mapChapters: makeArray("-map_chapters"),
|
|
132
|
+
apad: makeValue("-apad"),
|
|
133
|
+
encTimeBase: makeValue("-enc_time_base"),
|
|
134
|
+
shortest: makeFlag("-shortest"),
|
|
135
|
+
shortestBufDuration: makeValue("-shortest_buf_duration"),
|
|
136
|
+
muxdelay: makeValue("-muxdelay"),
|
|
137
|
+
muxpreload: makeValue("-muxpreload"),
|
|
138
|
+
streamid: makeArray("-streamid"),
|
|
139
|
+
bsf: makeValue("-bsf"),
|
|
140
|
+
tag: makeValue("-tag"),
|
|
141
|
+
threadQueueSize: makeValue("-thread_queue_size"),
|
|
142
|
+
maxMuxingQueueSize: makeValue("-max_muxing_queue_size"),
|
|
143
|
+
muxingQueueDataThreshold: makeValue("-muxing_queue_data_threshold"),
|
|
144
|
+
bitsPerRawSample: makeValue("-bits_per_raw_sample"),
|
|
145
|
+
statsEncPre: makeValue("-stats_enc_pre"),
|
|
146
|
+
statsEncPreFmt: makeValue("-stats_enc_pre_fmt"),
|
|
147
|
+
videoCodec: makeValue("-c:v"),
|
|
148
|
+
audioCodec: makeValue("-c:a"),
|
|
149
|
+
subtitleCodec: makeValue("-c:s"),
|
|
150
|
+
dataCodec: makeValue("-c:d"),
|
|
151
|
+
videoBitrate: makeValue("-b:v"),
|
|
152
|
+
audioBitrate: makeValue("-b:a"),
|
|
153
|
+
subtitleBitrate: makeValue("-b:s"),
|
|
154
|
+
vq: makeValue("-q:v"),
|
|
155
|
+
qscale: makeValue("-qscale"),
|
|
156
|
+
level: makeValue("-level"),
|
|
157
|
+
profile: makeValue("-profile"),
|
|
158
|
+
preset: makeValue("-preset"),
|
|
159
|
+
tune: makeValue("-tune"),
|
|
160
|
+
crf: makeValue("-crf"),
|
|
161
|
+
movflags: makeValue("-movflags"),
|
|
162
|
+
minrate: makeValue("-minrate"),
|
|
163
|
+
maxrate: makeValue("-maxrate"),
|
|
164
|
+
bufsize: makeValue("-bufsize"),
|
|
165
|
+
codec: makeValue("-codec"),
|
|
166
|
+
statsEncPost: makeValue("-stats_enc_post"),
|
|
167
|
+
statsEncPostFmt: makeValue("-stats_enc_post_fmt")
|
|
168
|
+
};
|
|
169
|
+
const generatedGlobalDefs = {
|
|
170
|
+
loglevel: makeValue("-loglevel"),
|
|
171
|
+
report: makeFlag("-report"),
|
|
172
|
+
hideBanner: makeFlag("-hide_banner"),
|
|
173
|
+
cpuflags: makeValue("-cpuflags"),
|
|
174
|
+
cpucount: makeValue("-cpucount"),
|
|
175
|
+
y: makeFlag("-y"),
|
|
176
|
+
n: makeFlag("-n"),
|
|
177
|
+
recastMedia: makeFlag("-recast_media"),
|
|
178
|
+
filterThreads: makeValue("-filter_threads"),
|
|
179
|
+
filterBufferedFrames: makeValue("-filter_buffered_frames"),
|
|
180
|
+
stats: makeFlag("-stats"),
|
|
181
|
+
statsPeriod: makeValue("-stats_period"),
|
|
182
|
+
printGraphs: makeFlag("-print_graphs"),
|
|
183
|
+
printGraphsFile: makeValue("-print_graphs_file"),
|
|
184
|
+
printGraphsFormat: makeValue("-print_graphs_format"),
|
|
185
|
+
progress: makeValue("-progress"),
|
|
186
|
+
stdin: makeFlag("-stdin"),
|
|
187
|
+
debugTs: makeFlag("-debug_ts"),
|
|
188
|
+
autorotate: makeFlag("-autorotate"),
|
|
189
|
+
autoscale: makeFlag("-autoscale"),
|
|
190
|
+
fixSubDuration: makeFlag("-fix_sub_duration"),
|
|
191
|
+
benchmark: makeFlag("-benchmark"),
|
|
192
|
+
benchmarkAll: makeFlag("-benchmark_all"),
|
|
193
|
+
timelimit: makeValue("-timelimit"),
|
|
194
|
+
dump: makeFlag("-dump"),
|
|
195
|
+
hex: makeFlag("-hex"),
|
|
196
|
+
vsync: makeValue("-vsync"),
|
|
197
|
+
frameDropThreshold: makeValue("-frame_drop_threshold"),
|
|
198
|
+
filterComplex: makeValue("-filter_complex"),
|
|
199
|
+
filterComplexThreads: makeValue("-filter_complex_threads"),
|
|
200
|
+
lavfi: makeValue("-lavfi"),
|
|
201
|
+
sdpFile: makeValue("-sdp_file"),
|
|
202
|
+
abortOn: makeValue("-abort_on"),
|
|
203
|
+
maxErrorRate: makeValue("-max_error_rate"),
|
|
204
|
+
xerror: makeFlag("-xerror"),
|
|
205
|
+
autoConversionFilters: makeFlag("-auto_conversion_filters"),
|
|
206
|
+
overwrite: makeFlag("-y"),
|
|
207
|
+
noOverwrite: makeFlag("-n"),
|
|
208
|
+
noStdin: makeFlag("-nostdin"),
|
|
209
|
+
noStats: makeFlag("-nostats")
|
|
210
|
+
};
|
|
211
|
+
const generatedInputStreamDefs = {
|
|
212
|
+
c: makeValue("-c"),
|
|
213
|
+
itsscale: makeValue("-itsscale"),
|
|
214
|
+
reinitFilter: makeFlag("-reinit_filter"),
|
|
215
|
+
dropChanged: makeFlag("-drop_changed"),
|
|
216
|
+
dumpAttachment: makeValue("-dump_attachment"),
|
|
217
|
+
r: makeValue("-r"),
|
|
218
|
+
s: makeValue("-s"),
|
|
219
|
+
displayRotation: makeValue("-display_rotation"),
|
|
220
|
+
displayHflip: makeFlag("-display_hflip"),
|
|
221
|
+
displayVflip: makeFlag("-display_vflip"),
|
|
222
|
+
masteringDisplay: makeValue("-mastering_display"),
|
|
223
|
+
contentLight: makeValue("-content_light"),
|
|
224
|
+
pixFmt: makeValue("-pix_fmt"),
|
|
225
|
+
applyCropping: makeValue("-apply_cropping"),
|
|
226
|
+
hwaccel: makeValue("-hwaccel"),
|
|
227
|
+
hwaccelDevice: makeValue("-hwaccel_device"),
|
|
228
|
+
ar: makeValue("-ar"),
|
|
229
|
+
ac: makeValue("-ac"),
|
|
230
|
+
guessLayoutMax: makeValue("-guess_layout_max"),
|
|
231
|
+
bsf: makeValue("-bsf"),
|
|
232
|
+
tag: makeValue("-tag")
|
|
233
|
+
};
|
|
234
|
+
const generatedOutputStreamDefs = {
|
|
235
|
+
c: makeValue("-c"),
|
|
236
|
+
disposition: makeArray("-disposition"),
|
|
237
|
+
frames: makeValue("-frames"),
|
|
238
|
+
q: makeValue("-q"),
|
|
239
|
+
filter: makeValue("-filter"),
|
|
240
|
+
pre: makeValue("-pre"),
|
|
241
|
+
r: makeValue("-r"),
|
|
242
|
+
fpsmax: makeValue("-fpsmax"),
|
|
243
|
+
s: makeValue("-s"),
|
|
244
|
+
aspect: makeValue("-aspect"),
|
|
245
|
+
pass: makeValue("-pass"),
|
|
246
|
+
passLogfile: makeValue("-passlogfile"),
|
|
247
|
+
pixFmt: makeValue("-pix_fmt"),
|
|
248
|
+
rcOverride: makeValue("-rc_override"),
|
|
249
|
+
forceKeyFrames: makeValue("-force_key_frames"),
|
|
250
|
+
copyinkf: makeFlag("-copyinkf"),
|
|
251
|
+
ar: makeValue("-ar"),
|
|
252
|
+
aq: makeValue("-aq"),
|
|
253
|
+
ac: makeValue("-ac"),
|
|
254
|
+
sampleFmt: makeValue("-sample_fmt"),
|
|
255
|
+
chLayout: makeValue("-ch_layout"),
|
|
256
|
+
channelLayout: makeValue("-channel_layout"),
|
|
257
|
+
apad: makeValue("-apad"),
|
|
258
|
+
encTimeBase: makeValue("-enc_time_base"),
|
|
259
|
+
bsf: makeValue("-bsf"),
|
|
260
|
+
tag: makeValue("-tag"),
|
|
261
|
+
maxMuxingQueueSize: makeValue("-max_muxing_queue_size"),
|
|
262
|
+
muxingQueueDataThreshold: makeValue("-muxing_queue_data_threshold"),
|
|
263
|
+
bitsPerRawSample: makeValue("-bits_per_raw_sample"),
|
|
264
|
+
statsEncPre: makeValue("-stats_enc_pre"),
|
|
265
|
+
statsEncPreFmt: makeValue("-stats_enc_pre_fmt"),
|
|
266
|
+
videoCodec: makeValue("-c:v"),
|
|
267
|
+
audioCodec: makeValue("-c:a"),
|
|
268
|
+
subtitleCodec: makeValue("-c:s"),
|
|
269
|
+
dataCodec: makeValue("-c:d"),
|
|
270
|
+
videoBitrate: makeValue("-b:v"),
|
|
271
|
+
audioBitrate: makeValue("-b:a"),
|
|
272
|
+
subtitleBitrate: makeValue("-b:s"),
|
|
273
|
+
vq: makeValue("-q:v"),
|
|
274
|
+
qscale: makeValue("-qscale"),
|
|
275
|
+
level: makeValue("-level"),
|
|
276
|
+
profile: makeValue("-profile"),
|
|
277
|
+
preset: makeValue("-preset"),
|
|
278
|
+
tune: makeValue("-tune"),
|
|
279
|
+
crf: makeValue("-crf"),
|
|
280
|
+
minrate: makeValue("-minrate"),
|
|
281
|
+
maxrate: makeValue("-maxrate"),
|
|
282
|
+
bufsize: makeValue("-bufsize"),
|
|
283
|
+
codec: makeValue("-codec"),
|
|
284
|
+
statsEncPost: makeValue("-stats_enc_post"),
|
|
285
|
+
statsEncPostFmt: makeValue("-stats_enc_post_fmt")
|
|
286
|
+
};
|
|
287
|
+
const generatedOutputMetadataDefs = {
|
|
288
|
+
metadata: makeArray("-metadata"),
|
|
289
|
+
mapMetadata: makeArray("-map_metadata")
|
|
290
|
+
};
|
|
291
|
+
//#endregion
|
|
292
|
+
export { generatedGlobalDefs, generatedInputDefs, generatedInputStreamDefs, generatedOutputDefs, generatedOutputMetadataDefs, generatedOutputStreamDefs };
|
|
293
|
+
|
|
294
|
+
//# sourceMappingURL=serialize.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serialize.mjs","names":[],"sources":["../../src/generated/serialize.ts"],"sourcesContent":["// auto-generated from ffmpeg-options.json — do not edit\n// scraper run: 2026-05-30T17:50:52.551Z\n// source: https://ffmpeg.org\n\nconst makeFlag = (flag: string) => ({ flag, isFlag: true as const, isArray: false as const });\nconst makeValue = (flag: string) => ({ flag, isFlag: false as const, isArray: false as const });\nconst makeArray = (flag: string) => ({ flag, isFlag: false as const, isArray: true as const });\n\nexport const generatedInputDefs: Record<\n string,\n { flag: string; isFlag: boolean; isArray: boolean }\n> = {\n f: makeValue(\"-f\"),\n i: makeValue(\"-i\"),\n streamLoop: makeValue(\"-stream_loop\"),\n c: makeValue(\"-c\"),\n t: makeValue(\"-t\"),\n to: makeValue(\"-to\"),\n ss: makeValue(\"-ss\"),\n sseof: makeValue(\"-sseof\"),\n isync: makeValue(\"-isync\"),\n itsoffset: makeValue(\"-itsoffset\"),\n itsscale: makeValue(\"-itsscale\"),\n dn: makeFlag(\"-dn\"),\n reinitFilter: makeFlag(\"-reinit_filter\"),\n dropChanged: makeFlag(\"-drop_changed\"),\n dumpAttachment: makeValue(\"-dump_attachment\"),\n r: makeValue(\"-r\"),\n s: makeValue(\"-s\"),\n displayRotation: makeValue(\"-display_rotation\"),\n displayHflip: makeFlag(\"-display_hflip\"),\n displayVflip: makeFlag(\"-display_vflip\"),\n masteringDisplay: makeValue(\"-mastering_display\"),\n contentLight: makeValue(\"-content_light\"),\n vn: makeFlag(\"-vn\"),\n pixFmt: makeValue(\"-pix_fmt\"),\n swsFlags: makeValue(\"-sws_flags\"),\n applyCropping: makeValue(\"-apply_cropping\"),\n filterHwDevice: makeValue(\"-filter_hw_device\"),\n hwaccel: makeValue(\"-hwaccel\"),\n hwaccelDevice: makeValue(\"-hwaccel_device\"),\n fixSubDurationHeartbeat: makeValue(\"-fix_sub_duration_heartbeat\"),\n ar: makeValue(\"-ar\"),\n ac: makeValue(\"-ac\"),\n an: makeFlag(\"-an\"),\n acodec: makeValue(\"-acodec\"),\n guessLayoutMax: makeValue(\"-guess_layout_max\"),\n sn: makeFlag(\"-sn\"),\n ignoreUnknown: makeFlag(\"-ignore_unknown\"),\n copyUnknown: makeFlag(\"-copy_unknown\"),\n readrate: makeValue(\"-readrate\"),\n re: makeFlag(\"-re\"),\n readrateInitialBurst: makeValue(\"-readrate_initial_burst\"),\n readrateCatchup: makeValue(\"-readrate_catchup\"),\n copyTs: makeFlag(\"-copyts\"),\n startAtZero: makeFlag(\"-start_at_zero\"),\n copyTb: makeValue(\"-copytb\"),\n bitExact: makeFlag(\"-bitexact\"),\n dtsDeltaThreshold: makeValue(\"-dts_delta_threshold\"),\n dtsErrorThreshold: makeValue(\"-dts_error_threshold\"),\n bsf: makeValue(\"-bsf\"),\n tag: makeValue(\"-tag\"),\n timecode: makeValue(\"-timecode\"),\n accurateSeek: makeFlag(\"-accurate_seek\"),\n seekTimestamp: makeFlag(\"-seek_timestamp\"),\n threadQueueSize: makeValue(\"-thread_queue_size\"),\n discard: makeValue(\"-discard\"),\n loop: makeValue(\"-loop\"),\n initHwDevice: makeValue(\"-init_hw_device\"),\n};\n\nexport const generatedOutputDefs: Record<\n string,\n { flag: string; isFlag: boolean; isArray: boolean }\n> = {\n f: makeValue(\"-f\"),\n c: makeValue(\"-c\"),\n t: makeValue(\"-t\"),\n to: makeValue(\"-to\"),\n fs: makeValue(\"-fs\"),\n ss: makeValue(\"-ss\"),\n timestamp: makeValue(\"-timestamp\"),\n metadata: makeArray(\"-metadata\"),\n disposition: makeArray(\"-disposition\"),\n program: makeArray(\"-program\"),\n streamGroup: makeArray(\"-stream_group\"),\n target: makeValue(\"-target\"),\n dn: makeFlag(\"-dn\"),\n dframes: makeValue(\"-dframes\"),\n frames: makeValue(\"-frames\"),\n q: makeValue(\"-q\"),\n filter: makeValue(\"-filter\"),\n pre: makeValue(\"-pre\"),\n attach: makeValue(\"-attach\"),\n vframes: makeValue(\"-vframes\"),\n r: makeValue(\"-r\"),\n fpsmax: makeValue(\"-fpsmax\"),\n s: makeValue(\"-s\"),\n aspect: makeValue(\"-aspect\"),\n vn: makeFlag(\"-vn\"),\n vcodec: makeValue(\"-vcodec\"),\n pass: makeValue(\"-pass\"),\n passLogfile: makeValue(\"-passlogfile\"),\n vf: makeValue(\"-vf\"),\n pixFmt: makeValue(\"-pix_fmt\"),\n swsFlags: makeValue(\"-sws_flags\"),\n rcOverride: makeValue(\"-rc_override\"),\n vstats: makeValue(\"-vstats\"),\n vstatsFile: makeValue(\"-vstats_file\"),\n vstatsVersion: makeValue(\"-vstats_version\"),\n vtag: makeValue(\"-vtag\"),\n forceKeyFrames: makeValue(\"-force_key_frames\"),\n copyinkf: makeFlag(\"-copyinkf\"),\n aframes: makeValue(\"-aframes\"),\n ar: makeValue(\"-ar\"),\n aq: makeValue(\"-aq\"),\n ac: makeValue(\"-ac\"),\n an: makeFlag(\"-an\"),\n acodec: makeValue(\"-acodec\"),\n sampleFmt: makeValue(\"-sample_fmt\"),\n af: makeValue(\"-af\"),\n atag: makeValue(\"-atag\"),\n chLayout: makeValue(\"-ch_layout\"),\n channelLayout: makeValue(\"-channel_layout\"),\n scodec: makeValue(\"-scodec\"),\n sn: makeFlag(\"-sn\"),\n canvasSize: makeValue(\"-canvas_size\"),\n map: makeArray(\"-map\"),\n mapMetadata: makeArray(\"-map_metadata\"),\n mapChapters: makeArray(\"-map_chapters\"),\n apad: makeValue(\"-apad\"),\n encTimeBase: makeValue(\"-enc_time_base\"),\n shortest: makeFlag(\"-shortest\"),\n shortestBufDuration: makeValue(\"-shortest_buf_duration\"),\n muxdelay: makeValue(\"-muxdelay\"),\n muxpreload: makeValue(\"-muxpreload\"),\n streamid: makeArray(\"-streamid\"),\n bsf: makeValue(\"-bsf\"),\n tag: makeValue(\"-tag\"),\n threadQueueSize: makeValue(\"-thread_queue_size\"),\n maxMuxingQueueSize: makeValue(\"-max_muxing_queue_size\"),\n muxingQueueDataThreshold: makeValue(\"-muxing_queue_data_threshold\"),\n bitsPerRawSample: makeValue(\"-bits_per_raw_sample\"),\n statsEncPre: makeValue(\"-stats_enc_pre\"),\n statsEncPreFmt: makeValue(\"-stats_enc_pre_fmt\"),\n videoCodec: makeValue(\"-c:v\"),\n audioCodec: makeValue(\"-c:a\"),\n subtitleCodec: makeValue(\"-c:s\"),\n dataCodec: makeValue(\"-c:d\"),\n videoBitrate: makeValue(\"-b:v\"),\n audioBitrate: makeValue(\"-b:a\"),\n subtitleBitrate: makeValue(\"-b:s\"),\n vq: makeValue(\"-q:v\"),\n qscale: makeValue(\"-qscale\"),\n level: makeValue(\"-level\"),\n profile: makeValue(\"-profile\"),\n preset: makeValue(\"-preset\"),\n tune: makeValue(\"-tune\"),\n crf: makeValue(\"-crf\"),\n movflags: makeValue(\"-movflags\"),\n minrate: makeValue(\"-minrate\"),\n maxrate: makeValue(\"-maxrate\"),\n bufsize: makeValue(\"-bufsize\"),\n codec: makeValue(\"-codec\"),\n statsEncPost: makeValue(\"-stats_enc_post\"),\n statsEncPostFmt: makeValue(\"-stats_enc_post_fmt\"),\n};\n\nexport const generatedGlobalDefs: Record<\n string,\n { flag: string; isFlag: boolean; isArray: boolean }\n> = {\n loglevel: makeValue(\"-loglevel\"),\n report: makeFlag(\"-report\"),\n hideBanner: makeFlag(\"-hide_banner\"),\n cpuflags: makeValue(\"-cpuflags\"),\n cpucount: makeValue(\"-cpucount\"),\n y: makeFlag(\"-y\"),\n n: makeFlag(\"-n\"),\n recastMedia: makeFlag(\"-recast_media\"),\n filterThreads: makeValue(\"-filter_threads\"),\n filterBufferedFrames: makeValue(\"-filter_buffered_frames\"),\n stats: makeFlag(\"-stats\"),\n statsPeriod: makeValue(\"-stats_period\"),\n printGraphs: makeFlag(\"-print_graphs\"),\n printGraphsFile: makeValue(\"-print_graphs_file\"),\n printGraphsFormat: makeValue(\"-print_graphs_format\"),\n progress: makeValue(\"-progress\"),\n stdin: makeFlag(\"-stdin\"),\n debugTs: makeFlag(\"-debug_ts\"),\n autorotate: makeFlag(\"-autorotate\"),\n autoscale: makeFlag(\"-autoscale\"),\n fixSubDuration: makeFlag(\"-fix_sub_duration\"),\n benchmark: makeFlag(\"-benchmark\"),\n benchmarkAll: makeFlag(\"-benchmark_all\"),\n timelimit: makeValue(\"-timelimit\"),\n dump: makeFlag(\"-dump\"),\n hex: makeFlag(\"-hex\"),\n vsync: makeValue(\"-vsync\"),\n frameDropThreshold: makeValue(\"-frame_drop_threshold\"),\n filterComplex: makeValue(\"-filter_complex\"),\n filterComplexThreads: makeValue(\"-filter_complex_threads\"),\n lavfi: makeValue(\"-lavfi\"),\n sdpFile: makeValue(\"-sdp_file\"),\n abortOn: makeValue(\"-abort_on\"),\n maxErrorRate: makeValue(\"-max_error_rate\"),\n xerror: makeFlag(\"-xerror\"),\n autoConversionFilters: makeFlag(\"-auto_conversion_filters\"),\n overwrite: makeFlag(\"-y\"),\n noOverwrite: makeFlag(\"-n\"),\n noStdin: makeFlag(\"-nostdin\"),\n noStats: makeFlag(\"-nostats\"),\n};\n\nexport const generatedInputStreamDefs: Record<\n string,\n { flag: string; isFlag: boolean; isArray: boolean }\n> = {\n c: makeValue(\"-c\"),\n itsscale: makeValue(\"-itsscale\"),\n reinitFilter: makeFlag(\"-reinit_filter\"),\n dropChanged: makeFlag(\"-drop_changed\"),\n dumpAttachment: makeValue(\"-dump_attachment\"),\n r: makeValue(\"-r\"),\n s: makeValue(\"-s\"),\n displayRotation: makeValue(\"-display_rotation\"),\n displayHflip: makeFlag(\"-display_hflip\"),\n displayVflip: makeFlag(\"-display_vflip\"),\n masteringDisplay: makeValue(\"-mastering_display\"),\n contentLight: makeValue(\"-content_light\"),\n pixFmt: makeValue(\"-pix_fmt\"),\n applyCropping: makeValue(\"-apply_cropping\"),\n hwaccel: makeValue(\"-hwaccel\"),\n hwaccelDevice: makeValue(\"-hwaccel_device\"),\n ar: makeValue(\"-ar\"),\n ac: makeValue(\"-ac\"),\n guessLayoutMax: makeValue(\"-guess_layout_max\"),\n bsf: makeValue(\"-bsf\"),\n tag: makeValue(\"-tag\"),\n};\n\nexport const generatedOutputStreamDefs: Record<\n string,\n { flag: string; isFlag: boolean; isArray: boolean }\n> = {\n c: makeValue(\"-c\"),\n disposition: makeArray(\"-disposition\"),\n frames: makeValue(\"-frames\"),\n q: makeValue(\"-q\"),\n filter: makeValue(\"-filter\"),\n pre: makeValue(\"-pre\"),\n r: makeValue(\"-r\"),\n fpsmax: makeValue(\"-fpsmax\"),\n s: makeValue(\"-s\"),\n aspect: makeValue(\"-aspect\"),\n pass: makeValue(\"-pass\"),\n passLogfile: makeValue(\"-passlogfile\"),\n pixFmt: makeValue(\"-pix_fmt\"),\n rcOverride: makeValue(\"-rc_override\"),\n forceKeyFrames: makeValue(\"-force_key_frames\"),\n copyinkf: makeFlag(\"-copyinkf\"),\n ar: makeValue(\"-ar\"),\n aq: makeValue(\"-aq\"),\n ac: makeValue(\"-ac\"),\n sampleFmt: makeValue(\"-sample_fmt\"),\n chLayout: makeValue(\"-ch_layout\"),\n channelLayout: makeValue(\"-channel_layout\"),\n apad: makeValue(\"-apad\"),\n encTimeBase: makeValue(\"-enc_time_base\"),\n bsf: makeValue(\"-bsf\"),\n tag: makeValue(\"-tag\"),\n maxMuxingQueueSize: makeValue(\"-max_muxing_queue_size\"),\n muxingQueueDataThreshold: makeValue(\"-muxing_queue_data_threshold\"),\n bitsPerRawSample: makeValue(\"-bits_per_raw_sample\"),\n statsEncPre: makeValue(\"-stats_enc_pre\"),\n statsEncPreFmt: makeValue(\"-stats_enc_pre_fmt\"),\n videoCodec: makeValue(\"-c:v\"),\n audioCodec: makeValue(\"-c:a\"),\n subtitleCodec: makeValue(\"-c:s\"),\n dataCodec: makeValue(\"-c:d\"),\n videoBitrate: makeValue(\"-b:v\"),\n audioBitrate: makeValue(\"-b:a\"),\n subtitleBitrate: makeValue(\"-b:s\"),\n vq: makeValue(\"-q:v\"),\n qscale: makeValue(\"-qscale\"),\n level: makeValue(\"-level\"),\n profile: makeValue(\"-profile\"),\n preset: makeValue(\"-preset\"),\n tune: makeValue(\"-tune\"),\n crf: makeValue(\"-crf\"),\n minrate: makeValue(\"-minrate\"),\n maxrate: makeValue(\"-maxrate\"),\n bufsize: makeValue(\"-bufsize\"),\n codec: makeValue(\"-codec\"),\n statsEncPost: makeValue(\"-stats_enc_post\"),\n statsEncPostFmt: makeValue(\"-stats_enc_post_fmt\"),\n};\n\nexport const generatedOutputMetadataDefs: Record<\n string,\n { flag: string; isFlag: boolean; isArray: boolean }\n> = {\n metadata: makeArray(\"-metadata\"),\n mapMetadata: makeArray(\"-map_metadata\"),\n};\n"],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { StreamType } from "./generated/options.mjs";
|
|
2
|
+
|
|
3
|
+
//#region src/mapping.d.ts
|
|
4
|
+
type MapStreamType = StreamType;
|
|
5
|
+
interface InputMapSpecifier {
|
|
6
|
+
fileIndex: number;
|
|
7
|
+
streamType?: MapStreamType;
|
|
8
|
+
streamIndex?: number;
|
|
9
|
+
viewSpecifier?: string;
|
|
10
|
+
optional?: boolean;
|
|
11
|
+
disabled?: boolean;
|
|
12
|
+
}
|
|
13
|
+
type MapTarget = InputMapSpecifier | string;
|
|
14
|
+
interface StreamMetadataTarget {
|
|
15
|
+
streamType: Exclude<MapStreamType, "V">;
|
|
16
|
+
streamIndex: number;
|
|
17
|
+
}
|
|
18
|
+
declare function serializeInputMap(specifier: InputMapSpecifier): string;
|
|
19
|
+
declare function mapInputStream(fileIndex: number, streamType?: MapStreamType, streamIndex?: number): string;
|
|
20
|
+
declare function mapAllStreams(fileIndex: number): string;
|
|
21
|
+
declare function mapLabel(label: string): string;
|
|
22
|
+
declare function disableMap(target: InputMapSpecifier | string): string;
|
|
23
|
+
declare function streamMetadataKey(target: StreamMetadataTarget, _key: string): string;
|
|
24
|
+
declare function streamDispositionKey(target: StreamMetadataTarget): string;
|
|
25
|
+
//#endregion
|
|
26
|
+
export { InputMapSpecifier, MapStreamType, MapTarget, StreamMetadataTarget, disableMap, mapAllStreams, mapInputStream, mapLabel, serializeInputMap, streamDispositionKey, streamMetadataKey };
|
|
27
|
+
//# sourceMappingURL=mapping.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mapping.d.mts","names":[],"sources":["../src/mapping.ts"],"mappings":";;;KAEY,aAAA,GAAgB,UAAU;AAAA,UAErB,iBAAA;EACf,SAAA;EACA,UAAA,GAAa,aAAa;EAC1B,WAAA;EACA,aAAA;EACA,QAAA;EACA,QAAA;AAAA;AAAA,KAGU,SAAA,GAAY,iBAAiB;AAAA,UAExB,oBAAA;EACf,UAAA,EAAY,OAAO,CAAC,aAAA;EACpB,WAAA;AAAA;AAAA,iBAOc,iBAAA,CAAkB,SAA4B,EAAjB,iBAAiB;AAAA,iBA8B9C,cAAA,CACd,SAAA,UACA,UAAA,GAAa,aAAa,EAC1B,WAAA;AAAA,iBAKc,aAAA,CAAc,SAAiB;AAAA,iBAI/B,QAAA,CAAS,KAAa;AAAA,iBAItB,UAAA,CAAW,MAAkC,EAA1B,iBAAiB;AAAA,iBAQpC,iBAAA,CAAkB,MAAA,EAAQ,oBAAoB,EAAE,IAAA;AAAA,iBAIhD,oBAAA,CAAqB,MAA4B,EAApB,oBAAoB"}
|
package/dist/mapping.mjs
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
//#region src/mapping.ts
|
|
2
|
+
function normalizeLabel(label) {
|
|
3
|
+
return label.startsWith("[") ? label : `[${label}]`;
|
|
4
|
+
}
|
|
5
|
+
function serializeInputMap(specifier) {
|
|
6
|
+
let value = String(specifier.fileIndex);
|
|
7
|
+
if (specifier.streamType !== void 0) value += `:${specifier.streamType}`;
|
|
8
|
+
if (specifier.streamIndex !== void 0) if (specifier.streamType === void 0) value += `:${specifier.streamIndex}`;
|
|
9
|
+
else value += `:${specifier.streamIndex}`;
|
|
10
|
+
if (specifier.viewSpecifier !== void 0) value += `:${specifier.viewSpecifier}`;
|
|
11
|
+
if (specifier.optional) value += "?";
|
|
12
|
+
if (specifier.disabled) value = `-${value}`;
|
|
13
|
+
return value;
|
|
14
|
+
}
|
|
15
|
+
function mapInputStream(fileIndex, streamType, streamIndex) {
|
|
16
|
+
return serializeInputMap({
|
|
17
|
+
fileIndex,
|
|
18
|
+
streamType,
|
|
19
|
+
streamIndex
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
function mapAllStreams(fileIndex) {
|
|
23
|
+
return serializeInputMap({ fileIndex });
|
|
24
|
+
}
|
|
25
|
+
function mapLabel(label) {
|
|
26
|
+
return normalizeLabel(label);
|
|
27
|
+
}
|
|
28
|
+
function disableMap(target) {
|
|
29
|
+
if (typeof target === "string") return target.startsWith("-") ? target : `-${target}`;
|
|
30
|
+
return serializeInputMap({
|
|
31
|
+
...target,
|
|
32
|
+
disabled: true
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
function streamMetadataKey(target, _key) {
|
|
36
|
+
return `-metadata:s:${target.streamType}:${target.streamIndex}`;
|
|
37
|
+
}
|
|
38
|
+
function streamDispositionKey(target) {
|
|
39
|
+
return `-disposition:${target.streamType}:${target.streamIndex}`;
|
|
40
|
+
}
|
|
41
|
+
//#endregion
|
|
42
|
+
export { disableMap, mapAllStreams, mapInputStream, mapLabel, serializeInputMap, streamDispositionKey, streamMetadataKey };
|
|
43
|
+
|
|
44
|
+
//# sourceMappingURL=mapping.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mapping.mjs","names":[],"sources":["../src/mapping.ts"],"sourcesContent":["import type { StreamType } from \"./types.ts\";\n\nexport type MapStreamType = StreamType;\n\nexport interface InputMapSpecifier {\n fileIndex: number;\n streamType?: MapStreamType;\n streamIndex?: number;\n viewSpecifier?: string;\n optional?: boolean;\n disabled?: boolean;\n}\n\nexport type MapTarget = InputMapSpecifier | string;\n\nexport interface StreamMetadataTarget {\n streamType: Exclude<MapStreamType, \"V\">;\n streamIndex: number;\n}\n\nfunction normalizeLabel(label: string): string {\n return label.startsWith(\"[\") ? label : `[${label}]`;\n}\n\nexport function serializeInputMap(specifier: InputMapSpecifier): string {\n let value = String(specifier.fileIndex);\n\n if (specifier.streamType !== undefined) {\n value += `:${specifier.streamType}`;\n }\n\n if (specifier.streamIndex !== undefined) {\n if (specifier.streamType === undefined) {\n value += `:${specifier.streamIndex}`;\n } else {\n value += `:${specifier.streamIndex}`;\n }\n }\n\n if (specifier.viewSpecifier !== undefined) {\n value += `:${specifier.viewSpecifier}`;\n }\n\n if (specifier.optional) {\n value += \"?\";\n }\n\n if (specifier.disabled) {\n value = `-${value}`;\n }\n\n return value;\n}\n\nexport function mapInputStream(\n fileIndex: number,\n streamType?: MapStreamType,\n streamIndex?: number,\n): string {\n return serializeInputMap({ fileIndex, streamType, streamIndex });\n}\n\nexport function mapAllStreams(fileIndex: number): string {\n return serializeInputMap({ fileIndex });\n}\n\nexport function mapLabel(label: string): string {\n return normalizeLabel(label);\n}\n\nexport function disableMap(target: InputMapSpecifier | string): string {\n if (typeof target === \"string\") {\n return target.startsWith(\"-\") ? target : `-${target}`;\n }\n\n return serializeInputMap({ ...target, disabled: true });\n}\n\nexport function streamMetadataKey(target: StreamMetadataTarget, _key: string): string {\n return `-metadata:s:${target.streamType}:${target.streamIndex}`;\n}\n\nexport function streamDispositionKey(target: StreamMetadataTarget): string {\n return `-disposition:${target.streamType}:${target.streamIndex}`;\n}\n"],"mappings":";AAoBA,SAAS,eAAe,OAAuB;CAC7C,OAAO,MAAM,WAAW,GAAG,IAAI,QAAQ,IAAI,MAAM;AACnD;AAEA,SAAgB,kBAAkB,WAAsC;CACtE,IAAI,QAAQ,OAAO,UAAU,SAAS;CAEtC,IAAI,UAAU,eAAe,KAAA,GAC3B,SAAS,IAAI,UAAU;CAGzB,IAAI,UAAU,gBAAgB,KAAA,GAC5B,IAAI,UAAU,eAAe,KAAA,GAC3B,SAAS,IAAI,UAAU;MAEvB,SAAS,IAAI,UAAU;CAI3B,IAAI,UAAU,kBAAkB,KAAA,GAC9B,SAAS,IAAI,UAAU;CAGzB,IAAI,UAAU,UACZ,SAAS;CAGX,IAAI,UAAU,UACZ,QAAQ,IAAI;CAGd,OAAO;AACT;AAEA,SAAgB,eACd,WACA,YACA,aACQ;CACR,OAAO,kBAAkB;EAAE;EAAW;EAAY;CAAY,CAAC;AACjE;AAEA,SAAgB,cAAc,WAA2B;CACvD,OAAO,kBAAkB,EAAE,UAAU,CAAC;AACxC;AAEA,SAAgB,SAAS,OAAuB;CAC9C,OAAO,eAAe,KAAK;AAC7B;AAEA,SAAgB,WAAW,QAA4C;CACrE,IAAI,OAAO,WAAW,UACpB,OAAO,OAAO,WAAW,GAAG,IAAI,SAAS,IAAI;CAG/C,OAAO,kBAAkB;EAAE,GAAG;EAAQ,UAAU;CAAK,CAAC;AACxD;AAEA,SAAgB,kBAAkB,QAA8B,MAAsB;CACpF,OAAO,eAAe,OAAO,WAAW,GAAG,OAAO;AACpD;AAEA,SAAgB,qBAAqB,QAAsC;CACzE,OAAO,gBAAgB,OAAO,WAAW,GAAG,OAAO;AACrD"}
|
package/dist/mod.d.mts
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { AspectRatio, Bitrate, Duration, FrameSize, LogLevel, MetadataOptionBag, MetadataSpecifier, RawOptionBag, SerializedOptionScalar, SerializedOptionValue, StreamOptionBag, StreamSpecifier, StreamType, Target, Vsync } from "./generated/options.mjs";
|
|
2
|
+
import { DispositionDefinition, DispositionValue, ForceKeyFramesDefinition, ForceKeyFramesValue, MetadataAssignment, MetadataMap, MetadataMapValue, MetadataValue, ProgramDefinition, ProgramValue, StreamGroupDefinition, StreamGroupValue, StreamIdDefinition, StreamIdValue, serializeDispositions, serializeForceKeyFrames, serializeMetadataAssignments, serializeMetadataMaps, serializeProgramDefinitions, serializeStreamGroupDefinitions, serializeStreamIds } from "./structured.mjs";
|
|
3
|
+
import { GlobalOptions, InputOptions, InputStreamOptions, OutputMetadataOptions, OutputOptions, OutputStreamOptions } from "./types.mjs";
|
|
4
|
+
import { InputMapSpecifier, MapStreamType, MapTarget, StreamMetadataTarget, disableMap, mapAllStreams, mapInputStream, mapLabel, serializeInputMap, streamDispositionKey, streamMetadataKey } from "./mapping.mjs";
|
|
5
|
+
import { BuildResult, FFmpegBuilder, ffmpeg } from "./builder.mjs";
|
|
6
|
+
import { AmixOptions, ConcatOptions, FilterGraph, FilterGraphMediaType, FilterGraphStream, FilterNamedOptions, FilterNodeSpec, FilterScalar, OverlayOptions, TrimOptions, filterGraph, resetFilterGraphLabelCounter } from "./filter-graph.mjs";
|
|
7
|
+
export { type AmixOptions, type AspectRatio, type Bitrate, type BuildResult, type ConcatOptions, type DispositionDefinition, type DispositionValue, type Duration, FFmpegBuilder, FilterGraph, type FilterGraphMediaType, FilterGraphStream, type FilterNamedOptions, type FilterNodeSpec, type FilterScalar, type ForceKeyFramesDefinition, type ForceKeyFramesValue, type FrameSize, type GlobalOptions, type InputMapSpecifier, type InputOptions, type InputStreamOptions, type LogLevel, type MapStreamType, type MapTarget, type MetadataAssignment, type MetadataMap, type MetadataMapValue, type MetadataOptionBag, type MetadataSpecifier, type MetadataValue, type OutputMetadataOptions, type OutputOptions, type OutputStreamOptions, type OverlayOptions, type ProgramDefinition, type ProgramValue, type RawOptionBag, type SerializedOptionScalar, type SerializedOptionValue, type StreamGroupDefinition, type StreamGroupValue, type StreamIdDefinition, type StreamIdValue, type StreamMetadataTarget, type StreamOptionBag, type StreamSpecifier, type StreamType, type Target, type TrimOptions, type Vsync, disableMap, ffmpeg, filterGraph, mapAllStreams, mapInputStream, mapLabel, resetFilterGraphLabelCounter, serializeDispositions, serializeForceKeyFrames, serializeInputMap, serializeMetadataAssignments, serializeMetadataMaps, serializeProgramDefinitions, serializeStreamGroupDefinitions, serializeStreamIds, streamDispositionKey, streamMetadataKey };
|
package/dist/mod.mjs
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { serializeDispositions, serializeForceKeyFrames, serializeMetadataAssignments, serializeMetadataMaps, serializeProgramDefinitions, serializeStreamGroupDefinitions, serializeStreamIds } from "./structured.mjs";
|
|
2
|
+
import { FilterGraph, FilterGraphStream, filterGraph, resetFilterGraphLabelCounter } from "./filter-graph.mjs";
|
|
3
|
+
import { disableMap, mapAllStreams, mapInputStream, mapLabel, serializeInputMap, streamDispositionKey, streamMetadataKey } from "./mapping.mjs";
|
|
4
|
+
import { FFmpegBuilder, ffmpeg } from "./builder.mjs";
|
|
5
|
+
export { FFmpegBuilder, FilterGraph, FilterGraphStream, disableMap, ffmpeg, filterGraph, mapAllStreams, mapInputStream, mapLabel, resetFilterGraphLabelCounter, serializeDispositions, serializeForceKeyFrames, serializeInputMap, serializeMetadataAssignments, serializeMetadataMaps, serializeProgramDefinitions, serializeStreamGroupDefinitions, serializeStreamIds, streamDispositionKey, streamMetadataKey };
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { MetadataSpecifier, OutputMetadataOptions, OutputOptions } from "./generated/options.mjs";
|
|
2
|
+
|
|
3
|
+
//#region src/structured.d.ts
|
|
4
|
+
interface MetadataAssignment {
|
|
5
|
+
key: string;
|
|
6
|
+
value: string | number | boolean;
|
|
7
|
+
}
|
|
8
|
+
interface MetadataMap {
|
|
9
|
+
inputFileIndex: number;
|
|
10
|
+
inputScope?: MetadataSpecifier;
|
|
11
|
+
outputScope?: MetadataSpecifier;
|
|
12
|
+
}
|
|
13
|
+
interface ProgramDefinition {
|
|
14
|
+
title?: string;
|
|
15
|
+
programNum?: number;
|
|
16
|
+
streams: Array<number | string>;
|
|
17
|
+
}
|
|
18
|
+
interface StreamGroupDefinition {
|
|
19
|
+
inputFileId?: number;
|
|
20
|
+
inputGroupId?: number;
|
|
21
|
+
type?: string;
|
|
22
|
+
id?: number | string;
|
|
23
|
+
streams?: Array<number | string>;
|
|
24
|
+
streamGroups?: Array<number | string>;
|
|
25
|
+
options?: Record<string, string | number | boolean>;
|
|
26
|
+
}
|
|
27
|
+
interface StreamIdDefinition {
|
|
28
|
+
outputStreamIndex: number;
|
|
29
|
+
newValue: number | string;
|
|
30
|
+
}
|
|
31
|
+
interface DispositionDefinition {
|
|
32
|
+
clear?: boolean;
|
|
33
|
+
set?: string[];
|
|
34
|
+
add?: string[];
|
|
35
|
+
remove?: string[];
|
|
36
|
+
}
|
|
37
|
+
type ForceKeyFramesDefinition = {
|
|
38
|
+
mode: "times";
|
|
39
|
+
times: Array<string | number>;
|
|
40
|
+
} | {
|
|
41
|
+
mode: "expr";
|
|
42
|
+
expr: string;
|
|
43
|
+
} | {
|
|
44
|
+
mode: "source";
|
|
45
|
+
} | {
|
|
46
|
+
mode: "scd_metadata";
|
|
47
|
+
};
|
|
48
|
+
type MetadataValue = string | string[] | MetadataAssignment | MetadataAssignment[];
|
|
49
|
+
type MetadataMapValue = string | string[] | MetadataMap | MetadataMap[];
|
|
50
|
+
type ProgramValue = string | string[] | ProgramDefinition | ProgramDefinition[];
|
|
51
|
+
type StreamGroupValue = string | string[] | StreamGroupDefinition | StreamGroupDefinition[];
|
|
52
|
+
type StreamIdValue = string | string[] | StreamIdDefinition | StreamIdDefinition[];
|
|
53
|
+
type DispositionValue = string | string[] | DispositionDefinition | DispositionDefinition[];
|
|
54
|
+
type ForceKeyFramesValue = string | ForceKeyFramesDefinition;
|
|
55
|
+
declare function serializeMetadataAssignments(value: MetadataValue | undefined): string | string[] | undefined;
|
|
56
|
+
declare function serializeMetadataMaps(value: MetadataMapValue | undefined): string | string[] | undefined;
|
|
57
|
+
declare function serializeProgramDefinitions(value: ProgramValue | undefined): string | string[] | undefined;
|
|
58
|
+
declare function serializeStreamGroupDefinitions(value: StreamGroupValue | undefined): string | string[] | undefined;
|
|
59
|
+
declare function serializeStreamIds(value: StreamIdValue | undefined): string | string[] | undefined;
|
|
60
|
+
declare function serializeDispositions(value: DispositionValue | undefined): string | string[] | undefined;
|
|
61
|
+
declare function serializeForceKeyFrames(value: ForceKeyFramesValue | undefined): string | undefined;
|
|
62
|
+
declare function normalizeOutputMetadataOptions(options: OutputMetadataOptions): OutputMetadataOptions;
|
|
63
|
+
declare function normalizeOutputOptions(options: OutputOptions): OutputOptions;
|
|
64
|
+
//#endregion
|
|
65
|
+
export { DispositionDefinition, DispositionValue, ForceKeyFramesDefinition, ForceKeyFramesValue, MetadataAssignment, MetadataMap, MetadataMapValue, MetadataValue, ProgramDefinition, ProgramValue, StreamGroupDefinition, StreamGroupValue, StreamIdDefinition, StreamIdValue, normalizeOutputMetadataOptions, normalizeOutputOptions, serializeDispositions, serializeForceKeyFrames, serializeMetadataAssignments, serializeMetadataMaps, serializeProgramDefinitions, serializeStreamGroupDefinitions, serializeStreamIds };
|
|
66
|
+
//# sourceMappingURL=structured.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"structured.d.mts","names":[],"sources":["../src/structured.ts"],"mappings":";;;UAMiB,kBAAA;EACf,GAAA;EACA,KAAK;AAAA;AAAA,UAGU,WAAA;EACf,cAAA;EACA,UAAA,GAAa,iBAAA;EACb,WAAA,GAAc,iBAAiB;AAAA;AAAA,UAGhB,iBAAA;EACf,KAAA;EACA,UAAA;EACA,OAAA,EAAS,KAAK;AAAA;AAAA,UAGC,qBAAA;EACf,WAAA;EACA,YAAA;EACA,IAAA;EACA,EAAA;EACA,OAAA,GAAU,KAAA;EACV,YAAA,GAAe,KAAA;EACf,OAAA,GAAU,MAAA;AAAA;AAAA,UAGK,kBAAA;EACf,iBAAA;EACA,QAAQ;AAAA;AAAA,UAGO,qBAAA;EACf,KAAA;EACA,GAAA;EACA,GAAA;EACA,MAAA;AAAA;AAAA,KAGU,wBAAA;EACN,IAAA;EAAe,KAAA,EAAO,KAAK;AAAA;EAC3B,IAAA;EAAc,IAAA;AAAA;EACd,IAAA;AAAA;EACA,IAAA;AAAA;AAAA,KAEM,aAAA,uBAAoC,kBAAA,GAAqB,kBAAkB;AAAA,KAC3E,gBAAA,uBAAuC,WAAA,GAAc,WAAW;AAAA,KAChE,YAAA,uBAAmC,iBAAA,GAAoB,iBAAiB;AAAA,KACxE,gBAAA,uBAAuC,qBAAA,GAAwB,qBAAqB;AAAA,KACpF,aAAA,uBAAoC,kBAAA,GAAqB,kBAAkB;AAAA,KAC3E,gBAAA,uBAAuC,qBAAA,GAAwB,qBAAqB;AAAA,KACpF,mBAAA,YAA+B,wBAAwB;AAAA,iBAanD,4BAAA,CACd,KAAgC,EAAzB,aAAa;AAAA,iBAgBN,qBAAA,CACd,KAAmC,EAA5B,gBAAgB;AAAA,iBAqBT,2BAAA,CACd,KAA+B,EAAxB,YAAY;AAAA,iBA0BL,+BAAA,CACd,KAAmC,EAA5B,gBAAgB;AAAA,iBA4CT,kBAAA,CACd,KAAgC,EAAzB,aAAa;AAAA,iBAcN,qBAAA,CACd,KAAmC,EAA5B,gBAAgB;AAAA,iBAgDT,uBAAA,CACd,KAAsC,EAA/B,mBAAmB;AAAA,iBAqBZ,8BAAA,CACd,OAAA,EAAS,qBAAA,GACR,qBAA8B;AAAA,iBAYjB,sBAAA,CAAuB,OAAA,EAAS,aAAA,GAAyB,aAAsB"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
//#region src/structured.ts
|
|
2
|
+
function isStringArray(value) {
|
|
3
|
+
return Array.isArray(value) && value.every((item) => typeof item === "string");
|
|
4
|
+
}
|
|
5
|
+
function ensureNonEmpty(value, label) {
|
|
6
|
+
if (value.length === 0) throw new Error(`${label} cannot be empty`);
|
|
7
|
+
return value;
|
|
8
|
+
}
|
|
9
|
+
function serializeMetadataAssignments(value) {
|
|
10
|
+
if (value === void 0) return;
|
|
11
|
+
if (typeof value === "string" || isStringArray(value)) return value;
|
|
12
|
+
const serialized = (Array.isArray(value) ? value : [value]).map((item) => `${ensureNonEmpty(item.key, "Metadata key")}=${String(item.value)}`);
|
|
13
|
+
return serialized.length === 1 ? serialized[0] : serialized;
|
|
14
|
+
}
|
|
15
|
+
function serializeMetadataMaps(value) {
|
|
16
|
+
if (value === void 0) return;
|
|
17
|
+
if (typeof value === "string" || isStringArray(value)) return value;
|
|
18
|
+
const serialized = (Array.isArray(value) ? value : [value]).map((item) => {
|
|
19
|
+
const parts = [String(item.inputFileIndex)];
|
|
20
|
+
if (item.inputScope) parts.push(item.inputScope);
|
|
21
|
+
const source = parts.join(":");
|
|
22
|
+
return item.outputScope ? `${source}:${item.outputScope}` : source;
|
|
23
|
+
});
|
|
24
|
+
return serialized.length === 1 ? serialized[0] : serialized;
|
|
25
|
+
}
|
|
26
|
+
function serializeProgramDefinitions(value) {
|
|
27
|
+
if (value === void 0) return;
|
|
28
|
+
if (typeof value === "string" || isStringArray(value)) return value;
|
|
29
|
+
const serialized = (Array.isArray(value) ? value : [value]).map((item) => {
|
|
30
|
+
if (item.streams.length === 0) throw new Error("Program definition must include at least one stream");
|
|
31
|
+
const parts = [];
|
|
32
|
+
if (item.title !== void 0) parts.push(`title=${item.title}`);
|
|
33
|
+
if (item.programNum !== void 0) parts.push(`program_num=${item.programNum}`);
|
|
34
|
+
for (const stream of item.streams) parts.push(`st=${stream}`);
|
|
35
|
+
return parts.join(":");
|
|
36
|
+
});
|
|
37
|
+
return serialized.length === 1 ? serialized[0] : serialized;
|
|
38
|
+
}
|
|
39
|
+
function serializeStreamGroupDefinitions(value) {
|
|
40
|
+
if (value === void 0) return;
|
|
41
|
+
if (typeof value === "string" || isStringArray(value)) return value;
|
|
42
|
+
const serialized = (Array.isArray(value) ? value : [value]).map((item) => {
|
|
43
|
+
const parts = [];
|
|
44
|
+
if (item.inputFileId !== void 0 || item.inputGroupId !== void 0) {
|
|
45
|
+
if (item.inputFileId === void 0 || item.inputGroupId === void 0) throw new Error("Stream group input mapping requires both inputFileId and inputGroupId");
|
|
46
|
+
parts.push(`map=${item.inputFileId}=${item.inputGroupId}`);
|
|
47
|
+
}
|
|
48
|
+
if (item.type !== void 0) parts.push(`type=${item.type}`);
|
|
49
|
+
if (item.id !== void 0) parts.push(`id=${item.id}`);
|
|
50
|
+
for (const stream of item.streams ?? []) parts.push(`st=${stream}`);
|
|
51
|
+
for (const streamGroup of item.streamGroups ?? []) parts.push(`stg=${streamGroup}`);
|
|
52
|
+
for (const [key, raw] of Object.entries(item.options ?? {})) parts.push(`${key}=${String(raw)}`);
|
|
53
|
+
return parts.join(":");
|
|
54
|
+
});
|
|
55
|
+
return serialized.length === 1 ? serialized[0] : serialized;
|
|
56
|
+
}
|
|
57
|
+
function serializeStreamIds(value) {
|
|
58
|
+
if (value === void 0) return;
|
|
59
|
+
if (typeof value === "string" || isStringArray(value)) return value;
|
|
60
|
+
const serialized = (Array.isArray(value) ? value : [value]).map((item) => `${item.outputStreamIndex}:${item.newValue}`);
|
|
61
|
+
return serialized.length === 1 ? serialized[0] : serialized;
|
|
62
|
+
}
|
|
63
|
+
function serializeDispositions(value) {
|
|
64
|
+
if (value === void 0) return;
|
|
65
|
+
if (typeof value === "string" || isStringArray(value)) return value;
|
|
66
|
+
const serialized = (Array.isArray(value) ? value : [value]).map((item) => {
|
|
67
|
+
if (item.clear) {
|
|
68
|
+
if ((item.set?.length ?? 0) > 0 || (item.add?.length ?? 0) > 0 || (item.remove?.length ?? 0) > 0) throw new Error("Disposition definition cannot combine clear with set/add/remove");
|
|
69
|
+
return "0";
|
|
70
|
+
}
|
|
71
|
+
if ((item.set?.length ?? 0) > 0 && ((item.add?.length ?? 0) > 0 || (item.remove?.length ?? 0) > 0)) throw new Error("Disposition definition cannot combine set with add/remove");
|
|
72
|
+
if (item.set && item.set.length > 0) return item.set.join("+");
|
|
73
|
+
const parts = [...(item.add ?? []).map((flag) => `+${flag}`), ...(item.remove ?? []).map((flag) => `-${flag}`)];
|
|
74
|
+
if (parts.length === 0) throw new Error("Disposition definition must include clear, set, add, or remove");
|
|
75
|
+
return parts.join("");
|
|
76
|
+
});
|
|
77
|
+
return serialized.length === 1 ? serialized[0] : serialized;
|
|
78
|
+
}
|
|
79
|
+
function serializeForceKeyFrames(value) {
|
|
80
|
+
if (value === void 0 || typeof value === "string") return value;
|
|
81
|
+
switch (value.mode) {
|
|
82
|
+
case "times":
|
|
83
|
+
if (value.times.length === 0) throw new Error("forceKeyFrames times mode requires at least one time");
|
|
84
|
+
return value.times.map(String).join(",");
|
|
85
|
+
case "expr": return `expr:${value.expr}`;
|
|
86
|
+
case "source": return "source";
|
|
87
|
+
case "scd_metadata": return "scd_metadata";
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
function normalizeOutputMetadataOptions(options) {
|
|
91
|
+
return {
|
|
92
|
+
...options,
|
|
93
|
+
metadata: serializeMetadataAssignments(options.metadata),
|
|
94
|
+
mapMetadata: serializeMetadataMaps(options.mapMetadata)
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
function normalizeOutputOptions(options) {
|
|
98
|
+
const metadataScopes = options.metadataScopes === void 0 ? void 0 : Object.fromEntries(Object.entries(options.metadataScopes).filter(([, scopeOptions]) => scopeOptions !== void 0).map(([scope, scopeOptions]) => [scope, normalizeOutputMetadataOptions(scopeOptions)]));
|
|
99
|
+
return {
|
|
100
|
+
...options,
|
|
101
|
+
metadata: serializeMetadataAssignments(options.metadata),
|
|
102
|
+
mapMetadata: serializeMetadataMaps(options.mapMetadata),
|
|
103
|
+
disposition: serializeDispositions(options.disposition),
|
|
104
|
+
forceKeyFrames: serializeForceKeyFrames(options.forceKeyFrames),
|
|
105
|
+
program: serializeProgramDefinitions(options.program),
|
|
106
|
+
streamGroup: serializeStreamGroupDefinitions(options.streamGroup),
|
|
107
|
+
streamid: serializeStreamIds(options.streamid),
|
|
108
|
+
metadataScopes
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
//#endregion
|
|
112
|
+
export { normalizeOutputMetadataOptions, normalizeOutputOptions, serializeDispositions, serializeForceKeyFrames, serializeMetadataAssignments, serializeMetadataMaps, serializeProgramDefinitions, serializeStreamGroupDefinitions, serializeStreamIds };
|
|
113
|
+
|
|
114
|
+
//# sourceMappingURL=structured.mjs.map
|