

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 处理视频输入损耗
<a name="feature-input-loss"></a>

当频道的视频输入丢失时，您可以自定义 MediaLive 处理媒体的方式。

**Topics**
+ [如何 MediaLive 处理视频输入丢失](#feature-input-loss-overview)
+ [配置替换内容](#feature-input-loss-customize-replacement)
+ [自定义传送](#feature-input-loss-customize-delivery)

## 如何 MediaLive 处理视频输入丢失
<a name="feature-input-loss-overview"></a>

 MediaLive 当接收输入时，它可能会检测到视频源已丢失。这种丢失 MediaLive 导致开始遵循*输入丢失行为*处理。 MediaLive 开始在输出端对*替换内容*（填充帧）进行编码。这样处理可确保通道可以继续对视频内容进行编码。（的一个关键规则 MediaLive 是，正在运行的频道必须始终对内容进行编码。） 

通道遵循输入损耗处理，直到它恢复并恢复到正常编码。通道的恢复方式取决于是否实现自动输入失效转移：
+ 如果实现[自动输入失效转移](automatic-input-failover.md)，则输入损耗处理将继续，直到视频黑屏失效转移条件触发切换到另一个输入（或者直到输入恢复）。如果第二个输入失败，则输入损耗处理将重新启动并继续，直到您修复了两个输入的问题为止。
+ 如果未实现自动输入失效转移，则输入损耗处理将持续到输入恢复或解决输入问题为止。

这两个功能相辅相成，但在不同的时机起作用：
+ 一旦预期的帧未能到达，就会立即进行输入损耗处理。例如，如果输入的帧速率为 60 FPS，则如果某帧未在距离前一帧的 17 毫秒内到达，则会触发处理。（17 毫秒大约等于 1 秒除以 60。）
+ 自动输入失效转移的触发器更长且可配置。典型的触发器为 1000 毫秒。

**输入损耗对比输入探测故障**

只有在先前正常的输入变得不正常之后，才会进行输入损耗处理。

在此之前，输入也可能失败。当一个频道开始并 MediaLive 开始收录第一个输入时，它会*探测*输入——它会尝试检测输入和源。如果检测失败，则输入和通道会立即失败。您必须先解决问题，然后重新启动通道。问题可能是输入不存在（此问题主要出现于 RTMP 输入），或者输入超出了[当前通道规范](input-specification.md)，或者[输入设置错误](create-input.md)。

**默认行为损耗处理**

输入损耗处理的默认操作如下：
+ 对替换内容进行编码：对收到的最后一个有效帧进行重复和编码。重复 1000 毫秒。然后对黑屏进行编码 1000 毫秒。然后无限期地对空白画面进行编码。
+ 传送内容：默认处理方式是发出（传送）经过编码的替换内容。

**自定义输入损耗处理**
+ 您可以自定义替换内容的时间，也可以自定义画面的内容。
+ 在某些输出组类型中，您可以更改传送方式，使编码后的内容不被传送。

## 配置替换内容
<a name="feature-input-loss-customize-replacement"></a>

您可以自定义替换内容的持续时间，也可以自定义用于画面的图像或颜色。例如，您可以将画面更改为图像（例如*请稍候*）。

**注意**  
此部分假定您熟悉创建或编辑通道，如[从头开始创建通道](creating-channel-scratch.md)中所述。

1. 在 MediaLive控制台的**创建**频道页面上，选择**常规设置**。展开**全局配置**。如有必要，选择**启用全局配置**。

1. 在**输入损耗行为**中，选择**输入损耗行为**。此时将显示更多字段。这些字段控制替换内容，如下所示：
   + 在**重复帧(毫秒)**中指定的时间内对最后一个有效帧进行编码。零表示禁用（跳过重复帧并转到黑帧）。值 1,000,000 表示永远重复前面的操作。
   + 当**重复帧毫秒**到期时，在黑帧毫秒中指定的时间内对**黑帧**进行编码。零表示禁用（跳过黑帧并转到画面）。值 1,000,000 表示永远重复黑帧。
   + 当**黑帧(毫秒)**到期时，切换到发送指定的画面或颜色，按照**输入损耗图像类型**，然后**输入损耗图像颜色**或**输入损耗图像画面**中指定的内容操作。

1. 填写一个或多个字段以自定义行为。有关 MediaLive 控制台上某个字段的详细信息，请选择该字段旁边的 “**信息**” 链接。

## 自定义传送
<a name="feature-input-loss-customize-delivery"></a>

您可以更改替换内容的默认处理方式，这样 MediaLivediscards 它就不必交付编码后的输出。您可以更改以下类型的输出组的处理方式：
+ HLS
+ Microsoft Smooth
+ RTMP
+ UDP/TS

对于除之外的所有其他类型的输出组 MediaPackage，请 MediaLive 始终提供内容。对于 MediaPackage 输出组， MediaLive 始终[暂停传送](mediapackage-create-result.md)。

**注意**  
此部分假定您熟悉创建或编辑通道，如[从头开始创建通道](creating-channel-scratch.md)中所述。

1. 在 MediaLive控制台的**创建**频道页面上，在左侧导航栏中选择输出组。

1. 在该输出组的**设置**部分，找到该输出组的**输入损耗操作**字段。为该输出组中的所有输出（包括不包含视频的输出）选择所需的选项。请参阅这一步之后的表格。

下表列出了输出组的传送选项。通读每一行。


| 输出组的类型 | 字段 | 说明 | 
| --- | --- | --- | 
|  HLS Microsoft Smooth RTMP  | EMIT\$1OUTPUT | 传送替换内容。这是这些输出组的默认设置。 | 
|  HLS Microsoft Smooth RTMP  | PAUSE\$1OUTPUT | 仅对重复帧进行编码（如果[通道配置](#feature-input-loss-customize-replacement)为处理重复帧）。内容结束后，停止传送该输出组中的所有输出。请注意，这 MediaLive 会使底层 RTMP 连接保持打开状态。 | 
| UDPSRT | EMIT\$1PROGRAM | 对替换内容进行编码，然后传送该输出组的程序和所有表。这是 UDP 的默认设置。 | 
| UDPSRT |  DROP\$1TS  | 停止传送该输出组中的整个传输流。 | 
| UDPSRT | DROP\$1PROGRAM |  将该程序从传输流中删除。 MediaLive 用空数据包替换程序，以满足 TS 比特率要求。 传送该输出组的空数据包和所有表。  | 

**建议**

您应确保传送符合下游系统的期望。

例如，如果通道是标准通道（有两条冗余管道），则下游系统可以设置为切换到第二条管道的输出。在这种情况下，最好将输出设置为停止发出输出。

再举一个例子，该通道可能只有一条管道。此外，如果下游系统失去交付，则可能无法正常运行 MediaLive。因此，最好设置为发出输出。下游系统将保持稳定，你可以设置 MediaLive “请待命” 名单，以改善观看视频的人的体验。