本文介绍直播封装功能。
功能介绍
直播封装功能可以对直播流播放协议进行封装,同时支持时移功能(时移功能可以让直播观众在直播过程中回看直播内容。比如在进行赛事直播时,通过时移功能可以让观众像观看点播内容一样,回看赛事内容。),也支持对直播内容进行保存,将直播内容存储至OSS。
使用直播封装功能会产生费用,计费说明请参见直播封装计费。
功能配置
使用直播封装功能需要创建封装配置。
登录智能媒体服务控制台。
在左侧导航栏选择,创建频道组。

参数说明:
参数名
说明
频道组名称
自定义输入。
描述信息
自定义输入。
说明功能内涉及频道的信息和频道组装功能无关。
配置完成后,会自动分配一个源站域名。
点击频道组名称,进入频道列表页,创建频道。

参数说明:
参数名
说明
频道名称
自定义输入。
输入协议
源流协议,支持HLS或HLS_CMAF协议的源流。
切片时长
封装流中单个切片文件的时长。
建议设置该值为6,不建议设置过大或过小。设置越大,单个切片的内容越多,延迟越高。设置越小,单个切片内容越少,会间接增加请求次数导致资源开销增加。
切片个数
封装流播放时返回的m3u8文件中包含的切片文件个数。
建议设置该值为3。个数越多,播放器直播的时间轴越大,请求m3u8的流量和延迟也会增加。
点击频道名称,进入频道详情页,点击Endpoints页签,创建Endpoints。

参数说明:
参数名
说明
端点名称
自定义端点名称。
协议
封装后的播放协议,支持HLS、HLS_CMAF或DASH。
播放列表名称
播放清单文件名。比如填写index,则播放地址为:https://example.aliyundoc.com/index.m3u8。
授权码
设置之后,在播放封装流或使用CDN加速回源时需要增加请求头参数。参数名:Authorization,参数值:授权码。阿里云CDN设置回源请求头参数请参见修改出站请求头。
IP白名单
支持IPv4和IPv6地址,以及子网掩码。
IP黑名单
支持IPv4和IPv6地址,以及子网掩码。
时移天数
当设置>0时表示开启了时移功能,时移功能可以让直播观众在直播过程中回看直播内容。比如在进行赛事直播时,通过时移功能可以让观众像观看点播内容一样,回看赛事内容。使用方法请参见时移播放。
只有开启时移功能,才能对该节点使用直转点(搜集任务)功能,将时移内容存储至OSS中。若未开启时移功能,则无法对该节点使用直转点(搜集任务)功能。
切片时长
封装流中单个切片文件的时长。
音频分离
视频流和音频流是否分离。
切片个数
封装流中切片文件个数。
插入时间标签间隔
在m3u8中加入时间戳(标签为EXT-X-PROGRAM-DATE-TIME)的时间间隔。
流排序
可选:
原始排序:用于按传入源使用的相同顺序对输出流进行排序。
视频码率升序:对输出流进行排序,从最低比特率开始,到最高比特率结束。
视频码率降序:对输出流进行排序,从最高比特率开始,到最低比特率结束。
最小视频码率
输入最小比特率阈值(单位:比特/秒),视频轨道必须大于或者等于此阈值才能从此端点播放。这样可以确保轨道至少达到一定的比特率。
最大视频码率
输入最大比特率阈值(单位:比特/秒),视频轨道必须小于等于此阈值才能从此端点播放。这样可以确保轨道不会超过一定的比特率。
创建完成后,会生成封装流播放地址(列表中URL地址)。到此即完成直播封装功能配置。
功能使用
推流
在创建频道后,已为您生成输入地址和密钥。您可以进入频道详情页Input页签查看。

ingest1:主输入地址。
ingest2:备用输入地址。
点击Authentication可获取账号名称/密码。
实时打包频道提供主备摄取端点(Ingest URL),用于接收上游转码服务的HLS输出流。当一个摄取端点异常时,打包服务将使用另一个端点作为输入,以提升打包频道可用性。地址示例:
http://xxxxxx-1.packagepush-9eji12.ap-southeast-1.ice.aliyundoc.com/v1/dfjtest/1/test01/manifest上游转码工具可配置输出到该地址,请使用Basic Auth鉴权并使用PUT方法上传m3u8和ts文件,文件的请求URL必须以输入地址为前缀,如:
http://xxxxx-1.packagepush-9eji12.ap-southeast-1.ice.aliyundoc.com/v1/dfjtest/1/test01/manifest.m3u8
http://xthcfa-1.packagepush-9ejigb.ap-southeast-1.ice.aliyundoc.com/v1/dfjtest/1/test01/manifest-hd-1001.ts说明:
Basic Auth鉴权即请求Header增加Authorization:Basic BASE64_ENCODE(username:password)。
您必须按直播要求上传合乎规范的主m3u8,子m3u8和ts切片文件。输入HLS内容不支持加密。
如推送HLS流到主备推流地址,请确保主备流内容相同,且切片的时间戳对齐,否则主备切换时可能无法保证播放流畅。
您也可以使用媒体直播简介功能进行推流。
播放
使用创建Endpoint时生成的封装流播放地址进行播放。
如果是用于调试,您可将内部IP加入端点的IP白名单进行测试,或者为播放器设置请求头参数:参数名:Authorization,参数值:Endpoint配置的授权码。
如需提供给外部用户播放,建议使用CDN配置回源加速(需要设置请求头参数,参数名:Authorization,参数值:Endpoint配置的授权码)。使用方法请联系您的CDN厂商。

时移播放
开启时移功能后,封装服务将对直播切片文件进行保存,观众端可发起时移播放请求进行直播内容回看。
时移播放请求示例:
https://xxxxx-1.packagepush-9eji12.ap-southeast-1.ice.aliyundoc.com/v1/group01/ch01/endpoint01/index.m3u8?start=2024-11-06T00:00:00Z&vodend=2024-11-06T02:00:00Z在该示例中,我们实现了回看2024-11-06T00:00:00Z至2024-11-06T02:00:00Z的直播内容。可以发现,时移请求相较于m3u8的播放地址多了两个参数。start为时移播放开始时间,vodend为时移播放结束时间,请求URL为Endpoint的播放URL。
时移播放支持的参数如下:
参数名 | 说明 |
start | 时移播放开始时间,UTC时间格式,时区为GMT。示例值:2024-11-06T00:00:00Z |
end | 时移播放结束时间,UTC时间格式,时区为GMT。示例值:2024-11-06T02:00:00Z |
vodend | 以点播形式指定时移播放结束时间,UTC时间格式,时区为GMT。示例值:2024-11-06T02:00:00Z 说明 设置vodend表示使用点播模式回看,点播模式会一次性返回所有切片,可以使用播放器进度条控制播放前进回退。 |
offset | 按偏移时间播放时移内容,单位秒。以偏移量请求会根据当前时间向过去时间偏移作为时移播放点。 播放示例: |
使用说明:
start和offset必须指定其中一个。如果指定了
end,时移播放会以直播模式播放直到指定的end时间点。如果指定了
vodend,时移播放会以点播模式播放直到指定的vodend时间点(点播模式会一次性返回所有切片,可以使用播放器进度条控制播放前进回退)。如果同时指定
end与vodend,时移播放将以vodend为准。
创建搜集任务
直播封装功能创建搜集任务可以将直播内容存储至OSS。在直播结束后,可以通过OSS中的内容对直播内容进行回放。
前提条件:
您需要开通OSS服务并且拥有至少一个Bucket用于存储这些文件。开通OSS服务以及创建Bucket可参见开通OSS服务和创建存储空间,Bucket必须与频道组同地域。
重要文件存储在OSS中,会产生存储费用,在OSS中计费请参见OSS存储费用。
频道Endpoint需要开启时移功能(设置的时移天数>0)。
进入频道详情页,点击搜集任务页签,创建搜集任务。

参数说明:
参数名 | 说明 |
Endpoint | 选择频道内的Endpoint,Endpoint需要开启时移功能(设置的时移天数>0)。 |
搜集时间 | 时间段内如果开启了时移功能,直播内容将会存储至OSS。 |
存储路径 | 选择OSSBucket,搜集结果(m3u8格式文件)将会存储至对应位置。 |
搜集任务创建完成后,会自动开始搜集任务。若要查看搜集文件,请进入OSS中查看。
如果您为一个Endpoint创建了多个搜集任务,每个搜集任务将会生成单独的文件。
常见问题
直播封装应该怎样去推流
您可以使用支持HLS输出的第三方直播转码工具进行推流,直播封装服务接收上游转码服务的HLS输出。您也可以使用媒体直播简介功能推流。
如何播放封装流
您可以使用Endpoints生成的播流地址进行播放。
如果是用于调试,您可将内部IP加入端点的IP白名单进行测试,或者为播放器设置请求头参数:参数名:Authorization,参数值:Endpoint配置的授权码。
如需提供给外部用户播放,建议使用CDN配置回源加速(需要设置请求头参数:参数名:Authorization,参数值:Endpoint配置的授权码)。使用方法请联系您的CDN厂商。
搜集任务创建完成,但没有搜集到文件
请检查频道Endpoint是否开启了时移功能(配置的时移天数是否>0)。
直转点创建搜集任务和直播封装创建搜集任务有什么区别
两者都可以实现直转点功能。直转点功能展示的是所有的搜集任务,直播封装搜集任务展示的是当前封装配置内的搜集任务。