@norskvideo/norsk-api 0.0.329 → 0.0.330

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.
@@ -271,6 +271,50 @@ function deserialize_norsk_api_media_ChaosMonkeyMessage(buffer_arg) {
271
271
  return media_pb.ChaosMonkeyMessage.fromBinary(new Uint8Array(buffer_arg));
272
272
  }
273
273
 
274
+ function serialize_norsk_api_media_CmafAudioMessage(arg) {
275
+ if (!(arg instanceof media_pb.CmafAudioMessage)) {
276
+ throw new Error('Expected argument of type norsk.api.media.CmafAudioMessage');
277
+ }
278
+ return Buffer.from(arg.toBinary());
279
+ }
280
+
281
+ function deserialize_norsk_api_media_CmafAudioMessage(buffer_arg) {
282
+ return media_pb.CmafAudioMessage.fromBinary(new Uint8Array(buffer_arg));
283
+ }
284
+
285
+ function serialize_norsk_api_media_CmafMasterMessage(arg) {
286
+ if (!(arg instanceof media_pb.CmafMasterMessage)) {
287
+ throw new Error('Expected argument of type norsk.api.media.CmafMasterMessage');
288
+ }
289
+ return Buffer.from(arg.toBinary());
290
+ }
291
+
292
+ function deserialize_norsk_api_media_CmafMasterMessage(buffer_arg) {
293
+ return media_pb.CmafMasterMessage.fromBinary(new Uint8Array(buffer_arg));
294
+ }
295
+
296
+ function serialize_norsk_api_media_CmafVideoMessage(arg) {
297
+ if (!(arg instanceof media_pb.CmafVideoMessage)) {
298
+ throw new Error('Expected argument of type norsk.api.media.CmafVideoMessage');
299
+ }
300
+ return Buffer.from(arg.toBinary());
301
+ }
302
+
303
+ function deserialize_norsk_api_media_CmafVideoMessage(buffer_arg) {
304
+ return media_pb.CmafVideoMessage.fromBinary(new Uint8Array(buffer_arg));
305
+ }
306
+
307
+ function serialize_norsk_api_media_CmafWebVttMessage(arg) {
308
+ if (!(arg instanceof media_pb.CmafWebVttMessage)) {
309
+ throw new Error('Expected argument of type norsk.api.media.CmafWebVttMessage');
310
+ }
311
+ return Buffer.from(arg.toBinary());
312
+ }
313
+
314
+ function deserialize_norsk_api_media_CmafWebVttMessage(buffer_arg) {
315
+ return media_pb.CmafWebVttMessage.fromBinary(new Uint8Array(buffer_arg));
316
+ }
317
+
274
318
  function serialize_norsk_api_media_ComposeVideoMessage(arg) {
275
319
  if (!(arg instanceof media_pb.ComposeVideoMessage)) {
276
320
  throw new Error('Expected argument of type norsk.api.media.ComposeVideoMessage');
@@ -370,28 +414,6 @@ function deserialize_norsk_api_media_Hardware(buffer_arg) {
370
414
  return media_pb.Hardware.fromBinary(new Uint8Array(buffer_arg));
371
415
  }
372
416
 
373
- function serialize_norsk_api_media_HlsAudioMessage(arg) {
374
- if (!(arg instanceof media_pb.HlsAudioMessage)) {
375
- throw new Error('Expected argument of type norsk.api.media.HlsAudioMessage');
376
- }
377
- return Buffer.from(arg.toBinary());
378
- }
379
-
380
- function deserialize_norsk_api_media_HlsAudioMessage(buffer_arg) {
381
- return media_pb.HlsAudioMessage.fromBinary(new Uint8Array(buffer_arg));
382
- }
383
-
384
- function serialize_norsk_api_media_HlsMasterMessage(arg) {
385
- if (!(arg instanceof media_pb.HlsMasterMessage)) {
386
- throw new Error('Expected argument of type norsk.api.media.HlsMasterMessage');
387
- }
388
- return Buffer.from(arg.toBinary());
389
- }
390
-
391
- function deserialize_norsk_api_media_HlsMasterMessage(buffer_arg) {
392
- return media_pb.HlsMasterMessage.fromBinary(new Uint8Array(buffer_arg));
393
- }
394
-
395
417
  function serialize_norsk_api_media_HlsMasterPushMessage(arg) {
396
418
  if (!(arg instanceof media_pb.HlsMasterPushMessage)) {
397
419
  throw new Error('Expected argument of type norsk.api.media.HlsMasterPushMessage');
@@ -469,28 +491,6 @@ function deserialize_norsk_api_media_HlsTsVideoPushMessage(buffer_arg) {
469
491
  return media_pb.HlsTsVideoPushMessage.fromBinary(new Uint8Array(buffer_arg));
470
492
  }
471
493
 
472
- function serialize_norsk_api_media_HlsVideoMessage(arg) {
473
- if (!(arg instanceof media_pb.HlsVideoMessage)) {
474
- throw new Error('Expected argument of type norsk.api.media.HlsVideoMessage');
475
- }
476
- return Buffer.from(arg.toBinary());
477
- }
478
-
479
- function deserialize_norsk_api_media_HlsVideoMessage(buffer_arg) {
480
- return media_pb.HlsVideoMessage.fromBinary(new Uint8Array(buffer_arg));
481
- }
482
-
483
- function serialize_norsk_api_media_HlsWebVttMessage(arg) {
484
- if (!(arg instanceof media_pb.HlsWebVttMessage)) {
485
- throw new Error('Expected argument of type norsk.api.media.HlsWebVttMessage');
486
- }
487
- return Buffer.from(arg.toBinary());
488
- }
489
-
490
- function deserialize_norsk_api_media_HlsWebVttMessage(buffer_arg) {
491
- return media_pb.HlsWebVttMessage.fromBinary(new Uint8Array(buffer_arg));
492
- }
493
-
494
494
  function serialize_norsk_api_media_HlsWebVttPushMessage(arg) {
495
495
  if (!(arg instanceof media_pb.HlsWebVttPushMessage)) {
496
496
  throw new Error('Expected argument of type norsk.api.media.HlsWebVttPushMessage');
@@ -1109,15 +1109,15 @@ var MediaService = exports.MediaService = {
1109
1109
  responseSerialize: serialize_norsk_api_media_WebVttFileInputEvent,
1110
1110
  responseDeserialize: deserialize_norsk_api_media_WebVttFileInputEvent,
1111
1111
  },
1112
- // *
1112
+ //
1113
1113
  // Creates an RTMP ingest Media Node. On creation, the Media Node is idle
1114
- // and your code <b>must</b> send an <ref>RtmpInputConfiguration</ref>
1114
+ // and your code **must** send an `RtmpInputConfiguration`
1115
1115
  // message to configure the RTMP server. When a remote client connects, an
1116
- // <ref>RtmpConnection</ref> message is sent, which the code can choose to
1117
- // accept &ndash; by sending an <ref>RtmpConnectionAccept</ref> message or
1118
- // reject &ndash; by sending an <ref>RtmpConnectionReject</ref> message.
1116
+ // `RtmpConnection` message is sent, which the code can choose to
1117
+ // accept &ndash; by sending an `RtmpConnectionAccept` message or
1118
+ // reject &ndash; by sending an `RtmpConnectionReject` message.
1119
1119
  // Once a connection is established, Norsk will continue to send appropriate
1120
- // <ref>RtmpInputEvent</ref> messages as events occur.
1120
+ // `RtmpInputEvent` messages as events occur.
1121
1121
  createRtmpInput: {
1122
1122
  path: '/norsk.api.media.Media/CreateRtmpInput',
1123
1123
  requestStream: true,
@@ -1129,7 +1129,9 @@ createRtmpInput: {
1129
1129
  responseSerialize: serialize_norsk_api_media_RtmpInputEvent,
1130
1130
  responseDeserialize: deserialize_norsk_api_media_RtmpInputEvent,
1131
1131
  },
1132
- createTsFileInput: {
1132
+ // *
1133
+ // Read from a Transport Stream file with realtime playback.
1134
+ createTsFileInput: {
1133
1135
  path: '/norsk.api.media.Media/CreateTsFileInput',
1134
1136
  requestStream: true,
1135
1137
  responseStream: true,
@@ -1151,7 +1153,16 @@ createRtmpInput: {
1151
1153
  responseSerialize: serialize_norsk_api_media_TestCardVideoGeneratorEvent,
1152
1154
  responseDeserialize: deserialize_norsk_api_media_TestCardVideoGeneratorEvent,
1153
1155
  },
1154
- createDeckLinkInput: {
1156
+ // *
1157
+ // SDI/HDMI Input using a BlackMagic DeckLink card.
1158
+ // The available cards on the machine can be enumerated using the
1159
+ // `HardwareInfo` rpc.
1160
+ //
1161
+ // Multiple cards and both SDI and HDMI inputs are supported, with all DeckLink-supported
1162
+ // input resolutions and framerates are supported. The capture format is currently 8-bit only,
1163
+ // but 10-bit captures will be supported soon. All supported audio channels can be captured.
1164
+ // At present, additional data such as closed-captions and HDR metadata is not captured.
1165
+ createDeckLinkInput: {
1155
1166
  path: '/norsk.api.media.Media/CreateDeckLinkInput',
1156
1167
  requestStream: true,
1157
1168
  responseStream: true,
@@ -1163,7 +1174,8 @@ createRtmpInput: {
1163
1174
  responseDeserialize: deserialize_norsk_api_media_DeckLinkInputEvent,
1164
1175
  },
1165
1176
  // *
1166
- // Creates a video source from a static image file on disk (e.g. PNG, JPEG)
1177
+ // Read an image from a file. Various image formats are supported, see the
1178
+ // documentation for `ImageFileInputConfiguration` for more details.
1167
1179
  createImageFileInput: {
1168
1180
  path: '/norsk.api.media.Media/CreateImageFileInput',
1169
1181
  requestStream: false,
@@ -1188,7 +1200,9 @@ createMp4FileInput: {
1188
1200
  responseSerialize: serialize_norsk_api_media_Mp4FileInputEvent,
1189
1201
  responseDeserialize: deserialize_norsk_api_media_Mp4FileInputEvent,
1190
1202
  },
1191
- createAudioSignalGenerator: {
1203
+ // *
1204
+ // Generate a test audio signal with a configurable waveform.
1205
+ createAudioSignalGenerator: {
1192
1206
  path: '/norsk.api.media.Media/CreateAudioSignalGenerator',
1193
1207
  requestStream: false,
1194
1208
  responseStream: true,
@@ -1199,7 +1213,9 @@ createMp4FileInput: {
1199
1213
  responseSerialize: serialize_norsk_api_media_AudioSignalGeneratorEvent,
1200
1214
  responseDeserialize: deserialize_norsk_api_media_AudioSignalGeneratorEvent,
1201
1215
  },
1202
- createBrowserInput: {
1216
+ // *
1217
+ // Video source from rendering an HTML page
1218
+ createBrowserInput: {
1203
1219
  path: '/norsk.api.media.Media/CreateBrowserInput',
1204
1220
  requestStream: true,
1205
1221
  responseStream: true,
@@ -1221,7 +1237,9 @@ createMp4FileInput: {
1221
1237
  responseSerialize: serialize_norsk_api_media_WhipInputEvent,
1222
1238
  responseDeserialize: deserialize_norsk_api_media_WhipInputEvent,
1223
1239
  },
1224
- createSrtInput: {
1240
+ // *
1241
+ // Stream from a SRT source
1242
+ createSrtInput: {
1225
1243
  path: '/norsk.api.media.Media/CreateSrtInput',
1226
1244
  requestStream: true,
1227
1245
  responseStream: true,
@@ -1254,7 +1272,15 @@ createMp4FileInput: {
1254
1272
  responseSerialize: serialize_norsk_api_media_TsInputEvent,
1255
1273
  responseDeserialize: deserialize_norsk_api_media_TsInputEvent,
1256
1274
  },
1257
- createTimestampNudger: {
1275
+ // *
1276
+ // A node to nudge the timestamps on a stream, which affects how it syncs
1277
+ // with other streams. Useful for correcting for drift between different
1278
+ // sources.
1279
+ //
1280
+ // Subsequent nudges, via the `nudge` method, are applied gradually.
1281
+ //
1282
+ // This functionality is also provided by a `nudge` method on many sources.
1283
+ createTimestampNudger: {
1258
1284
  path: '/norsk.api.media.Media/CreateTimestampNudger',
1259
1285
  requestStream: true,
1260
1286
  responseStream: true,
@@ -1265,7 +1291,9 @@ createMp4FileInput: {
1265
1291
  responseSerialize: serialize_norsk_api_media_TimestampNudgerEvent,
1266
1292
  responseDeserialize: deserialize_norsk_api_media_TimestampNudgerEvent,
1267
1293
  },
1268
- createVideoEncodeLadder: {
1294
+ // *
1295
+ // Encode a video stream to one or more renditions
1296
+ createVideoEncodeLadder: {
1269
1297
  path: '/norsk.api.media.Media/CreateVideoEncodeLadder',
1270
1298
  requestStream: true,
1271
1299
  responseStream: true,
@@ -1276,7 +1304,9 @@ createMp4FileInput: {
1276
1304
  responseSerialize: serialize_norsk_api_media_VideoEncodeLadderEvent,
1277
1305
  responseDeserialize: deserialize_norsk_api_media_VideoEncodeLadderEvent,
1278
1306
  },
1279
- createVideoTransform: {
1307
+ // *
1308
+ // Transform a video stream (rescale, etc)
1309
+ createVideoTransform: {
1280
1310
  path: '/norsk.api.media.Media/CreateVideoTransform',
1281
1311
  requestStream: true,
1282
1312
  responseStream: true,
@@ -1287,7 +1317,9 @@ createMp4FileInput: {
1287
1317
  responseSerialize: serialize_norsk_api_media_VideoTransformEvent,
1288
1318
  responseDeserialize: deserialize_norsk_api_media_VideoTransformEvent,
1289
1319
  },
1290
- createChaosMonkey: {
1320
+ // *
1321
+ // Interferes with a stream by dropping frames
1322
+ createChaosMonkey: {
1291
1323
  path: '/norsk.api.media.Media/CreateChaosMonkey',
1292
1324
  requestStream: true,
1293
1325
  responseStream: true,
@@ -1298,7 +1330,9 @@ createMp4FileInput: {
1298
1330
  responseSerialize: serialize_norsk_api_media_ChaosMonkeyEvent,
1299
1331
  responseDeserialize: deserialize_norsk_api_media_ChaosMonkeyEvent,
1300
1332
  },
1301
- createAudioEncoder: {
1333
+ // *
1334
+ // Encode an audio stream.
1335
+ createAudioEncoder: {
1302
1336
  path: '/norsk.api.media.Media/CreateAudioEncoder',
1303
1337
  requestStream: true,
1304
1338
  responseStream: true,
@@ -1312,7 +1346,7 @@ createMp4FileInput: {
1312
1346
  // *
1313
1347
  // Create a Media Node composing multiple sources into one, eg to construct
1314
1348
  // overlays, picture-in-picture or split-screen video.
1315
- // <br/><br/>
1349
+ //
1316
1350
  // Individual sources may be cropped or scaled as part of this process
1317
1351
  createComposeVideo: {
1318
1352
  path: '/norsk.api.media.Media/CreateComposeVideo',
@@ -1325,7 +1359,10 @@ createComposeVideo: {
1325
1359
  responseSerialize: serialize_norsk_api_media_ComposeVideoSourceEvent,
1326
1360
  responseDeserialize: deserialize_norsk_api_media_ComposeVideoSourceEvent,
1327
1361
  },
1328
- createAudioMixer: {
1362
+ // *
1363
+ // Mix multiple audio streams together into a single output,
1364
+ // with optional gain control on each input.
1365
+ createAudioMixer: {
1329
1366
  path: '/norsk.api.media.Media/CreateAudioMixer',
1330
1367
  requestStream: true,
1331
1368
  responseStream: true,
@@ -1336,7 +1373,9 @@ createComposeVideo: {
1336
1373
  responseSerialize: serialize_norsk_api_media_AudioMixerEvent,
1337
1374
  responseDeserialize: deserialize_norsk_api_media_AudioMixerEvent,
1338
1375
  },
1339
- createAudioMatrixMixer: {
1376
+ // *
1377
+ // Given an audio stream of N channels, mix it down to M channels through a matrix of NxM gains.
1378
+ createAudioMatrixMixer: {
1340
1379
  path: '/norsk.api.media.Media/CreateAudioMatrixMixer',
1341
1380
  requestStream: true,
1342
1381
  responseStream: true,
@@ -1347,7 +1386,9 @@ createComposeVideo: {
1347
1386
  responseSerialize: serialize_norsk_api_media_AudioMatrixMixerEvent,
1348
1387
  responseDeserialize: deserialize_norsk_api_media_AudioMatrixMixerEvent,
1349
1388
  },
1350
- createAudioGain: {
1389
+ // *
1390
+ // Apply gain to an audio stream
1391
+ createAudioGain: {
1351
1392
  path: '/norsk.api.media.Media/CreateAudioGain',
1352
1393
  requestStream: true,
1353
1394
  responseStream: true,
@@ -1358,7 +1399,12 @@ createComposeVideo: {
1358
1399
  responseSerialize: serialize_norsk_api_media_AudioGainEvent,
1359
1400
  responseDeserialize: deserialize_norsk_api_media_AudioGainEvent,
1360
1401
  },
1361
- createAudioBuildMultichannel: {
1402
+ // *
1403
+ // Aggregate many single-channel audio streams into a stream with the
1404
+ // specified channel layout. The streams must all have the same sample format
1405
+ // and sample rate. The order of the streams provided for the channels is
1406
+ // important.
1407
+ createAudioBuildMultichannel: {
1362
1408
  path: '/norsk.api.media.Media/CreateAudioBuildMultichannel',
1363
1409
  requestStream: true,
1364
1410
  responseStream: true,
@@ -1369,7 +1415,11 @@ createComposeVideo: {
1369
1415
  responseSerialize: serialize_norsk_api_media_AudioBuildMultichannelEvent,
1370
1416
  responseDeserialize: deserialize_norsk_api_media_AudioBuildMultichannelEvent,
1371
1417
  },
1372
- createAudioSplitMultichannel: {
1418
+ // *
1419
+ // Split a multichannel audio stream into its individual channels. The first
1420
+ // channel receives the specified stream key, and each subsequent channel
1421
+ // increments the stream id on the stream key.
1422
+ createAudioSplitMultichannel: {
1373
1423
  path: '/norsk.api.media.Media/CreateAudioSplitMultichannel',
1374
1424
  requestStream: true,
1375
1425
  responseStream: true,
@@ -1394,14 +1444,14 @@ createAwsTranscribe: {
1394
1444
  responseSerialize: serialize_norsk_api_media_AwsTranscribeEvent,
1395
1445
  responseDeserialize: deserialize_norsk_api_media_AwsTranscribeEvent,
1396
1446
  },
1397
- createHlsVideoOutput: {
1398
- path: '/norsk.api.media.Media/CreateHlsVideoOutput',
1447
+ createCmafVideoOutput: {
1448
+ path: '/norsk.api.media.Media/CreateCmafVideoOutput',
1399
1449
  requestStream: true,
1400
1450
  responseStream: true,
1401
- requestType: media_pb.HlsVideoMessage,
1451
+ requestType: media_pb.CmafVideoMessage,
1402
1452
  responseType: media_pb.HlsOutputEvent,
1403
- requestSerialize: serialize_norsk_api_media_HlsVideoMessage,
1404
- requestDeserialize: deserialize_norsk_api_media_HlsVideoMessage,
1453
+ requestSerialize: serialize_norsk_api_media_CmafVideoMessage,
1454
+ requestDeserialize: deserialize_norsk_api_media_CmafVideoMessage,
1405
1455
  responseSerialize: serialize_norsk_api_media_HlsOutputEvent,
1406
1456
  responseDeserialize: deserialize_norsk_api_media_HlsOutputEvent,
1407
1457
  },
@@ -1427,14 +1477,14 @@ createAwsTranscribe: {
1427
1477
  responseSerialize: serialize_norsk_api_media_HlsOutputEvent,
1428
1478
  responseDeserialize: deserialize_norsk_api_media_HlsOutputEvent,
1429
1479
  },
1430
- createHlsAudioOutput: {
1431
- path: '/norsk.api.media.Media/CreateHlsAudioOutput',
1480
+ createCmafAudioOutput: {
1481
+ path: '/norsk.api.media.Media/CreateCmafAudioOutput',
1432
1482
  requestStream: true,
1433
1483
  responseStream: true,
1434
- requestType: media_pb.HlsAudioMessage,
1484
+ requestType: media_pb.CmafAudioMessage,
1435
1485
  responseType: media_pb.HlsOutputEvent,
1436
- requestSerialize: serialize_norsk_api_media_HlsAudioMessage,
1437
- requestDeserialize: deserialize_norsk_api_media_HlsAudioMessage,
1486
+ requestSerialize: serialize_norsk_api_media_CmafAudioMessage,
1487
+ requestDeserialize: deserialize_norsk_api_media_CmafAudioMessage,
1438
1488
  responseSerialize: serialize_norsk_api_media_HlsOutputEvent,
1439
1489
  responseDeserialize: deserialize_norsk_api_media_HlsOutputEvent,
1440
1490
  },
@@ -1449,14 +1499,14 @@ createAwsTranscribe: {
1449
1499
  responseSerialize: serialize_norsk_api_media_HlsOutputEvent,
1450
1500
  responseDeserialize: deserialize_norsk_api_media_HlsOutputEvent,
1451
1501
  },
1452
- createHlsWebVttOutput: {
1453
- path: '/norsk.api.media.Media/CreateHlsWebVttOutput',
1502
+ createCmafWebVttOutput: {
1503
+ path: '/norsk.api.media.Media/CreateCmafWebVttOutput',
1454
1504
  requestStream: true,
1455
1505
  responseStream: true,
1456
- requestType: media_pb.HlsWebVttMessage,
1506
+ requestType: media_pb.CmafWebVttMessage,
1457
1507
  responseType: media_pb.HlsOutputEvent,
1458
- requestSerialize: serialize_norsk_api_media_HlsWebVttMessage,
1459
- requestDeserialize: deserialize_norsk_api_media_HlsWebVttMessage,
1508
+ requestSerialize: serialize_norsk_api_media_CmafWebVttMessage,
1509
+ requestDeserialize: deserialize_norsk_api_media_CmafWebVttMessage,
1460
1510
  responseSerialize: serialize_norsk_api_media_HlsOutputEvent,
1461
1511
  responseDeserialize: deserialize_norsk_api_media_HlsOutputEvent,
1462
1512
  },
@@ -1493,14 +1543,14 @@ createAwsTranscribe: {
1493
1543
  responseSerialize: serialize_norsk_api_media_HlsOutputEvent,
1494
1544
  responseDeserialize: deserialize_norsk_api_media_HlsOutputEvent,
1495
1545
  },
1496
- createHlsMasterOutput: {
1497
- path: '/norsk.api.media.Media/CreateHlsMasterOutput',
1546
+ createCmafMasterOutput: {
1547
+ path: '/norsk.api.media.Media/CreateCmafMasterOutput',
1498
1548
  requestStream: true,
1499
1549
  responseStream: true,
1500
- requestType: media_pb.HlsMasterMessage,
1550
+ requestType: media_pb.CmafMasterMessage,
1501
1551
  responseType: media_pb.HlsOutputEvent,
1502
- requestSerialize: serialize_norsk_api_media_HlsMasterMessage,
1503
- requestDeserialize: deserialize_norsk_api_media_HlsMasterMessage,
1552
+ requestSerialize: serialize_norsk_api_media_CmafMasterMessage,
1553
+ requestDeserialize: deserialize_norsk_api_media_CmafMasterMessage,
1504
1554
  responseSerialize: serialize_norsk_api_media_HlsOutputEvent,
1505
1555
  responseDeserialize: deserialize_norsk_api_media_HlsOutputEvent,
1506
1556
  },
@@ -1515,7 +1565,12 @@ createAwsTranscribe: {
1515
1565
  responseSerialize: serialize_norsk_api_media_HlsOutputEvent,
1516
1566
  responseDeserialize: deserialize_norsk_api_media_HlsOutputEvent,
1517
1567
  },
1518
- createLocalWebRTCOutput: {
1568
+ // *
1569
+ // Playback audio/video via webrtc to a browser, and accept audio/video input from a browser.
1570
+ // The browser client must conform to a custom protocol as implemented in the hosted test page.
1571
+ // For general WebRTC ingest prefer the WHIP input node, and for egest to a downstream media server
1572
+ // use the WHIP output node.
1573
+ createLocalWebRTCOutput: {
1519
1574
  path: '/norsk.api.media.Media/CreateLocalWebRTCOutput',
1520
1575
  requestStream: true,
1521
1576
  responseStream: true,
@@ -1570,7 +1625,9 @@ createAwsTranscribe: {
1570
1625
  responseSerialize: serialize_norsk_api_media_RtmpOutputEvent,
1571
1626
  responseDeserialize: deserialize_norsk_api_media_RtmpOutputEvent,
1572
1627
  },
1573
- createTsFileOutput: {
1628
+ // *
1629
+ // Stream to a Transport Stream file.
1630
+ createTsFileOutput: {
1574
1631
  path: '/norsk.api.media.Media/CreateTsFileOutput',
1575
1632
  requestStream: true,
1576
1633
  responseStream: true,
@@ -1581,7 +1638,21 @@ createAwsTranscribe: {
1581
1638
  responseSerialize: serialize_norsk_api_media_TsFileOutputEvent,
1582
1639
  responseDeserialize: deserialize_norsk_api_media_TsFileOutputEvent,
1583
1640
  },
1584
- createMp4FileOutput: {
1641
+ // *
1642
+ // Output MP4 files to disk, both fragmented and non-fragmented.
1643
+ //
1644
+ // The fragmented output is required.
1645
+ //
1646
+ // The optional non-fragmented filename will be written after sending
1647
+ // the `close` message and will be fully written by the time the node is
1648
+ // closed. This sets up a temp file to store the frame data by appending
1649
+ // the extension `.tmp`.
1650
+ //
1651
+ // A non-fragmented MP4 file can be written on request with the
1652
+ // `write_file` message, which uses the frame data store if
1653
+ // `nonfragmented_file_name` was given or reads
1654
+ // back the fragmented mp4 if there is no non-fragmented file.
1655
+ createMp4FileOutput: {
1585
1656
  path: '/norsk.api.media.Media/CreateMp4FileOutput',
1586
1657
  requestStream: true,
1587
1658
  responseStream: true,
@@ -1592,7 +1663,10 @@ createAwsTranscribe: {
1592
1663
  responseSerialize: serialize_norsk_api_media_Mp4FileOutputEvent,
1593
1664
  responseDeserialize: deserialize_norsk_api_media_Mp4FileOutputEvent,
1594
1665
  },
1595
- createHardSwitcher: {
1666
+ // *
1667
+ // Switch between multiple input sources via a hard cut. May be used to switch between
1668
+ // sources of possibly different configurations or without decoding.
1669
+ createHardSwitcher: {
1596
1670
  path: '/norsk.api.media.Media/CreateHardSwitcher',
1597
1671
  requestStream: true,
1598
1672
  responseStream: true,
@@ -1603,7 +1677,9 @@ createAwsTranscribe: {
1603
1677
  responseSerialize: serialize_norsk_api_media_HardSwitcherEvent,
1604
1678
  responseDeserialize: deserialize_norsk_api_media_HardSwitcherEvent,
1605
1679
  },
1606
- createSmoothSwitcher: {
1680
+ // *
1681
+ // Switch between multiple input sources without interruption, via a transition.
1682
+ createSmoothSwitcher: {
1607
1683
  path: '/norsk.api.media.Media/CreateSmoothSwitcher',
1608
1684
  requestStream: true,
1609
1685
  responseStream: true,
@@ -1614,7 +1690,13 @@ createAwsTranscribe: {
1614
1690
  responseSerialize: serialize_norsk_api_media_SmoothSwitcherEvent,
1615
1691
  responseDeserialize: deserialize_norsk_api_media_SmoothSwitcherEvent,
1616
1692
  },
1617
- createStreamKeyOverride: {
1693
+ // *
1694
+ // Provide a new stream key for a single stream. Cannot be subscribed to
1695
+ // multiple streams at once.
1696
+ //
1697
+ // The stream key is used for identifying streams within multiplexed sources
1698
+ // and also is translated into URIs for HLS playlists and other resources.
1699
+ createStreamKeyOverride: {
1618
1700
  path: '/norsk.api.media.Media/CreateStreamKeyOverride',
1619
1701
  requestStream: true,
1620
1702
  responseStream: true,
@@ -1625,7 +1707,14 @@ createAwsTranscribe: {
1625
1707
  responseSerialize: serialize_norsk_api_media_StreamKeyOverrideEvent,
1626
1708
  responseDeserialize: deserialize_norsk_api_media_StreamKeyOverrideEvent,
1627
1709
  },
1628
- createMetadataOverride: {
1710
+ // *
1711
+ // Override bitrate and language metadata on streams.
1712
+ //
1713
+ // Audio and video bitrate metadata is required for playlists for both
1714
+ // `CreateHlsMasterOutput` and `CreateHlsMasterPushOutput`
1715
+ // nodes. It is automatically configured for some sources (like RTMP) and in
1716
+ // cases where re-encoding is done, but is unset for other sources (like SRT).
1717
+ createMetadataOverride: {
1629
1718
  path: '/norsk.api.media.Media/CreateMetadataOverride',
1630
1719
  requestStream: true,
1631
1720
  responseStream: true,
@@ -1636,7 +1725,11 @@ createAwsTranscribe: {
1636
1725
  responseSerialize: serialize_norsk_api_media_MetadataOverrideEvent,
1637
1726
  responseDeserialize: deserialize_norsk_api_media_MetadataOverrideEvent,
1638
1727
  },
1639
- createSync: {
1728
+ // *
1729
+ // Sync multiple streams together by timestamps, queuing frames from streams
1730
+ // that are behind the others. This is already included in most nodes,
1731
+ // especially outputs.
1732
+ createSync: {
1640
1733
  path: '/norsk.api.media.Media/CreateSync',
1641
1734
  requestStream: true,
1642
1735
  responseStream: true,
@@ -1647,7 +1740,13 @@ createAwsTranscribe: {
1647
1740
  responseSerialize: serialize_norsk_api_media_SyncEvent,
1648
1741
  responseDeserialize: deserialize_norsk_api_media_SyncEvent,
1649
1742
  },
1650
- createStreamStats: {
1743
+ // *
1744
+ // Record statistical information about media streams, including bitrate,
1745
+ // frame rate, and number of keyframes, measured over some configurable
1746
+ // sampling windows.
1747
+ //
1748
+ // Corresponding settings are found on many input and output nodes.
1749
+ createStreamStats: {
1651
1750
  path: '/norsk.api.media.Media/CreateStreamStats',
1652
1751
  requestStream: true,
1653
1752
  responseStream: true,
@@ -1658,7 +1757,9 @@ createAwsTranscribe: {
1658
1757
  responseSerialize: serialize_norsk_api_media_StreamStatsEvent,
1659
1758
  responseDeserialize: deserialize_norsk_api_media_StreamStatsEvent,
1660
1759
  },
1661
- createAudioLevels: {
1760
+ // *
1761
+ // Monitor the volume of an audio stream
1762
+ createAudioLevels: {
1662
1763
  path: '/norsk.api.media.Media/CreateAudioLevels',
1663
1764
  requestStream: true,
1664
1765
  responseStream: true,
@@ -1669,7 +1770,9 @@ createAwsTranscribe: {
1669
1770
  responseSerialize: serialize_norsk_api_media_AudioLevelsEvent,
1670
1771
  responseDeserialize: deserialize_norsk_api_media_AudioLevelsEvent,
1671
1772
  },
1672
- createRtpInput: {
1773
+ // *
1774
+ // Stream from a remote RTP source
1775
+ createRtpInput: {
1673
1776
  path: '/norsk.api.media.Media/CreateRtpInput',
1674
1777
  requestStream: true,
1675
1778
  responseStream: true,
@@ -1680,7 +1783,9 @@ createAwsTranscribe: {
1680
1783
  responseSerialize: serialize_norsk_api_media_RtpInputEvent,
1681
1784
  responseDeserialize: deserialize_norsk_api_media_RtpInputEvent,
1682
1785
  },
1683
- hardwareInfo: {
1786
+ // *
1787
+ // Query information about the hardware Norsk is running on.
1788
+ hardwareInfo: {
1684
1789
  path: '/norsk.api.media.Media/HardwareInfo',
1685
1790
  requestStream: false,
1686
1791
  responseStream: false,