@blockcast/mmt-container 1.0.1 → 2.0.0-main.609e08d7e29f
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/README.md +9 -7
- package/dist/browser-runtime.js +6972 -6693
- package/dist/browser-runtime.js.map +4 -4
- package/dist/carp-catalog.d.ts +7 -7
- package/dist/carp-catalog.d.ts.map +1 -1
- package/dist/carp-catalog.js +65 -230
- package/dist/carp-catalog.js.map +3 -3
- package/dist/catalog-fec-params.js.map +1 -1
- package/dist/catalog-network-source.js.map +1 -1
- package/dist/delivery-catalog.js +3 -0
- package/dist/delivery-catalog.js.map +2 -2
- package/dist/delta-fallback-config.js.map +1 -1
- package/dist/fec-manager.d.ts +25 -1
- package/dist/fec-manager.d.ts.map +1 -1
- package/dist/fec-manager.js +208 -15
- package/dist/fec-manager.js.map +2 -2
- package/dist/fec-state.js.map +1 -1
- package/dist/fec-worker-setup.js.map +1 -1
- package/dist/held-layer-admission.d.ts +8 -0
- package/dist/held-layer-admission.d.ts.map +1 -1
- package/dist/held-layer-admission.js +22 -1
- package/dist/held-layer-admission.js.map +2 -2
- package/dist/iso-block-locator.js.map +1 -1
- package/dist/mfu-reassembler.js.map +1 -1
- package/dist/mmtp-container-parser.js.map +1 -1
- package/dist/mmtp-container-parser.no-modules.js +146 -332
- package/dist/mmtp-container-parser.no-modules.js.map +4 -4
- package/dist/mmtp-decode-pipeline.js.map +1 -1
- package/dist/mmtp-fec-session.d.ts.map +1 -1
- package/dist/mmtp-fec-session.js +61 -15
- package/dist/mmtp-fec-session.js.map +3 -3
- package/dist/mmtp-router.d.ts +11 -6
- package/dist/mmtp-router.d.ts.map +1 -1
- package/dist/mmtp-router.js +47 -10
- package/dist/mmtp-router.js.map +3 -3
- package/dist/multicast-auth-catalog.d.ts +8 -8
- package/dist/multicast-auth-catalog.d.ts.map +1 -1
- package/dist/multicast-auth-catalog.js +171 -75
- package/dist/multicast-auth-catalog.js.map +4 -4
- package/dist/multicast-input.d.ts +5 -5
- package/dist/multicast-input.d.ts.map +1 -1
- package/dist/multicast-input.js +126 -49
- package/dist/multicast-input.js.map +3 -3
- package/dist/multicast-manager.d.ts +11 -4
- package/dist/multicast-manager.d.ts.map +1 -1
- package/dist/multicast-manager.js +7914 -7659
- package/dist/multicast-manager.js.map +4 -4
- package/dist/multicast-transport.d.ts +16 -1
- package/dist/multicast-transport.d.ts.map +1 -1
- package/dist/multicast-transport.js +120 -5
- package/dist/multicast-transport.js.map +4 -4
- package/dist/multicast-unwrap.js +2 -2
- package/dist/multicast-unwrap.js.map +2 -2
- package/dist/no-modules.js +100 -288
- package/dist/no-modules.js.map +4 -4
- package/dist/repair-fetch.js.map +1 -1
- package/dist/signaling.js.map +1 -1
- package/dist/timestamp-codec.js.map +1 -1
- package/dist/wasm-mfu-reassembler.js.map +1 -1
- package/dist/wasm-mmtp-container-parser.js.map +1 -1
- package/package.json +5 -5
- package/schemas/catalog.schema.json +15 -7
- package/src/carp-catalog.ts +14 -13
- package/src/fec-manager.ts +89 -14
- package/src/held-layer-admission.ts +38 -1
- package/src/mmtp-fec-session.ts +20 -12
- package/src/mmtp-router.ts +65 -16
- package/src/multicast-auth-catalog.ts +43 -36
- package/src/multicast-input.ts +28 -8
- package/src/multicast-manager.ts +38 -34
- package/src/multicast-transport.ts +74 -7
- package/test-vectors/bc-provenance-v2.json +614 -175
- package/test-vectors/catalog/README.md +24 -8
- package/test-vectors/catalog/negative/multicast-auth-asm-missing-sender-address.json +0 -2
- package/test-vectors/catalog/negative/{multicast-auth-manifest-port-equals-port.json → multicast-auth-draft01-manifest-port.json} +1 -1
- package/test-vectors/catalog/negative/multicast-auth-duplicate-first-epoch.json +0 -1
- package/test-vectors/catalog/negative/multicast-auth-duplicate-kid.json +0 -1
- package/test-vectors/catalog/negative/multicast-auth-endpoint-auth-without-object-auth.json +0 -1
- package/test-vectors/catalog/negative/multicast-auth-endpoint-missing-bandwidth.json +0 -1
- package/test-vectors/catalog/negative/multicast-auth-manifest-timer-out-of-range.json +0 -1
- package/test-vectors/catalog/negative/multicast-auth-sender-address-on-ssm.json +0 -1
- package/test-vectors/catalog/negative/multicast-auth-shared-sg-port.json +73 -0
- package/test-vectors/catalog/negative/multicast-auth-version-1.json +0 -1
- package/test-vectors/catalog/negative/multicast-auth-version-3.json +0 -1
- package/test-vectors/catalog/negative/multicast-auth-version-missing.json +0 -1
- package/test-vectors/catalog/negative/multicast-endpoint-address-family-mismatch.json +55 -0
- package/test-vectors/catalog/negative/multicast-endpoint-address-host-name.json +55 -0
- package/test-vectors/catalog/negative/multicast-endpoint-address-leading-zero.json +55 -0
- package/test-vectors/catalog/negative/multicast-endpoint-address-ls32-leading-zero.json +55 -0
- package/test-vectors/catalog/negative/multicast-endpoint-address-mapped-family-mismatch.json +55 -0
- package/test-vectors/catalog/negative/multicast-endpoint-address-zone-id.json +55 -0
- package/test-vectors/catalog/positive/multicast-auth-asm-sender.json +0 -2
- package/test-vectors/catalog/{negative/multicast-auth-max-auth-delay-above-max.json → positive/multicast-auth-max-auth-delay-above-max-clamped.json} +0 -1
- package/test-vectors/catalog/{negative/multicast-auth-max-auth-delay-below-min.json → positive/multicast-auth-max-auth-delay-below-min-clamped.json} +0 -1
- package/test-vectors/catalog/positive/multicast-auth-max-auth-delay-string.json +55 -0
- package/test-vectors/catalog/positive/multicast-auth-rotation.json +0 -1
- package/test-vectors/catalog/positive/multicast-draft01-7-2-6-example.json +0 -1
- package/test-vectors/catalog/section-codes.json +8 -3
- package/test-vectors/catalog-multicast-auth-v1.json +0 -1
- package/test-vectors/catalog-validation.json +3 -3
- package/test-vectors/generate-bc-provenance-v2.mjs +94 -14
|
@@ -35,15 +35,31 @@ The negatives:
|
|
|
35
35
|
an endpoint `relayAddress` is retired and rejected (`multicast_relay_address`),
|
|
36
36
|
not ignored.
|
|
37
37
|
- `multicast-auth-*.json`, `multicast-endpoint-protocol-*.json`,
|
|
38
|
+
`multicast-endpoint-address-*.json`,
|
|
38
39
|
`multicast-endpoint-foreign-namespace-track.json`: the
|
|
39
|
-
draft-ramadan-moq-multicast-
|
|
40
|
-
Blockcast/moqcast-draft@
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
that
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
40
|
+
draft-ramadan-moq-multicast-02 4.1 / 7.2.6 rules (BLO-51622, draft pinned at
|
|
41
|
+
Blockcast/moqcast-draft@5f49172). Each is one mutation of a positive.
|
|
42
|
+
`src/catalog-schema.test.ts` pins the schema keyword and the
|
|
43
|
+
`multicastCatalogIssues` code and path of each
|
|
44
|
+
(`multicastRuntimeExpectations`), that `validateCmsfMmtpCatalog` does not
|
|
45
|
+
throw on any of them (a receiver ignores the endpoint, or admits no multicast
|
|
46
|
+
data on a catalog-level fault, and MoQ unicast stays usable), and that the
|
|
47
|
+
transport receiver ignores exactly the endpoints it names. Records ride in
|
|
48
|
+
band on the flow's own `port` (7.2.3), so `multicast-auth-draft01-manifest-port.json`
|
|
49
|
+
is a draft -01 catalog whose endpoint `auth` still names its record port: an
|
|
50
|
+
unknown member, so the endpoint is ignored (libmmt policy, failing closed;
|
|
51
|
+
the posted 7.2.6 states no unknown-member rule). The schema cannot state, and
|
|
52
|
+
accepts: a repeated `kid`, a repeated `firstEpoch`, two protected endpoints
|
|
53
|
+
on one `(S, G, port)` (`multicast-auth-shared-sg-port.json`, spelled
|
|
54
|
+
differently, compared as addresses), the address-literal and address-family
|
|
55
|
+
rules (a leading-zero dec-octet in a dotted quad or an ls32 tail, a host
|
|
56
|
+
name, a zone id, mixed families, an IPv4-mapped source counting as IPv6),
|
|
57
|
+
and a track declaring a foreign namespace. A receiver clamps a
|
|
58
|
+
`maxAuthDelayMs` outside 50..1000 and reads a non-number as absent, so
|
|
59
|
+
`positive/multicast-auth-max-auth-delay-{below-min,above-max}-clamped.json`
|
|
60
|
+
and `positive/multicast-auth-max-auth-delay-string.json` are positives;
|
|
61
|
+
`positive/multicast-auth-asm-sender.json` is an ASM pair sharing G and port
|
|
62
|
+
with different `senderAddress`. `multicast-auth-root-dotted-key.json`,
|
|
47
63
|
`multicast-auth-padded-key.json`, `multicast-auth-reused-track-format.json`
|
|
48
64
|
and `multicast-auth-trailing-pad-bits.json` are draft -00 root-key blocks kept
|
|
49
65
|
as negative controls: the root `"multicast.auth"` key itself is refused.
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 1,
|
|
3
|
+
"streamingFormat": "mmtp",
|
|
4
|
+
"streamingFormatVersion": "draft-ramadan-moq-mmt-01",
|
|
5
|
+
"tracks": [
|
|
6
|
+
{
|
|
7
|
+
"name": "video",
|
|
8
|
+
"packaging": "mmtp",
|
|
9
|
+
"codec": "avc1.640028",
|
|
10
|
+
"mmtpMode": "mfu",
|
|
11
|
+
"timescale": 90000,
|
|
12
|
+
"groupDurationMs": 1000
|
|
13
|
+
}
|
|
14
|
+
],
|
|
15
|
+
"multicast": {
|
|
16
|
+
"auth": {
|
|
17
|
+
"scheme": "bc-provenance",
|
|
18
|
+
"version": 2,
|
|
19
|
+
"sig": "ed25519",
|
|
20
|
+
"keys": [
|
|
21
|
+
{
|
|
22
|
+
"kid": 1,
|
|
23
|
+
"publicKey": "A6EHv_POEL4dcN0Y50vAmWfk1jCbpQ1fHdyGZBJVMbg",
|
|
24
|
+
"firstEpoch": 1
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"kid": 2,
|
|
28
|
+
"publicKey": "mm4Ae7fTOTrOb2d_zK9mlXVV2YgeBBvBncabOQRh1Z4",
|
|
29
|
+
"firstEpoch": 17
|
|
30
|
+
}
|
|
31
|
+
],
|
|
32
|
+
"minEpoch": 17
|
|
33
|
+
},
|
|
34
|
+
"endpoints": [
|
|
35
|
+
{
|
|
36
|
+
"sourceAddress": "2001:db8::7",
|
|
37
|
+
"groupAddress": "ff3e::10:20:30",
|
|
38
|
+
"port": 5004,
|
|
39
|
+
"bandwidth": 100000000,
|
|
40
|
+
"tracks": [
|
|
41
|
+
{
|
|
42
|
+
"name": "video",
|
|
43
|
+
"packetId": 1
|
|
44
|
+
}
|
|
45
|
+
],
|
|
46
|
+
"auth": {
|
|
47
|
+
"streamId": 2864434397,
|
|
48
|
+
"maxAuthDelayMs": 200,
|
|
49
|
+
"manifestTimerMs": 20,
|
|
50
|
+
"manifestTrack": "video/manifest"
|
|
51
|
+
}
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
"sourceAddress": "2001:DB8:0::0007",
|
|
55
|
+
"groupAddress": "FF3E:0::10:20:30",
|
|
56
|
+
"port": 5004,
|
|
57
|
+
"bandwidth": 100000000,
|
|
58
|
+
"tracks": [
|
|
59
|
+
{
|
|
60
|
+
"name": "video",
|
|
61
|
+
"packetId": 1
|
|
62
|
+
}
|
|
63
|
+
],
|
|
64
|
+
"auth": {
|
|
65
|
+
"streamId": 2864434398,
|
|
66
|
+
"maxAuthDelayMs": 200,
|
|
67
|
+
"manifestTimerMs": 20,
|
|
68
|
+
"manifestTrack": "video/manifest"
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
]
|
|
72
|
+
}
|
|
73
|
+
}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 1,
|
|
3
|
+
"streamingFormat": "mmtp",
|
|
4
|
+
"streamingFormatVersion": "draft-ramadan-moq-mmt-01",
|
|
5
|
+
"tracks": [
|
|
6
|
+
{
|
|
7
|
+
"name": "video",
|
|
8
|
+
"packaging": "mmtp",
|
|
9
|
+
"codec": "avc1.640028",
|
|
10
|
+
"mmtpMode": "mfu",
|
|
11
|
+
"timescale": 90000,
|
|
12
|
+
"groupDurationMs": 1000
|
|
13
|
+
}
|
|
14
|
+
],
|
|
15
|
+
"multicast": {
|
|
16
|
+
"auth": {
|
|
17
|
+
"scheme": "bc-provenance",
|
|
18
|
+
"version": 2,
|
|
19
|
+
"sig": "ed25519",
|
|
20
|
+
"keys": [
|
|
21
|
+
{
|
|
22
|
+
"kid": 1,
|
|
23
|
+
"publicKey": "A6EHv_POEL4dcN0Y50vAmWfk1jCbpQ1fHdyGZBJVMbg",
|
|
24
|
+
"firstEpoch": 1
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"kid": 2,
|
|
28
|
+
"publicKey": "mm4Ae7fTOTrOb2d_zK9mlXVV2YgeBBvBncabOQRh1Z4",
|
|
29
|
+
"firstEpoch": 17
|
|
30
|
+
}
|
|
31
|
+
],
|
|
32
|
+
"minEpoch": 17
|
|
33
|
+
},
|
|
34
|
+
"endpoints": [
|
|
35
|
+
{
|
|
36
|
+
"sourceAddress": "198.51.100.7",
|
|
37
|
+
"groupAddress": "ff3e::10:20:30",
|
|
38
|
+
"port": 5004,
|
|
39
|
+
"bandwidth": 100000000,
|
|
40
|
+
"tracks": [
|
|
41
|
+
{
|
|
42
|
+
"name": "video",
|
|
43
|
+
"packetId": 1
|
|
44
|
+
}
|
|
45
|
+
],
|
|
46
|
+
"auth": {
|
|
47
|
+
"streamId": 2864434397,
|
|
48
|
+
"maxAuthDelayMs": 200,
|
|
49
|
+
"manifestTimerMs": 20,
|
|
50
|
+
"manifestTrack": "video/manifest"
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
]
|
|
54
|
+
}
|
|
55
|
+
}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 1,
|
|
3
|
+
"streamingFormat": "mmtp",
|
|
4
|
+
"streamingFormatVersion": "draft-ramadan-moq-mmt-01",
|
|
5
|
+
"tracks": [
|
|
6
|
+
{
|
|
7
|
+
"name": "video",
|
|
8
|
+
"packaging": "mmtp",
|
|
9
|
+
"codec": "avc1.640028",
|
|
10
|
+
"mmtpMode": "mfu",
|
|
11
|
+
"timescale": 90000,
|
|
12
|
+
"groupDurationMs": 1000
|
|
13
|
+
}
|
|
14
|
+
],
|
|
15
|
+
"multicast": {
|
|
16
|
+
"auth": {
|
|
17
|
+
"scheme": "bc-provenance",
|
|
18
|
+
"version": 2,
|
|
19
|
+
"sig": "ed25519",
|
|
20
|
+
"keys": [
|
|
21
|
+
{
|
|
22
|
+
"kid": 1,
|
|
23
|
+
"publicKey": "A6EHv_POEL4dcN0Y50vAmWfk1jCbpQ1fHdyGZBJVMbg",
|
|
24
|
+
"firstEpoch": 1
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"kid": 2,
|
|
28
|
+
"publicKey": "mm4Ae7fTOTrOb2d_zK9mlXVV2YgeBBvBncabOQRh1Z4",
|
|
29
|
+
"firstEpoch": 17
|
|
30
|
+
}
|
|
31
|
+
],
|
|
32
|
+
"minEpoch": 17
|
|
33
|
+
},
|
|
34
|
+
"endpoints": [
|
|
35
|
+
{
|
|
36
|
+
"sourceAddress": "sender.example.net",
|
|
37
|
+
"groupAddress": "232.10.20.30",
|
|
38
|
+
"port": 5004,
|
|
39
|
+
"bandwidth": 100000000,
|
|
40
|
+
"tracks": [
|
|
41
|
+
{
|
|
42
|
+
"name": "video",
|
|
43
|
+
"packetId": 1
|
|
44
|
+
}
|
|
45
|
+
],
|
|
46
|
+
"auth": {
|
|
47
|
+
"streamId": 2864434397,
|
|
48
|
+
"maxAuthDelayMs": 200,
|
|
49
|
+
"manifestTimerMs": 20,
|
|
50
|
+
"manifestTrack": "video/manifest"
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
]
|
|
54
|
+
}
|
|
55
|
+
}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 1,
|
|
3
|
+
"streamingFormat": "mmtp",
|
|
4
|
+
"streamingFormatVersion": "draft-ramadan-moq-mmt-01",
|
|
5
|
+
"tracks": [
|
|
6
|
+
{
|
|
7
|
+
"name": "video",
|
|
8
|
+
"packaging": "mmtp",
|
|
9
|
+
"codec": "avc1.640028",
|
|
10
|
+
"mmtpMode": "mfu",
|
|
11
|
+
"timescale": 90000,
|
|
12
|
+
"groupDurationMs": 1000
|
|
13
|
+
}
|
|
14
|
+
],
|
|
15
|
+
"multicast": {
|
|
16
|
+
"auth": {
|
|
17
|
+
"scheme": "bc-provenance",
|
|
18
|
+
"version": 2,
|
|
19
|
+
"sig": "ed25519",
|
|
20
|
+
"keys": [
|
|
21
|
+
{
|
|
22
|
+
"kid": 1,
|
|
23
|
+
"publicKey": "A6EHv_POEL4dcN0Y50vAmWfk1jCbpQ1fHdyGZBJVMbg",
|
|
24
|
+
"firstEpoch": 1
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"kid": 2,
|
|
28
|
+
"publicKey": "mm4Ae7fTOTrOb2d_zK9mlXVV2YgeBBvBncabOQRh1Z4",
|
|
29
|
+
"firstEpoch": 17
|
|
30
|
+
}
|
|
31
|
+
],
|
|
32
|
+
"minEpoch": 17
|
|
33
|
+
},
|
|
34
|
+
"endpoints": [
|
|
35
|
+
{
|
|
36
|
+
"sourceAddress": "198.51.100.07",
|
|
37
|
+
"groupAddress": "232.10.20.30",
|
|
38
|
+
"port": 5004,
|
|
39
|
+
"bandwidth": 100000000,
|
|
40
|
+
"tracks": [
|
|
41
|
+
{
|
|
42
|
+
"name": "video",
|
|
43
|
+
"packetId": 1
|
|
44
|
+
}
|
|
45
|
+
],
|
|
46
|
+
"auth": {
|
|
47
|
+
"streamId": 2864434397,
|
|
48
|
+
"maxAuthDelayMs": 200,
|
|
49
|
+
"manifestTimerMs": 20,
|
|
50
|
+
"manifestTrack": "video/manifest"
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
]
|
|
54
|
+
}
|
|
55
|
+
}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 1,
|
|
3
|
+
"streamingFormat": "mmtp",
|
|
4
|
+
"streamingFormatVersion": "draft-ramadan-moq-mmt-01",
|
|
5
|
+
"tracks": [
|
|
6
|
+
{
|
|
7
|
+
"name": "video",
|
|
8
|
+
"packaging": "mmtp",
|
|
9
|
+
"codec": "avc1.640028",
|
|
10
|
+
"mmtpMode": "mfu",
|
|
11
|
+
"timescale": 90000,
|
|
12
|
+
"groupDurationMs": 1000
|
|
13
|
+
}
|
|
14
|
+
],
|
|
15
|
+
"multicast": {
|
|
16
|
+
"auth": {
|
|
17
|
+
"scheme": "bc-provenance",
|
|
18
|
+
"version": 2,
|
|
19
|
+
"sig": "ed25519",
|
|
20
|
+
"keys": [
|
|
21
|
+
{
|
|
22
|
+
"kid": 1,
|
|
23
|
+
"publicKey": "A6EHv_POEL4dcN0Y50vAmWfk1jCbpQ1fHdyGZBJVMbg",
|
|
24
|
+
"firstEpoch": 1
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"kid": 2,
|
|
28
|
+
"publicKey": "mm4Ae7fTOTrOb2d_zK9mlXVV2YgeBBvBncabOQRh1Z4",
|
|
29
|
+
"firstEpoch": 17
|
|
30
|
+
}
|
|
31
|
+
],
|
|
32
|
+
"minEpoch": 17
|
|
33
|
+
},
|
|
34
|
+
"endpoints": [
|
|
35
|
+
{
|
|
36
|
+
"sourceAddress": "::ffff:198.51.100.07",
|
|
37
|
+
"groupAddress": "ff3e::10:20:30",
|
|
38
|
+
"port": 5004,
|
|
39
|
+
"bandwidth": 100000000,
|
|
40
|
+
"tracks": [
|
|
41
|
+
{
|
|
42
|
+
"name": "video",
|
|
43
|
+
"packetId": 1
|
|
44
|
+
}
|
|
45
|
+
],
|
|
46
|
+
"auth": {
|
|
47
|
+
"streamId": 2864434397,
|
|
48
|
+
"maxAuthDelayMs": 200,
|
|
49
|
+
"manifestTimerMs": 20,
|
|
50
|
+
"manifestTrack": "video/manifest"
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
]
|
|
54
|
+
}
|
|
55
|
+
}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 1,
|
|
3
|
+
"streamingFormat": "mmtp",
|
|
4
|
+
"streamingFormatVersion": "draft-ramadan-moq-mmt-01",
|
|
5
|
+
"tracks": [
|
|
6
|
+
{
|
|
7
|
+
"name": "video",
|
|
8
|
+
"packaging": "mmtp",
|
|
9
|
+
"codec": "avc1.640028",
|
|
10
|
+
"mmtpMode": "mfu",
|
|
11
|
+
"timescale": 90000,
|
|
12
|
+
"groupDurationMs": 1000
|
|
13
|
+
}
|
|
14
|
+
],
|
|
15
|
+
"multicast": {
|
|
16
|
+
"auth": {
|
|
17
|
+
"scheme": "bc-provenance",
|
|
18
|
+
"version": 2,
|
|
19
|
+
"sig": "ed25519",
|
|
20
|
+
"keys": [
|
|
21
|
+
{
|
|
22
|
+
"kid": 1,
|
|
23
|
+
"publicKey": "A6EHv_POEL4dcN0Y50vAmWfk1jCbpQ1fHdyGZBJVMbg",
|
|
24
|
+
"firstEpoch": 1
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"kid": 2,
|
|
28
|
+
"publicKey": "mm4Ae7fTOTrOb2d_zK9mlXVV2YgeBBvBncabOQRh1Z4",
|
|
29
|
+
"firstEpoch": 17
|
|
30
|
+
}
|
|
31
|
+
],
|
|
32
|
+
"minEpoch": 17
|
|
33
|
+
},
|
|
34
|
+
"endpoints": [
|
|
35
|
+
{
|
|
36
|
+
"sourceAddress": "::ffff:198.51.100.7",
|
|
37
|
+
"groupAddress": "232.10.20.30",
|
|
38
|
+
"port": 5004,
|
|
39
|
+
"bandwidth": 100000000,
|
|
40
|
+
"tracks": [
|
|
41
|
+
{
|
|
42
|
+
"name": "video",
|
|
43
|
+
"packetId": 1
|
|
44
|
+
}
|
|
45
|
+
],
|
|
46
|
+
"auth": {
|
|
47
|
+
"streamId": 2864434397,
|
|
48
|
+
"maxAuthDelayMs": 200,
|
|
49
|
+
"manifestTimerMs": 20,
|
|
50
|
+
"manifestTrack": "video/manifest"
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
]
|
|
54
|
+
}
|
|
55
|
+
}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 1,
|
|
3
|
+
"streamingFormat": "mmtp",
|
|
4
|
+
"streamingFormatVersion": "draft-ramadan-moq-mmt-01",
|
|
5
|
+
"tracks": [
|
|
6
|
+
{
|
|
7
|
+
"name": "video",
|
|
8
|
+
"packaging": "mmtp",
|
|
9
|
+
"codec": "avc1.640028",
|
|
10
|
+
"mmtpMode": "mfu",
|
|
11
|
+
"timescale": 90000,
|
|
12
|
+
"groupDurationMs": 1000
|
|
13
|
+
}
|
|
14
|
+
],
|
|
15
|
+
"multicast": {
|
|
16
|
+
"auth": {
|
|
17
|
+
"scheme": "bc-provenance",
|
|
18
|
+
"version": 2,
|
|
19
|
+
"sig": "ed25519",
|
|
20
|
+
"keys": [
|
|
21
|
+
{
|
|
22
|
+
"kid": 1,
|
|
23
|
+
"publicKey": "A6EHv_POEL4dcN0Y50vAmWfk1jCbpQ1fHdyGZBJVMbg",
|
|
24
|
+
"firstEpoch": 1
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"kid": 2,
|
|
28
|
+
"publicKey": "mm4Ae7fTOTrOb2d_zK9mlXVV2YgeBBvBncabOQRh1Z4",
|
|
29
|
+
"firstEpoch": 17
|
|
30
|
+
}
|
|
31
|
+
],
|
|
32
|
+
"minEpoch": 17
|
|
33
|
+
},
|
|
34
|
+
"endpoints": [
|
|
35
|
+
{
|
|
36
|
+
"sourceAddress": "fe80::7%eth0",
|
|
37
|
+
"groupAddress": "ff3e::10:20:30",
|
|
38
|
+
"port": 5004,
|
|
39
|
+
"bandwidth": 100000000,
|
|
40
|
+
"tracks": [
|
|
41
|
+
{
|
|
42
|
+
"name": "video",
|
|
43
|
+
"packetId": 1
|
|
44
|
+
}
|
|
45
|
+
],
|
|
46
|
+
"auth": {
|
|
47
|
+
"streamId": 2864434397,
|
|
48
|
+
"maxAuthDelayMs": 200,
|
|
49
|
+
"manifestTimerMs": 20,
|
|
50
|
+
"manifestTrack": "video/manifest"
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
]
|
|
54
|
+
}
|
|
55
|
+
}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 1,
|
|
3
|
+
"streamingFormat": "mmtp",
|
|
4
|
+
"streamingFormatVersion": "draft-ramadan-moq-mmt-01",
|
|
5
|
+
"tracks": [
|
|
6
|
+
{
|
|
7
|
+
"name": "video",
|
|
8
|
+
"packaging": "mmtp",
|
|
9
|
+
"codec": "avc1.640028",
|
|
10
|
+
"mmtpMode": "mfu",
|
|
11
|
+
"timescale": 90000,
|
|
12
|
+
"groupDurationMs": 1000
|
|
13
|
+
}
|
|
14
|
+
],
|
|
15
|
+
"multicast": {
|
|
16
|
+
"auth": {
|
|
17
|
+
"scheme": "bc-provenance",
|
|
18
|
+
"version": 2,
|
|
19
|
+
"sig": "ed25519",
|
|
20
|
+
"keys": [
|
|
21
|
+
{
|
|
22
|
+
"kid": 1,
|
|
23
|
+
"publicKey": "A6EHv_POEL4dcN0Y50vAmWfk1jCbpQ1fHdyGZBJVMbg",
|
|
24
|
+
"firstEpoch": 1
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"kid": 2,
|
|
28
|
+
"publicKey": "mm4Ae7fTOTrOb2d_zK9mlXVV2YgeBBvBncabOQRh1Z4",
|
|
29
|
+
"firstEpoch": 17
|
|
30
|
+
}
|
|
31
|
+
],
|
|
32
|
+
"minEpoch": 17
|
|
33
|
+
},
|
|
34
|
+
"endpoints": [
|
|
35
|
+
{
|
|
36
|
+
"sourceAddress": "198.51.100.7",
|
|
37
|
+
"groupAddress": "232.10.20.30",
|
|
38
|
+
"port": 5004,
|
|
39
|
+
"bandwidth": 100000000,
|
|
40
|
+
"tracks": [
|
|
41
|
+
{
|
|
42
|
+
"name": "video",
|
|
43
|
+
"packetId": 1
|
|
44
|
+
}
|
|
45
|
+
],
|
|
46
|
+
"auth": {
|
|
47
|
+
"streamId": 2864434397,
|
|
48
|
+
"maxAuthDelayMs": "300",
|
|
49
|
+
"manifestTimerMs": 20,
|
|
50
|
+
"manifestTrack": "video/manifest"
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
]
|
|
54
|
+
}
|
|
55
|
+
}
|