直播转点播实践

简介: ## 场景简介 直播转点播(直转点)是将直播流同步录制为点播视频,并支持媒资管理、媒体处理(转码及内容审核/智能首图等AI处理)、内容制作(云剪辑)、CDN分发加速等一系列操作,可配置工作流自动处理,也可通过API/SDK灵活触发。 ## 准备工作 1. 开通视频点播服务,[开通指引](https://help.aliyun.com/document_detail/51512.h

场景简介

直播转点播(直转点)是将直播流同步录制为点播视频,并支持媒资管理、媒体处理(转码及内容审核/智能首图等AI处理)、内容制作(云剪辑)、CDN分发加速等一系列操作,可配置工作流自动处理,也可通过API/SDK灵活触发。

准备工作

  1. 开通视频点播服务,开通指引
  2. 开通视频直播服务,开通指引
  3. 添加直转点录制配置,帮助文档
  4. 上述准备工作完成后,即可开始进行接入(注:下述文档中的仅存储、仅合成模板组需联系点播进行激活)

名词解释

直转点,结合视频点播的转码、云剪辑、AI处理、事件通知等功能,可适应多种业务场景。
名词解释:

  • 录制转码模板组:直播录制到点播同时,点播会使用该模板组对视频进行转码操作
  • 合成转码模板组:多个录制视频进行自动合成时,点播会使用该模板组对视频进行合成+转码操作
  • 仅存储:对直播内容进行录制后,不进行任何后续操作
  • 仅合成:对直播内容进行合成后,不进行任何后续操作
  • 直播录制周期:直播录制到点播的周期,如一场直播3个小时,如果需要在直播过程中就可提供已录制内容的点播服务,则可设置录制周期为1小时,即直播1小时过后,点播可提供前一小时内容的点播观看服务

实践1:直播录制 + 自动转码 + CDN加速

直播录制后快速将录制文件进行转码和CDN加速,供用户进行点播播放,适用于大部分直播场景(不需要对内容进行二次加工)

流程如下:

undefined

  1. 客户进行直播推流
  2. 推流达到一个录制周期,则会自动将录制文件添加到点播系统
  3. 点播记录完成后,会生成点播系统的唯一视频ID,并将该视频信息回调给用户,即AddLiveRecordVideoComplete通知,并附带直播相关的DomainName、AppName、StreamName信息。客户收到回调后,需记录该视频信息,并以该VideoId作为索引进行后续视频状态更新
  4. 点播系统检测用户录制配置中的录制转码组ID(该转码组中含有具体码流转码任务),进行对应的转码操作
  5. 截图完成、单个码流转码完成、全部码流转码完成时,会给用户进行回调(回调顺序无时序),用户需根据回调信息中的VideoId进行视频状态更新。转码完成后,即可进行后续的播放操作(转码回调信息中含播放地址或后续通过GetPlayInfo接口根据VideoId进行播放地址获取,该播放地址已经经过CDN加速)

实践2:直播录制 + 仅存储到点播 + 手动发起转码 + CDN加速

部分用户希望将直播录制的视频仅先存储到点播,且先不进行后续的转码操作,则可在新建录制配置时,将录制转码组选择为仅存储模板组(注:仅存储模板组需联系点播进行激活)
如果后续希望对视频进行转码,则可进行手动触发转码操作
同时,可配合点播云剪辑功能进行使用,效果更佳

适用场景:
直播完成后,需要对内容进行二次加工,如体育赛事、游戏直播剪辑等,后续由用户主动发起转码和CDN加速全流程(转码完成后点播会自动对输出文件进行CDN加速)

流程如下:

undefined

  1. 客户进行直播推流
  2. 推流达到一个录制周期,则会自动将录制文件添加到点播系统
  3. 点播记录完成后,会生成点播系统的唯一视频ID,并将该视频信息回调给用户,即AddLiveRecordVideoComplete通知,并附带直播相关的DomainName、AppName、StreamName信息。客户收到回调后,需记录该视频信息,并以该VideoId作为索引进行后续视频状态更新
  4. 点播系统检测用户录制配置中的录制转码组ID(此时为仅存储模板组),则点播系统不进行后续转码操作
  5. 用户对该视频手动触发转码操作(调用转码任务API),在此之前可进行云剪辑等操作
  6. 截图完成、单个码流转码完成、全部码流转码完成时,会给用户进行回调(回调顺序无时序),用户需根据回调信息中的VideoId进行视频状态更新。转码完成后,即可进行后续的播放操作(转码回调信息中含播放地址或后续通过GetPlayInfo接口根据VideoId进行播放地址获取,该播放地址已经经过CDN加速)

实践3:直播录制 + 多周期视频自动合并

部分用户希望将自己录制周期生成的多个文件(如录制周期为20分钟,一次直播1个小时,则会生成三个视频)进行视频合成,再将合成后的视频进行处理,点播提供了自动合成的功能
可在新建直播录制配置时,将自动合成开关打开,并且配置进行合成时所使用的合成转码模板组(也可配置为仅合成,后续由用户触发转码,与前两节所述区别相同)
点播会在用户断流超过指定时间(可由直播进行配置断流超时时间)后,进行本次直播的视频自动合成并根据转码配置进行后续操作

合成 + 自动转码

适用场景:
一场直播完成后,需要对所有录制周期内的分段进行自动合并,同时发起转码等全流程。如体育赛事、教育多节授课合并等

流程如下:

undefined

  1. 客户进行直播推流
  2. 推流达到一个录制周期,则会自动将录制文件添加到点播系统
  3. 点播记录完成后,会生成点播系统的唯一视频ID,并将该视频信息回调给用户,即AddLiveRecordVideoComplete通知,并附带直播相关的DomainName、AppName、StreamName信息。客户收到回调后,需记录该视频信息,并以该VideoId作为索引进行后续视频状态更新
  4. 客户断流超时或主动触发断流
  5. 点播收到直播发送的本次直播结束消息
  6. 点播系统检测用户录制配置中的合成配置,判断是否需要发起自动合成。如果需要,则按照录制配置中的合成转码组进行合成和转码
  7. 视频开始合成,点播会生成一个合成后视频的唯一视频ID,并将该视频信息回调给用户,即LiveRecordVideoComposeStart通知,并附带直播相关的DomainName、AppName、StreamName信息。客户收到回调后,需记录该视频信息,并以该VideoId作为索引进行后续视频状态更新
  8. 视频源文件合成完成后,点播会将该状态回调给用户,即FileUploadComplete通知
  9. 截图完成、单个码流转码完成、全部码流转码完成时,会给用户进行回调(回调顺序无时序),用户需根据回调信息中的VideoId进行视频状态更新。转码完成后,即可进行后续的播放操作(转码回调信息中含播放地址或后续通过GetPlayInfo接口根据VideoId进行播放地址获取,该播放地址已经经过CDN加速)

合成 + 手动发起转码

可在新建直播录制配置时,将自动合成开关打开,并且配置进行合成时所使用的合成转码模板组(本情况配置成仅合成,后续由用户触发转码)

适用场景:
一场直播完成后,需要对所有录制周期内的分段进行自动合并,合并后文件不做任何处理,由用户进行二次加工,如云剪辑等,后续再进行手动转码,如视频内嵌广告、体育赛事空挡部分内容剪切等

流程如下:

undefined

  1. 客户进行直播推流
  2. 推流达到一个录制周期,则会自动将录制文件添加到点播系统
  3. 点播记录完成后,会生成点播系统的唯一视频ID,并将该视频信息回调给用户,即AddLiveRecordVideoComplete通知,并附带直播相关的DomainName、AppName、StreamName信息。客户收到回调后,需记录该视频信息,并以该VideoId作为索引进行后续视频状态更新
  4. 客户断流超时或主动触发断流
  5. 点播收到直播发送的本次直播结束消息
  6. 点播系统检测用户录制配置中的合成配置,判断是否需要发起自动合成。如果需要,则按照录制配置中的合成转码组进行合成和转码,由于本场景配置的仅合成,则点播系统不会自动发起转码
  7. 视频开始合成,点播会生成一个合成后视频的唯一视频ID,并将该视频信息回调给用户,即LiveRecordVideoComposeStart通知,并附带直播相关的DomainName、AppName、StreamName信息。客户收到回调后,需记录该视频信息,并以该VideoId作为索引进行后续视频状态更新
  8. 视频源文件合成完成后,点播会将该状态回调给用户,即FileUploadComplete通知。此时,代表本次录制合成的源文件已经处于正常就绪状态,用户可对该视频进行后续的转码触发等操作
  9. 用户对该视频手动触发转码操作(调用转码任务API),在此之前可进行云剪辑等操作
  10. 截图完成、单个码流转码完成、全部码流转码完成时,会给用户进行回调(回调顺序无时序),用户需根据回调信息中的VideoId进行视频状态更新。转码完成后,即可进行后续的播放操作(转码回调信息中含播放地址或后续通过GetPlayInfo接口根据VideoId进行播放地址获取,该播放地址已经经过CDN加速)
目录
相关文章
|
1月前
|
存储 人工智能 开发工具
OSS 向量 Bucket 最佳实践:快速构建多模态图片语义检索
本文介绍基于 OSS 向量 Bucket 和阿里云大模型服务平台百炼的多模态 Embedding 模型,搭建海量图片的智能语义检索系统,实现基于自然语言描述的文搜图能力的最佳实践,适用于电商商品搜索、智能相册、媒体资产管理、AI 语义检索、图片知识库等场景。
176 5
|
12月前
|
人工智能 IDE API
10行代码,实现你的专属阿里云OpenAPI MCP Server
本文介绍如何用10行Python代码创建专属阿里云OpenAPI MCP Server。针对传统MCP Server工具固化、开发复杂等问题,提出借助alibaba-cloud-ops-mcp-server实现灵活拓展的方案。通过配置服务与API名称,运行简短代码即可生成支持SSE连接的MCP Server。用户无需深入了解阿里云OpenAPI细节,大幅降低开发门槛。未来将探索通用工具设计,实现固定工具调用任意API,进一步提升灵活性与效率。
|
9月前
|
人工智能 安全 调度
线上观看人次近 2 万,龙蜥社区走进中兴通讯 MeetUp 圆满结束
近 50 位技术专家共同探讨了 AI 在系统领域的应用和挑战,为 AI 时代国产操作系统的核心竞争力塑造贡献力量。
|
JSON Java fastjson
微服务——SpringBoot使用归纳——Spring Boot返回Json数据及数据封装——Spring Boot 默认对Json的处理
本文介绍了在Spring Boot中返回Json数据的方法及数据封装技巧。通过使用`@RestController`注解,可以轻松实现接口返回Json格式的数据,默认使用的Json解析框架是Jackson。文章详细讲解了如何处理不同数据类型(如类对象、List、Map)的Json转换,并提供了自定义配置以应对null值问题。此外,还对比了Jackson与阿里巴巴FastJson的特点,以及如何在项目中引入和配置FastJson,解决null值转换和中文乱码等问题。
1697 0
|
运维 监控 前端开发
Zabbix告警分析新革命:DeepSeek四大创新场景助力智能运维
面对日益复杂的IT环境,高效分析监控数据并快速响应成为运维的关键挑战。本文深入探讨了DeepSeek与Zabbix结合的创新应用,包括一键式智能告警分析、Zabbix文档知识库助手及钉钉告警增强功能。通过部署指南和实用脚本,展示了如何提升故障排查效率,为运维工程师提供高效解决方案。
1278 5
|
人工智能 计算机视觉
YOLOv11改进策略【损失函数篇】| NWD损失函数,提高小目标检测精度
YOLOv11改进策略【损失函数篇】| NWD损失函数,提高小目标检测精度
1692 9
|
物联网 C# 智能硬件
智能家居新篇章:WPF与物联网的智慧碰撞——通过MQTT协议连接与控制智能设备,打造现代科技生活的完美体验
【8月更文挑战第31天】物联网(IoT)技术的发展使智能家居设备成为现代家庭的一部分。通过物联网,家用电器和传感器可以互联互通,实现远程控制和状态监测等功能。本文将探讨如何在Windows Presentation Foundation(WPF)应用中集成物联网技术,通过具体示例代码展示其实现过程。文章首先介绍了MQTT协议及其在智能家居中的应用,并详细描述了使用Wi-Fi连接方式的原因。随后,通过安装Paho MQTT客户端库并创建MQTT客户端实例,演示了如何编写一个简单的WPF应用程序来控制智能灯泡。
795 0
|
边缘计算 负载均衡 网络协议
B站千万级长连接实时消息系统的架构设计与实践
本文将介绍B站基于golang实现的千万级长连接实时消息系统的架构设计与实践,包括长连接服务的框架设计,以及针对稳定性与高吞吐做的相关优化。
556 9
|
Python
module 'numpy' has no attribute 'int'.
module 'numpy' has no attribute 'int'.
807 0
|
存储 人工智能 运维
阿里云存储受邀参加北京站「源创会」,解析智能存储基于大模型的产品能力提升
8 月 26 日,以 “AI 大模型与底层技术探索” 为主题的源创会北京站在北京中关村创业大街圆满举办。会上,阿里云智能高级技术专家马俊凯发表了《智能存储基于大模型的产品能力提升》主题演讲,详解了大语言模型对于智能存储的影响。
1072 0