@transcodely/sdk 0.3.8 → 0.3.10
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/CHANGELOG.md +14 -0
- package/README.md +13 -0
- package/dist/index.cjs +95 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +70 -2
- package/dist/index.d.ts +70 -2
- package/dist/index.mjs +95 -2
- package/dist/index.mjs.map +1 -1
- package/package.json +4 -2
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,20 @@ All notable changes to the Transcodely JavaScript / TypeScript SDK will be docum
|
|
|
4
4
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). Breaking changes are allowed on minor bumps until 1.0.0.
|
|
6
6
|
|
|
7
|
+
## [0.3.10](https://github.com/transcodely/transcodely-js/compare/v0.3.9...v0.3.10) (2026-09-22)
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
### Features
|
|
11
|
+
|
|
12
|
+
* **proto:** per-title search curve — seed_crf, met_target, probes (api 5.23.0) ([#74](https://github.com/transcodely/transcodely-js/issues/74)) ([62deaf2](https://github.com/transcodely/transcodely-js/commit/62deaf2d94fd01af0982a93f5de8d85da04a87a3))
|
|
13
|
+
|
|
14
|
+
## [0.3.9](https://github.com/transcodely/transcodely-js/compare/v0.3.8...v0.3.9) (2026-09-15)
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
### Bug Fixes
|
|
18
|
+
|
|
19
|
+
* **cli:** publish the CLI — drop private, pin @transcodely/sdk ^0.3.8 ([#71](https://github.com/transcodely/transcodely-js/issues/71)) ([7f2957a](https://github.com/transcodely/transcodely-js/commit/7f2957a1c9e94da97f32347f2143d618d8ee2e6f))
|
|
20
|
+
|
|
7
21
|
## [0.3.8](https://github.com/transcodely/transcodely-js/compare/v0.3.7...v0.3.8) (2026-09-15)
|
|
8
22
|
|
|
9
23
|
|
package/README.md
CHANGED
|
@@ -175,6 +175,19 @@ on its samples, and the CRF it chose. It describes the SEARCH, not the delivered
|
|
|
175
175
|
file — `vmafAchieved` scores short samples taken before the real encode, which is
|
|
176
176
|
never scored itself. It is `undefined` on every ordinary output.
|
|
177
177
|
|
|
178
|
+
It also carries the whole curve the search measured: `seedCrf` (the CRF the
|
|
179
|
+
rung would have used without per-title — compare it with `crfChosen` to see
|
|
180
|
+
what changed), `metTarget` (whether the search reached `vmafTarget`; `false`
|
|
181
|
+
means `crfChosen` is only the best-scoring point it measured), and `probes[]`
|
|
182
|
+
(`OutputReportContentAwareProbe[]`, one entry per sample the search measured,
|
|
183
|
+
in order — each with `crf`, `vmaf`, and `bitrateKbps`). Two probes' bitrates
|
|
184
|
+
compare directly since every sample is the same cut of the source, so the
|
|
185
|
+
ratio between the `seedCrf` probe and the `crfChosen` probe is the honest
|
|
186
|
+
per-title saving on that sample. `bitrateKbps` is the sample's VIDEO-ONLY
|
|
187
|
+
bitrate — the search's cuts drop audio, subtitles and data — so don't compare
|
|
188
|
+
it to a delivered output's muxed `averageBitrateKbps`. All three fields are
|
|
189
|
+
`undefined`/empty on reports from workers older than 1.29.0.
|
|
190
|
+
|
|
178
191
|
## AI captions
|
|
179
192
|
|
|
180
193
|
Add auto-generated captions to any output with a `generate` subtitle track.
|
package/dist/index.cjs
CHANGED
|
@@ -11932,6 +11932,32 @@ var OutputReportContentAware = class _OutputReportContentAware extends protobuf.
|
|
|
11932
11932
|
* @generated from field: optional int32 crf_chosen = 4;
|
|
11933
11933
|
*/
|
|
11934
11934
|
crfChosen;
|
|
11935
|
+
/**
|
|
11936
|
+
* Constant-rate-factor the rung would have used WITHOUT the search: the
|
|
11937
|
+
* quality tier's static value, and the first point the search measured.
|
|
11938
|
+
* Compare it with crf_chosen to see what per-title changed. Absent when the
|
|
11939
|
+
* search did not report where it started.
|
|
11940
|
+
*
|
|
11941
|
+
* @generated from field: optional int32 seed_crf = 5;
|
|
11942
|
+
*/
|
|
11943
|
+
seedCrf;
|
|
11944
|
+
/**
|
|
11945
|
+
* Whether the search found a setting that reached vmaf_target. When false,
|
|
11946
|
+
* crf_chosen is the best-scoring setting it measured, and vmaf_achieved is
|
|
11947
|
+
* below the target.
|
|
11948
|
+
*
|
|
11949
|
+
* @generated from field: optional bool met_target = 6;
|
|
11950
|
+
*/
|
|
11951
|
+
metTarget;
|
|
11952
|
+
/**
|
|
11953
|
+
* Every sample the search measured, in the order it measured them. Each is
|
|
11954
|
+
* a short cut of the source encoded at one CRF with this rung's delivery
|
|
11955
|
+
* settings and scored against the original. Empty when the analysis did not
|
|
11956
|
+
* report its probes (workers before 1.29.0).
|
|
11957
|
+
*
|
|
11958
|
+
* @generated from field: repeated transcodely.v1.OutputReportContentAwareProbe probes = 7;
|
|
11959
|
+
*/
|
|
11960
|
+
probes = [];
|
|
11935
11961
|
constructor(data) {
|
|
11936
11962
|
super();
|
|
11937
11963
|
protobuf.proto3.util.initPartial(data, this);
|
|
@@ -11948,7 +11974,10 @@ var OutputReportContentAware = class _OutputReportContentAware extends protobuf.
|
|
|
11948
11974
|
},
|
|
11949
11975
|
{ no: 2, name: "vmaf_target", kind: "scalar", T: 1, opt: true },
|
|
11950
11976
|
{ no: 3, name: "vmaf_achieved", kind: "scalar", T: 1, opt: true },
|
|
11951
|
-
{ no: 4, name: "crf_chosen", kind: "scalar", T: 5, opt: true }
|
|
11977
|
+
{ no: 4, name: "crf_chosen", kind: "scalar", T: 5, opt: true },
|
|
11978
|
+
{ no: 5, name: "seed_crf", kind: "scalar", T: 5, opt: true },
|
|
11979
|
+
{ no: 6, name: "met_target", kind: "scalar", T: 8, opt: true },
|
|
11980
|
+
{ no: 7, name: "probes", kind: "message", T: OutputReportContentAwareProbe, repeated: true }
|
|
11952
11981
|
]);
|
|
11953
11982
|
static fromBinary(bytes, options) {
|
|
11954
11983
|
return new _OutputReportContentAware().fromBinary(bytes, options);
|
|
@@ -11963,6 +11992,70 @@ var OutputReportContentAware = class _OutputReportContentAware extends protobuf.
|
|
|
11963
11992
|
return protobuf.proto3.util.equals(_OutputReportContentAware, a, b);
|
|
11964
11993
|
}
|
|
11965
11994
|
};
|
|
11995
|
+
var OutputReportContentAwareProbe = class _OutputReportContentAwareProbe extends protobuf.Message {
|
|
11996
|
+
/**
|
|
11997
|
+
* CRF the sample was encoded at.
|
|
11998
|
+
*
|
|
11999
|
+
* @generated from field: int32 crf = 1;
|
|
12000
|
+
*/
|
|
12001
|
+
crf = 0;
|
|
12002
|
+
/**
|
|
12003
|
+
* VMAF the sample scored, 0-100.
|
|
12004
|
+
*
|
|
12005
|
+
* @generated from field: double vmaf = 2;
|
|
12006
|
+
*/
|
|
12007
|
+
vmaf = 0;
|
|
12008
|
+
/**
|
|
12009
|
+
* Bitrate of the encoded sample in kilobits per second. Two probes' bitrates
|
|
12010
|
+
* compare directly because every sample is the same cut of the source; the
|
|
12011
|
+
* ratio between the seed_crf probe and the crf_chosen probe is the size
|
|
12012
|
+
* change per-title made on that sample. Absent when the encoder did not
|
|
12013
|
+
* report the sample's size.
|
|
12014
|
+
*
|
|
12015
|
+
* The sample is encoded VIDEO-ONLY — the search's cuts drop audio, subtitles
|
|
12016
|
+
* and data streams — so this is the sample's video bitrate, not the rate of a
|
|
12017
|
+
* muxed file. Comparing it against a delivered file's bitrate, which includes
|
|
12018
|
+
* every stream that file carries, compares two different things.
|
|
12019
|
+
*
|
|
12020
|
+
* @generated from field: optional double bitrate_kbps = 3;
|
|
12021
|
+
*/
|
|
12022
|
+
bitrateKbps;
|
|
12023
|
+
constructor(data) {
|
|
12024
|
+
super();
|
|
12025
|
+
protobuf.proto3.util.initPartial(data, this);
|
|
12026
|
+
}
|
|
12027
|
+
static runtime = protobuf.proto3;
|
|
12028
|
+
static typeName = "transcodely.v1.OutputReportContentAwareProbe";
|
|
12029
|
+
static fields = protobuf.proto3.util.newFieldList(() => [
|
|
12030
|
+
{
|
|
12031
|
+
no: 1,
|
|
12032
|
+
name: "crf",
|
|
12033
|
+
kind: "scalar",
|
|
12034
|
+
T: 5
|
|
12035
|
+
/* ScalarType.INT32 */
|
|
12036
|
+
},
|
|
12037
|
+
{
|
|
12038
|
+
no: 2,
|
|
12039
|
+
name: "vmaf",
|
|
12040
|
+
kind: "scalar",
|
|
12041
|
+
T: 1
|
|
12042
|
+
/* ScalarType.DOUBLE */
|
|
12043
|
+
},
|
|
12044
|
+
{ no: 3, name: "bitrate_kbps", kind: "scalar", T: 1, opt: true }
|
|
12045
|
+
]);
|
|
12046
|
+
static fromBinary(bytes, options) {
|
|
12047
|
+
return new _OutputReportContentAwareProbe().fromBinary(bytes, options);
|
|
12048
|
+
}
|
|
12049
|
+
static fromJson(jsonValue, options) {
|
|
12050
|
+
return new _OutputReportContentAwareProbe().fromJson(jsonValue, options);
|
|
12051
|
+
}
|
|
12052
|
+
static fromJsonString(jsonString, options) {
|
|
12053
|
+
return new _OutputReportContentAwareProbe().fromJsonString(jsonString, options);
|
|
12054
|
+
}
|
|
12055
|
+
static equals(a, b) {
|
|
12056
|
+
return protobuf.proto3.util.equals(_OutputReportContentAwareProbe, a, b);
|
|
12057
|
+
}
|
|
12058
|
+
};
|
|
11966
12059
|
var OutputReportVideo = class _OutputReportVideo extends protobuf.Message {
|
|
11967
12060
|
/**
|
|
11968
12061
|
* Codec the stream is encoded with, lowercase, e.g. "h264", "hevc", "vp9",
|
|
@@ -18992,7 +19085,7 @@ function backoff(attempt) {
|
|
|
18992
19085
|
}
|
|
18993
19086
|
|
|
18994
19087
|
// src/version.ts
|
|
18995
|
-
var SDK_VERSION = "0.3.
|
|
19088
|
+
var SDK_VERSION = "0.3.10";
|
|
18996
19089
|
var API_VERSION = "2026-05-03";
|
|
18997
19090
|
var DEFAULT_BASE_URL = "https://api.transcodely.com";
|
|
18998
19091
|
|