使用 CLI 创建筛选器

Media Services logo v3


警告

Azure 媒体服务将于 2024 年 6 月 30 日停用。 有关详细信息,请参阅 AMS 停用指南

将内容传送到客户(直播流活动或点播视频)时,客户端所需的灵活性可能比默认资产的清单文件中描述的灵活性更高。 使用 Azure 媒体服务可为内容定义帐户筛选器和资产筛选器。

有关此功能及其使用方案的详细说明,请参阅动态清单筛选器

本主题说明如何为点播视频资产配置筛选器,并使用适用于媒体服务 v3 的 CLI 创建帐户筛选器资产筛选器

注意

请确保查看 presentationTimeRange

必备条件

定义筛选器

以下示例定义添加到最终清单的曲目择条件。 此筛选器包括属于 EC-3 的任何音频曲目和比特率在 0-1000000 范围内的任何视频曲目。

提示

如果计划在 REST 中定义筛选器,请注意需要包括“Properties”包装器 JSON 对象。

[
    {
        "trackSelections": [
            {
                "property": "Type",
                "value": "Audio",
                "operation": "Equal"
            },
            {
                "property": "FourCC",
                "value": "EC-3",
                "operation": "NotEqual"
            }
        ]
    },
    {
        "trackSelections": [
            {
                "property": "Type",
                "value": "Video",
                "operation": "Equal"
            },
            {
                "property": "Bitrate",
                "value": "0-1000000",
                "operation": "Equal"
            }
        ]
    }
]

创建帐户筛选器

以下 az ams account-filter 命令创建帐户筛选器,其中包含之前定义的筛选器曲目选项。

该命令允许你传递一个可选 --tracks 参数,该参数包含表示曲目选择的 JSON。 使用 @{file} 从文件加载 JSON,请指定整个文件路径:

az ams account-filter create -a amsAccount -g resourceGroup -n filterName --tracks @tracks.json

此外,请参阅筛选器的 JSON 示例

创建资产筛选器

以下 az ams asset-filter 命令创建资产筛选器,其中包含之前定义的筛选器曲目选项。

az ams asset-filter create -a amsAccount -g resourceGroup -n filterName --asset-name assetName --tracks @tracks.json

此外,请参阅筛选器的 JSON 示例

将筛选器与流定位器关联

在创建流式处理定位符时筛选 HLS 或 DASH 清单

媒体服务允许你创建一个流式处理定位符,该定位符是通过传入到流式处理定位符实体上筛选器属性中的筛选器集合来预先筛选的。 这样,就可以在流式处理定位符上预筛选所有清单。 此流式处理定位符不再提供原始清单,从筛选的流式处理定位符请求 DASH 或 HLS 的 URL 的客户端只能访问筛选后的响应。 如果只想发布一部分资产,并且通过操作 HLS 或 DASH 清单 URL 的查询字符串,防止用户访问资产的完整原始清单,则这会很有用。 如果要应用筛选器,但不希望在 URL 中公开筛选器名称以供客户自行操作,建议使用此功能。

可以在流定位符中指定资产或帐户筛选器列表。 动态打包器将此筛选器列表与客户端在 URL 中指定的筛选器一起应用。 此组合将生成动态清单,该清单基于你在流定位符上指定的“URL + 筛选器”中的筛选器。

更新筛选器

筛选器和流式处理定位符可以实时更新,但请记住,在前端 Web 服务器上进行的任何更新可能需要长达 10 秒的时间,如果更新已发布并已在生产中使用的同一流式处理定位符,则可能会出现问题。

不建议更新与实际发布的流定位符关联的筛选器的定义。 流式处理服务器可能有内部缓存,这可能会导致返回过时的缓存数据。

如果需要更改筛选器定义,请考虑创建一个新的筛选器,并将其添加到流定位符 URL,或发布直接引用已更新筛选器的唯一新流定位符

使用 CLI 创建已筛选的流式处理定位符

以下 CLI 代码显示了如何创建流定位器并指定 filters。 这是一个可选属性,它采用以空格分隔的资产筛选器名称和/或帐户筛选器名称的列表。

az ams streaming-locator create -a amsAccount -g resourceGroup -n streamingLocatorName \
                                --asset-name assetName \
                                --streaming-policy-name policyName \
                                --filters filterName1 filterName2

使用筛选器的流

定义筛选器后,客户端可以在流式 URL 中使用它们。 筛选器可应用到自适应比特率流式处理协议:Apple HTTP Live Streaming (HLS)、MPEG-DASH 和平滑流式处理。

下表显示了一些包含筛选器的 URL 示例:

协议 示例
HLS https://amsv3account-cne21.streaming.media.chinacloudapi.cn/fecebb23-46f6-490d-8b70-203e86b0df58/bigbuckbunny.ism/manifest(format=m3u8-aapl,filter=myAccountFilter)
MPEG DASH https://amsv3account-cne21.streaming.media.chinacloudapi.cn/fecebb23-46f6-490d-8b70-203e86b0df58/bigbuckbunny.ism/manifest(format=mpd-time-csf,filter=myAssetFilter)
平滑流 https://amsv3account-cne21.streaming.media.chinacloudapi.cn/fecebb23-46f6-490d-8b70-203e86b0df58/bigbuckbunny.ism/manifest(filter=myAssetFilter)

另请参阅

Azure CLI