Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
ISO/IEC 29341-18-1 定义了 MediaRenderer 设备,这是 UPnP AV 架构中的渲染端点。MediaRenderer 是任何能够播放来自 MediaServer 或其他媒体源传递的媒体内容的设备——包括智能电视、联网音频系统、数字媒体适配器(流媒体棒)、游戏机以及运行在 PC 或移动设备上的软件媒体播放器。MediaRenderer 设备规范定义了符合要求的渲染设备必须实现的强制性和可选服务、设备描述要求以及控制点用于发现和控制渲染器的交互模式。
MediaRenderer 设备由多个 UPnP 服务组成,共同构成渲染能力。两个服务是强制性的:ConnectionManager(在第17-11部分中定义)和 RenderingControl(在第17-13部分中定义)。AVTransport 服务(第17-12部分)是可选的,但对于支持用户可控播放(播放、暂停、停止、定位)的设备强烈推荐。此外,MediaRenderer 可以包括 29341 系列其他部分中定义的服务,如 ScheduledRecording(适用于可以录制内容的设备)、Quality of Service(适用于带宽管理的网络)或设备特定的自定义服务。
MediaRenderer 规范强制要求严格的协议一致性。设备必须使用标准 UPnP 设备类型 URN 通告其身份——urn:schemas-upnp-org:device:MediaRenderer:1(v2 设备为 :2)。设备描述文档必须包含正确的服务列表,包括每个已实现服务的服务控制协议定义和事件订阅 URL。设备描述中的 friendlyName 元素对于面向用户的应用程序尤为重要——它应该是人类可读的字符串,清晰标识控制点 UI 中的设备。
协议一致性扩展到通过 ConnectionManager 的 GetProtocolInfo 动作通告的 protocolInfo 字符串。MediaRenderer 必须填充 Sink 字段,包含其可以接收和渲染的协议和格式。格式标识符应尽可能具体——而不是通告通用的 “video/*” 支持,设计良好的渲染器列出其支持的确切 MIME 类型和编解码器,如 “video/mpeg”(MPEG-2)、”video/mp4″(H.264/AVC)、”video/x-ms-wmv”(VC-1)和 “audio/vnd.dlna.adts”(ADTS 格式的 AAC)。这种精确性使控制点能够做出智能的流传输决策,无需反复试验。
| 服务 | 强制性/可选 | 服务类型 URN | 关键功能 |
|---|---|---|---|
| ConnectionManager | 强制性 | urn:schemas-upnp-org:service:ConnectionManager:1 | 协议协商,连接生命周期 |
| RenderingControl | 强制性 | urn:schemas-upnp-org:service:RenderingControl:1 | 音量、静音、画面/音频调整 |
| AVTransport | 可选(推荐) | urn:schemas-upnp-org:service:AVTransport:1 | 播放控制,传输状态机 |
| Device Protection | 可选 | urn:schemas-upnp-org:service:DeviceProtection:1 | 安全认证,访问控制 |
| Quality of Service | 可选 | urn:schemas-upnp-org:service:QoSDevice:1 | 流传输带宽管理 |
MediaRenderer 渲染管道的内部架构不是标准指定的——完全是实现定义的。然而,服务接口施加的要求强烈影响管道设计。渲染管道必须支持动态参数变化(通过 RenderingControl)而不中断媒体流——改变音量或亮度不得引起可闻爆音或可见帧丢失。这意味着参数更新路径与媒体处理路径解耦,通常使用在帧边界由渲染硬件采样的异步参数寄存器实现。
媒体缓冲策略对用户体验至关重要。渲染器必须缓冲足够的数据以吸收网络抖动,而不引入过度的启动延迟。典型实现缓冲 2-5 秒内容后开始播放,然后在稳态播放期间保持 5-10 秒的缓冲区水位。当缓冲区降至低水位以下时,渲染器应暂停播放(如果支持则转换到 PAUSED_PLAYBACK 或 BUFFERING 状态),并在缓冲区重新填充后恢复。缓冲区阈值应可配置,以适应不同的网络条件和媒体类型。
错误弹性是另一个重要的设计考量。通过不可靠介质(Wi-Fi、电力线)进行的网络流传输可能遇到丢包、抖动和临时断连。渲染管道应对短时故障实现隐藏策略:音频隐藏(重复最后一个好音频帧)、视频隐藏(冻结最后一个好帧或显示前一帧)和中断后的音视频重新同步。这些技术在瞬态网络问题期间保持可观看的呈现,无需用户手动干预。
媒体格式转换处理需要特别关注。当控制点通过 AVTransport 的 SetAVTransportURI 设置新 URI 时,渲染器必须处理从当前格式到可能不同的新格式的转换。这涉及刷新解码器管道、重新初始化新编解码器、重建渲染上下文(显示模式、音频路由)以及同步新流——所有操作都不能产生可闻或可见伪影。转换应在 500 毫秒内完成,以避免可感知的延迟。