Multicast Video

Estimated reading time: 3 minutes

BRAVIA Professional Display supports RTP and Raw-UDP multicast video streaming on HTML5 platform with the <object> element. The supported media formats are shown in below.

Container Video Audio  
MPEG TS AVC/HEVC/MPEG2[1] AAC-LC/HE-AAC/MP1L2 [1] Multicast object element supports up to 1920x1080@30p framerate and 10Mbps bitrate.

In order for quick stream change and smooth streaming, video streams need to have frequent I-pictures with no B-picture.

Only one <object> element is available at a time. The object cannot be used with the <audio> element or the <video> element at the same time in the same window. Quick creation and deletion of those elements (<object>, <video> and <audio>) may cause problems due to internal state change and resource management.

The multicast protocol and address is represented in the following format.

multicast-uri = scheme "://" host [":" port]
scheme = "rtp" / "udp"

Methods

  • void show(DOMString url, DOMString jsonParam)

    show() method changes and plays the stream using a passed url.

      object.show('udp://239.0.0.64:5004');
    

    jsonaParam option can handle the following options in JSON format[1].

    param Description
    prebuffer_ms The default duration (ms) that must be buffered for playback to start. Default is 20ms.
    rebuffer_ms The default duration (ms) that must be buffered for playback to resume after a rebuffer. Default is 50ms.
      // set no options
      object.show('udp://239.0.0.64:5004', 0);
      // set options (prebuffer_ms:2000ms, rebuffer_ms:5000ms)
      object.show('udp://239.0.0.64:5004', {prebuffer_ms:2000, rebuffer_ms:4000});
    

    [1] Supported version: WebAppRuntime v1.2.65.8 or later.

  • setWideMode(DOMString mode)

    setWideMode() has the following parameters:

    • DOMString mode

      • '16:9' is used to fill a 16:9 rectangle with video.
      • 'normal' is used to show a video as-is.

Events

  • onstatechange
  • onshow

Example

Please download a sample application that shows how to embed a Multicast Video Window to an application.

At most one multicast video stream can be embedded in a web page. The HTML and JavaScript snippets below show how to use it.

  • HTML
    <object id="mcast" type="application/x-multicast-video" width="960" height="540"/>
    
  • JavaScript
    // return true on success, or false
    function startMulticastPlayback() {
      var object = document.getElementById('mcast');
    
      if (object.open() != 0) {
        return false;
      }
    
      object.onshow = function(result) {
        if (result === 0) {
          console.log('multicast object is opened');
        }
      };
    
      object.onstatechange = function(state) {
        switch (state) {
        case object.STATE_CLOSE:
        case object.STATE_OPEN:
        case object.STATE_PREPARE_TO_PLAY:
        case object.STATE_SRC_CHANGING:
        case object.STATE_WAIT_FOR_DATA:
        case object.STATE_PLAYING:
        case object.STATE_CLOSING:
        default:
          console.log(state);
        }
      };
    
      return object.show('udp://239.0.0.64:5004') === 0;
    }
    
    // change streams
    function changeStream(url) {
      var object = document.getElementById('mcast');
      object.show(url);
    
      // if need to configure buffer size, use below API.
      //   var jsonText = '{"prebuffer_ms":2000,"rebuffer_ms":5000}';
      //   var paramJson = JSON.parse(jsonText);
      //   object.show(url, paramJson);
    }
    
    // change streams with params
    function changeStreamWithParams(url, paramJson) {
      var object = document.getElementById('mcast');
      object.show(url, paramJson);
    }
    
    // stop streams
    function stopMulticastPlayback() {
      var object = document.getElementById('mcast');
      object.close();
    }
    
Last modified: 7 May 2021