AV媒体格式和编解码器

适用于:内置应用、启动服务、HTML5应用

视频

容器/编解码器扩展名宽高比分辨率(最大)
4K型号
分辨率(最大)
2K型号
比特率(最大)帧率
MP4 AVC.mp416:93840×21601920×108030 Mbps30, 60 fps
MP4 AVC/HEVC.mp416:93840×21601920×108030 Mbps30, 60 fps
MPEG TS AVC/MPEG2.m2ts16:93840×21601920×108030 Mbps30, 60 fps

※ BRAVIA Signage Free, BRAVIA Signage(付费版):时长(最大)10分钟/文件

注意: BZ40P / BZ35P / BZ30P

以下播放功能在HTML5应用中不受支持:

・同时播放多个视频

・4K竖屏视频的旋转

音频流媒体

容器音频MIME type 
HTTP(S)MP4AAC-LC / HE-AACaudio/aac
HTTP(S)MP3MP3audio/mp3

图像

容器/编解码器扩展名宽高比分辨率(最大)
4K型号
分辨率(最大)
2K型号
JPEG.jpg, .jpeg16:93840×2160*1920×1080
BMP.bmp16:91920×10801920×1080
PNG.png16:91920×10801920×1080
GIF.gif16:91920×10801920×1080*

* TML5应用:对于4K型号的JPEG,最大分辨率3840×2160是使用高质量图像功能(object标签扩展功能)时的分辨率。使用标签时的最大分辨率为1920×1080。

音频文件

容器/编解码器扩展名比特率(最大)采样率声道(最大)
MP3.mp3320 kbps44.1 kHz, 48 kHz2 channels
AAC.m4a320 kbps44.1 kHz, 48 kHz2 channels

* BRAVIA Signage Free、BRAVIA Signage(付费版):时长(最大)10分钟/文件

编码方法(编解码器规格)

容器/编解码器支持备注
MPEG4 part10*1
(AVC/H.264)
BP@L3, MP@L4, HP@L43D in top-and-bottom, side-by-side
MPEG4 part10 (4K)*BP@L4.2, MP@L4.2, HP@L4.23D is not supported
HEVC (4K)*MP@L5.1, M10@L5.13D is not supported
AAC-LC32k, 44.1k, 48k / 384kbps(max) / up to 5.1ch 
HE-AAC32k, 44.1k, 48k / (ISO/IEC 14496-3 compliant / profile level3) / up to 2ch 

* HTML5应用: <video> 标签支持最大3840×2160@60p的帧率和75Mbps的比特率。多播对象标签支持最大1920×1080@30p的帧率和10Mbps的比特率。
播对象标签支持最大1920×1080@30p的帧率和10Mbps的比特率。

HTML5应用开发备注

1.关于媒体元素 <video>和<audio>

BRAVIA商用显示器支持HTML5中定义的<video>和<audio>元素。

HTML
<video width="1920" height="1080">
  <source src="https://example.com/video.mp4" type="video/mp4"/>
</video>

注意:

通过在<video>元素或 <source>元素上指定type属性来指示媒体格式。type属性的值为MIME类型。


媒体元素 关于”playbackRate”属性

  • WebAppRuntime v1.3.14及更高版本支持。
  • 播放速率范围为0.1~2.0。

<video> 标签支持最大3840×2160@60p的帧率和75Mbps的比特率。多播对象标签支持最大1920×1080@30p的帧率和10Mbps的比特率。

2.关于多播视频对象标签

BRAVIA商用显示器可在兼容HTML5的环境中使用RTP和Raw-UDP多播视频流。使用<object>元素进行视频播放,支持以下媒体格式。

支持的格式

  • 多播对象标签支持最大1920×1080@30p、10Mbps。
  • 为了实现快速流切换和流畅的多播传输,采用仅IP配置,缩短了关键帧间隔。
容器视频音频备注
MPEG TSAVC/HEVC/MPEG2AAC-LC/HE-AAC/MP1L2Multicast object element supports up to 1920×1080@30p framerate and 10Mbps bitrate.

注意:

  • <object>元素同时只能使用一个。
  • <audio>和<video>元素:不能在同一窗口内同时使用。

请注意,频繁创建和删除这些元素可能会导致内部状态变更和资源管理问题。


show()方法

用于更改和播放流的方法,可以切换到指定URL的多播流并进行播放。
显示器采用灵活设计,可以接收show()方法的多种格式参数。

JavaScript
const object = document.getElementById('mcast');

// 简单播放开始
object.show('udp://239.0.0.64:5004');

// 切换到另一个流
object.show('rtp://239.1.1.100:8000');

jsonParam 选项规格

jsonParam选项可以以JSON格式处理以下设置项。显示器在WebAppRuntime v1.2.65.8及更高版本中支持。

JavaScript
object.show(url, jsonParam)
         ↑        ↑
       必需      可选JSON字符串
参数说明默认值
prebuffer_ms开始播放所需的缓冲时间(毫秒)20ms
rebuffer_ms重新缓冲后恢复播放所需的缓冲时间(毫秒)50ms
hardware_av_sync启用硬件音视频同步FALSE
source指定IGMPv3源地址
allow_render_to_main允许渲染到主帧
drm_key_id启用Pro:Idiom M DRM(指定”proidiom_standard”时)
blocking_mode使用DRM内容时的设置FALSE
network_interface使用的网络接口

多播对象的附加方法

  • setWideMode(DOMString mode) 控制视频宽高比显示
  • setTextTrack(int index) 启用并选择DVB字幕
  • getTextTrackList() 获取可用的DVB字幕列表
JavaScript
// 1. 快速切换(默认设置)
object.show('udp://239.1.1.10:5004', 0);

// 2. 固定设置(对象格式)
object.show('udp://239.1.1.11:5004', {
  prebuffer_ms: 2000,
  rebuffer_ms: 5000,
  hardware_av_sync: true
});

// 3. 动态设置(JSON字符串格式)
const config = JSON.stringify({
  prebuffer_ms: networkQuality * 1000,
  rebuffer_ms: networkQuality * 2000
});
object.show('udp://239.1.1.12:5004', config);
HTML
<object id="mcast" type="application/x-multicast-video" width="960" height="540"></object>

嵌入多播视频流限制为每页一个流。要在应用中嵌入多播视频窗口,请下载示例参考。以下提供实现示例。

示例 HTML

HTML
<object id="mcast" type="application/x-multicast-video" width="960" height="540"></object>

示例 JavaScript

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();
}