Skip to content

Commit

Permalink
Update NMOS With MPEG TS.md (#2)
Browse files Browse the repository at this point in the history
Changes after feedback from todays meeting (30.10.24) in the NMOS MPEG TS BCP activity
  • Loading branch information
grukx authored Oct 30, 2024
1 parent 98831e6 commit 10ce48f
Show file tree
Hide file tree
Showing 10 changed files with 51 additions and 94 deletions.
55 changes: 8 additions & 47 deletions docs/NMOS With MPEG TS.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ _(c) AMWA 2024, CC Attribution-NoDerivatives 4.0 International (CC BY-ND 4.0)_

[MPEG Transport Stream][MPEG-TS] is a standard digital container format specified in ISO/IEC 13818-1, widely used for transmission and storage of audio, video, and data.

SMPTE [ST 2022-2][ST-2022-2] defines the Unidirectional Transport of Constant Bit Rate MPEG-2 Transport Streams on IP Networks.
SMPTE [ST 2022-2][ST-2022-2] defines the Unidirectional Transport of Constant Bit Rate MPEG-2 Transport Streams using RTP on IP Networks.

The [Video Services Forum][VSF] developed Technical Recommendations [TR-01][TR-01] and [TR-07][TR-07], which cover the encapsulation of JPEG 2000 and JPEG XS video respectively within MPEG TS over IP networks, compliant with ST 2022-2.

Expand Down Expand Up @@ -45,46 +45,27 @@ The Source is therefore unaffected by the use of MPEG TS or the encapsulated con
### Flows
The Flow resource **MUST** indicate `video/MP2T` in the `media_type` attribute, and `urn:x-nmos:format:mux` for the `format`.

This has been permitted since IS-04 v1.1.

For Nodes implementing IS-04 v1.3.x or higher, the following additional attributes defined in the [Flow Attributes register][Flow-Attributes] of the NMOS Parameter Registers are used for MPEG TS:
For Nodes implementing IS-04 v1.3 or higher, the following additional attributes defined in the [Flow Attributes register][Flow-Attributes] of the NMOS Parameter Registers are used for MPEG TS:

- [Bit Rate][Flow-Bit-Rate]
This attribute **MUST** be present in the flow resource definition.

- [Mux Video Media Type][Flow-Mux-Video-Media-Type]
The `mux_video_media_type` attribute **MUST** be included for streams encapsulating TR-01 JPEG 2000 or TR-07 JPEG XS. The `mux_video_media_type` **SHALL** use media types from the [IANA Media Types Registry][IANA-MIME-Types]: `video/jpeg2000` and `video/jxsv`.

An example Flow resource is provided in the [Examples](../examples/).

### Senders
For Nodes transmitting MPEG TS over RTP transport as defined by ST 2022-2, the Sender `transport` attribute **MUST** be `urn:x-nmos:transport:rtp`.

Sender resources provide no indication of media type or bit-rate since this is described by the associated Flow resource.

#### Sender SDP Usage
This section is **REQUIRED** for RTP transports with SDP.
For Nodes transmitting MPEG TS over RTP transport as defined by ST 2022-2, the Sender `transport` attribute **MUST** be `urn:x-nmos:transport:rtp` or one of its sub-classifications.

The SDP file published at the `manifest_href` end-point **MUST** comply with the IS-05 usage guidelines for the specific transport and [RFC 4566][RFC-4566]

Additionally, the SDP transport file needs to convey, so far as the defined format-specific parameters allow, the same information about the stream as conveyed by the Source, Flow and Sender attributes defined by this specification and IS-04, unless such information is conveyed through in-band parameter sets.

- The `bit_rate` attribute **MUST** be included to signal the max bit rate allocated to this sender.
- For streams encapsulating TR-01 JPEG 2000 or TR-07 JPEG XS, the `mux_video_media_type` attribute **MUST** be included as defined above.

The sender attributes described above **MUST** be present in the SDP for transports where SDP is present.

An example Sender resource is provided in the [Examples](../examples/).

## MPEG TS IS-04 Receivers

Nodes capable of receiving MPEG TS streams, including those carrying JPEG 2000 or JPEG XS content as per VSF TR-01 and TR-07, **MUST** have a Receiver resource in the IS-04 Node API, which lists `video/MP2T` in the `media_types` array within the `caps` object.

This has been permitted since IS-04 v1.1.
If the Receiver supports RTP transport, it **MUST** have the `transport` attribute set to `urn:x-nmos:transport:rtp` or one of its sub-classifications..

If the Receiver supports RTP transport, it **MUST** have the `transport` attribute set to `urn:x-nmos:transport:rtp`.

If the Receiver has limitations on or preferences regarding the MPEG TS streams or the encapsulated content that it supports, the Receiver resource **MUST** indicate constraints in accordance with the [BCP-004-01][] Receiver Capabilities specification.
If the Receiver has limitations on or preferences regarding the MPEG TS streams that it supports, the Receiver resource **MUST** indicate constraints in accordance with the [BCP-004-01][] Receiver Capabilities specification.

The Receiver **SHOULD** express its constraints as precisely as possible, to allow a Controller to determine with a high level of confidence the Receiver's compatibility with the available streams.

Expand All @@ -94,35 +75,21 @@ The `constraint_sets` parameter within the `caps` object can be used to describe

The following parameter constraints can be used to express limitations on MPEG TS streams:
- [Transport Bit Rate][Cap-Bit-Rate]
- [Mux Video Media Type][Cap-Mux-Video-Media-Type]

An example Receiver resource is provided in the [Examples](../examples/).

## MPEG TS IS-05 Senders and Receivers

Connection Management using IS-05 proceeds in exactly the same manner as for any other stream format carried over the RTP tranport type.

### Sender SDP Signalling
If an SDP file is published at the **/transportfile** end-point it **MUST** comply with the IS-05 usage guidelines for the RTP transport and [RFC 4566][RFC-4566]

The SDP file **MUST** comply with the same requirements described for the SDP file at the IS-04 Sender `manifest_href` as described in the [IS-04 Sender SDP Usage](#sender-sdp-usage) section.

If the Receiver is not capable of consuming the stream described by the SDP file, it **SHOULD** reject the request.

If it is unable to assess the stream compatibility, for example when the SDP file does not include some of the optional parameters, it **MAY** accept the request.

A `PATCH` request on the **/staged** endpoint of an IS-05 Receiver can contain an SDP file in the `transport_file` attribute.
Any SDP file published at the **/transportfile** end-point **MUST** comply with the IS-05 usage guidelines for the RTP transport and [RFC 4566][RFC-4566].

An example SDP file is provided in the [Examples](../examples/).

## Controllers

Controllers **MUST** use IS-04 to discover MPEG TS Senders and Receivers and IS-05 to manage connections between them.

Controllers **MUST** support IS-04 v1.3.x to implement all aspects of this specification.

Partial implementation can be achieved using IS-04 v1.2 and earlier.

Controllers **MUST** support the BCP-004-01 Receiver Capabilities mechanism and all the parameter constraints listed in this specification in order to evaluate the stream compatibility between MPEG TS Senders and Receivers.

Controllers **MUST** be capable of handling RTP transports as per the NMOS specifications indicated in the Sender and Receiver resources.
Expand All @@ -133,19 +100,13 @@ Controllers **MUST** be capable of handling RTP transports as per the NMOS speci
[TR-07]: https://vsf.tv/download/technical_recommendations/VSF_TR-07_2020-04-01.pdf "VSF TR-07 Transport of JPEG XS Video in MPEG-2 TS over RTP"
[VSF]: https://vsf.tv/ "Video Services Forum"
[RFC-2119]: https://datatracker.ietf.org/doc/html/rfc2119 "Key words for use in RFCs"
[RFC-3550]: https://datatracker.ietf.org/doc/html/rfc3550 "RTP: A Transport Protocol for Real-Time Applications"
[RFC-3555]: https://datatracker.ietf.org/doc/html/rfc3555 "MIME Type Registration of RTP Payload Types"
[IS-04]: https://specs.amwa.tv/is-04/ "AMWA IS-04 NMOS Discovery and Registration Specification"
[IS-05]: https://specs.amwa.tv/is-05/ "AMWA IS-05 NMOS Device Connection Management Specification"
[NMOS Parameter Registers]: https://specs.amwa.tv/nmos-parameter-registers/ "Common parameter values for AMWA NMOS Specifications"
[ST-2022-2]: https://ieeexplore.ieee.org/document/7291602 "SMPTE ST 2022-2: Unidirectional Transport of Constant Bit Rate MPEG-2 Transport Streams on IP Networks"
[RFC-4566]: https://datatracker.ietf.org/doc/html/rfc4566 "SDP: Session Description Protocol"
[NMOS-Glossary]: https://specs.amwa.tv/nmos/main/docs/Glossary.html "NMOS Glossary"
[Capabilities-Register]: https://specs.amwa.tv/nmos-parameter-registers/branches/main/capabilities/ "Capabilities Register"
[Flow-Attributes]: https://specs.amwa.tv/nmos-parameter-registers/branches/main/flow-attributes/ "Flow Attributes Register"
[Flow-Bit-Rate]: https://specs.amwa.tv/nmos-parameter-registers/branches/main/flow-attributes/#bit-rate "Flow Bit Rate"
[Flow-Mux-Video-Media-Type]: https://specs.amwa.tv/nmos-parameter-registers/branches/main/flow-attributes/#mux_video_media_type "Mux Video Media Type"
[Cap-Mux-Video-Media-Type]: https://specs.amwa.tv/nmos-parameter-registers/branches/main/capabilities/#mux_video_media_type "Mux Video Media Type"
[Cap-Bit-Rate]: https://specs.amwa.tv/nmos-parameter-registers/branches/main/capabilities/#transport-bit-rate "Transport Bit Rate"
[Cap-Stream-ID]: https://specs.amwa.tv/nmos-parameter-registers/branches/main/capabilities/#transport-stream-id "Transport Stream ID"
[IANA-MIME-Types]: https://www.iana.org/assignments/media-types "IANA Media Types"


8 changes: 4 additions & 4 deletions examples/README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
This directory is for examples

* [Flow resource example](flow_resource_jpeg_xs.json)
* [Sender resource example](sender_resource_jpeg_2k.json)
* [Receiver resource example](receiver_resource_jpeg_xs.json)
* [SDP resource example](mpeg_ts_j2k_rtp.sdp)
* [Flow resource example](flow_resource.json)
* [Sender resource example](sender_resource.json)
* [Receiver resource example](receiver_resource.json)
* [SDP resource example](mpeg_ts_rtp.sdp)
8 changes: 8 additions & 0 deletions examples/flow_resource.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"id": "144927fe-f0ce-449d-b261-3f011bd87352",
"label": "Example MPTS Flow",
"description": "An MPEG Transport Stream",
"format": "urn:x-nmos:format:mux",
"media_type": "video/MP2T",
"bit_rate": 20000
}
9 changes: 0 additions & 9 deletions examples/flow_resource_jpeg_xs.json

This file was deleted.

11 changes: 0 additions & 11 deletions examples/mpeg_ts_j2k_rtp.sdp

This file was deleted.

9 changes: 9 additions & 0 deletions examples/mpeg_ts_rtp.sdp
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
v=0
o=- 2890844526 2890844526 IN IP4 192.168.1.1
s=Example MPEG transport stream
i=This is an example SDP file for MPEG-TS over RTP
c=IN IP4 239.255.0.1/32
t=0 0
m=video 5004 RTP/AVP 33
a=source-filter: incl IN IP4 224.1.1.1 192.168.1.1
a=rtpmap:33 MP2T/90000
14 changes: 14 additions & 0 deletions examples/receiver_resource.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{
"id": "3526683d-7a7f-4a6a-9986-a86d1534a84f",
"label": "Example Receiver for MPEG TS",
"description": "A Receiver capable of consuming an MPEG TS over RTP.",
"media_types": ["video/MP2T"],
"transport": "urn:x-nmos:transport:rtp",
"caps": {
"constraint_sets": [
{
"bit_rate": "20000"
}
]
}
}
15 changes: 0 additions & 15 deletions examples/receiver_resource_jpeg_xs.json

This file was deleted.

8 changes: 8 additions & 0 deletions examples/sender_resource.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"id": "68d0f0a2-96f5-4b95-91d8-13743e5bdaba",
"label": "Example Sender for MPEG TS",
"description": "A Sender transmitting an MPEG TS over RTP.",
"flow_id": "144927fe-f0ce-449d-b261-3f011bd87352",
"transport": "urn:x-nmos:transport:rtp",
"manifest_href": "http://example.com/sdp/sender-1234.sdp"
}
8 changes: 0 additions & 8 deletions examples/sender_resource_jpeg_2k.json

This file was deleted.

0 comments on commit 10ce48f

Please sign in to comment.