@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 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.8";
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