Agora 云端录制,可为 Agora 实时音视频提供录制服务。同 Agora 本地服务端录制相比,Agora 云端录制无需部署 Linux 服务器,减轻了研发和运维的压力,更轻量便捷。点击云端录制产品概述了解关键特性。
Agora 云端录制与以下 Agora SDK 兼容:
SDK | 描述 |
---|---|
Agora Native SDK | 云端录制与全平台 Agora Native SDK 1.7.0 或更高版本兼容。 |
Agora Web SDK | 云端录制与 Agora Web SDK 1.12.0 或更高版本兼容。 |
本次发布的改进如下:
页面录制移动端网页模式
页面录制支持移动端网页渲染模式。API 变更如下:
mobile
字段,将 mobile
设置为 true
后,录制服务使用移动端网页模式录制当前页面。extensionServiceConfig
中 videoWidth
和 videoHeight
字段的取值范围变更为 [240, 1920]。高可用录制文件合并脚本
合流录制模式下,Agora 提供 Transcoder 脚本,用于将原 M3U8 文件与启用高可用机制后生成的新 M3U8 文件合并为一个 MP4 文件。详见管理录制文件。
音频单流不转码录制
为了满足用户的多样化录制需求,该版本支持在单流录制且仅录制音频的场景下,通过设置 streamMode
字段开始单流音频不转码录制。详见单流音频不转码录制。
延时混音
针对语音聊天场景,该版本支持在单流音频不转码录制场景下,通过设置 appsCollection
和 transcodeOptions
参数开启延时混音功能。开启后,录制服务会在录制结束后 24 小时内将指定频道内所有 UID 的录制文件合并且转码生成一个 MP3/M4A/AAC 文件,并将录制文件上传至你指定的第三方云存储(不包括七牛云)。
单流录制生成合并的音视频文件
调用 start
方法时,将 recordingConfig
参数的 streamMode
字段设置为 standard
(标准模式),录制结束后你会得到 M3U8 音频索引文件、视频索引文件和合并的音视频索引文件。如果在 Web 端使用 VP8 编码,则得到一个合并的 MPD 音视频索引文件。
你可以直接播放该音视频索引文件,无需使用音视频格式转换脚本处理。Agora 推荐使用该模式。
支持第三方云存储对录制文件加密和打标签
该版本新增 extensionParams
字段,用于支持第三方云存储服务对已上传的录制文件加密和打标签。该功能适用于 Amazon S3 和阿里云 OSS。
新增阿里云平台(vendor
为 2
)的如下区域:
19
:AP_Southeast_620
:CN_Heyuan21
:CN_Guangzhou 22
:CN_Chengdu详见阿里云参考文档。
该版本修复了以下问题:
开始合流录制时待录制的用户未发流的场景下,当用户开始发流,并中途停止发流或退出频道后,无法显示自定义的背景图或背景色。
支持 AES-GCM2 加密模式
为进一步提升实时音视频传输过程的安全性,该版本进行如下优化:
recordingConfig
的 decryptionMode
中新增 AES_128_GCM2
和 AES_256_GCM2
加密模式。新的 GCM 加密模式使用了安全性更高的密钥派生函数,支持设置密钥和盐。recordingConfig
中新增 salt
字段,用于为 AES_128_GCM2
和 AES_256_GCM2
加密模式设置盐。页面录制并推流到 CDN
页面录制模式下,你可以在录制的过程中,将页面的内容和音频转化为一路音视频流,并推送到 CDN。详见实现页面录制并推流到 CDN。
第三方云存储平台
截图周期
使用云端录制的视频截图功能,截图周期(captureInterval
)取值范围从 [5,3600] 变更为 [1,3600]。
输出视频分辨率
提高了页面录制输出视频的分辨率。将页面录制生成的视频分辨率上限从 1280 x 720 提高至 1920 × 1080,即 extensionServiceConfig
中页面录制的 videoWidth
和 videoHeight
字段的取值范围变更为 [480, 1920]。
预估订阅人数峰值
为了支持更大的预估订阅人数峰值,该版本新增 recordingConfig
中的 subscribeUidGroup
字段的以下枚举值:
4
:17 到 32 个 UID5
:32 到 49 个 UID你需要在合并单流录制生成的文件时确保使用如下服务器版本:
页面加载超时检测
为了保证页面录制的有效性和完整性,该版本支持页面加载超时检测功能。详见页面录制超时检测。
暂停页面录制
start
和 update
方法新增 onhold
参数,用于在页面录制开始或进行时暂停录制。
录制同时截图
支持在一个录制进程中同时进行录制和截图,且仅收取录制费用。详见视频截图。
web_recorder_stopped
回调新增错误码及错误信息,用于提示页面录制异常退出原因,用户可以根据该信息采取相应措施。update
方法新增 webRecordingConfig
字段,用于在页面录制过程中更新相关参数。本次发布的新增特性和 API 变更如下:
视频截图回调
该版本增加了 recorder_snapshot_file
回调,用于截图成功的通知,且返回截图文件名称。
Amazon S3 云存储区域新增
新增 Amazon S3 使用区域如下:
20
: AP_NORTHEAST_321
: EU_NORTH_122
: ME_SOUTH_123
: US_GOV_EAST_1start
方法中新增 maxVideoDuration
字段,用于设置页面录制生成的 MP4 切片文件的最大时长。
当页面状态为 404
或 5XX
错误时,页面录制服务自动退出,避免继续录制错误页面。
该版本修复了页面录制偶现的录制文件无声问题。
该版本于 2021 年 6 月 10 日发布。
限定访问区域
该版本在 acquire
方法中新增 region
参数,用于限定云端录制服务访问的区域。一旦指定了访问区域,云端录制服务将不会访问指定区域以外的服务器。支持的区域如下:
第三方云存储支持微软云
第三方云存储平台新增微软云(Microsoft Azure)。
优化了页面录制的编码设置,同等画质下码率降低。
修复了 Chrome V8 漏洞引发的安全问题。
acquire
方法新增 region
参数。web_recorder_started
回调中新增 recorderStartTime
字段。web_recorder_reload
回调。该版本于 2021 年 4 月 29 日发布。
新增特性
为了满足用户多样化需求,合流录制模式新增支持输出 MP4 格式的录制文件。在调用 start
方法时,将 avFileType
参数设置为 ["hls","mp4"]
,即可在录制过程中实时获得 MP4 文件。
在安全要求高的场景中,为保证数据的保密性、完整性和真实性,提高数据加密的计算效率,该版本在 decryptionMode
参数中新增以下加密模式:
开启加密功能后,同一频道内的所有用户都必须使用相同的加密模式和密钥。
改进
页面录制过程中,录制服务将自动检测并修复偶现的录制文件无声问题。修复后,待录制页面会刷新;如有必要,你的 Web 应用需要保证刷新前后的状态一致。
API 变更
该版本于 2021 年 3 月 31 日发布。
新增特性
在合流录制模式下,你可以为视频画布以及单个用户画面设置背景图,并在录制过程中更新背景图。详见设置背景色或背景图。
改进
添加了金山云存储的异常重试逻辑,在上传录制文件失败时,录制服务会进行重试。
修复问题
videoFps
设置过高的情况下偶现录制失败。API 变更
start
方法中的 transcodingConfig
参数新增 backgroundImage
、defaultUserBackgroundImage
以及 backgroundConfig
字段。updateLayout
方法中的 clientRequest
参数新增 backgroundImage
、defaultUserBackgroundImage
以及 backgroundConfig
字段。web_recorder_stopped
回调中新增 fileList
字段。本次发版提高了页面录制中针对视频源分辨率的限制,将待录制页面中任一视频源的分辨率上限从 1280 x 720 提高至 1920 × 1080。
本次发布的新增特性和 API 变更如下:
新增特性
在单流录制模式下,你可以开启延时转码。开启后,录制服务会在录制结束后 24 小时内将录制文件转码生成 MP4 文件,并将 MP4 文件上传至你指定的第三方云存储。
API 变更
acquire
方法的 scene
参数新增枚举值 2
,用于设置延时转码场景。start
方法中的 clientRequest
新增 appsCollection
参数。serviceScene
字段,表示当前运行的录制场景或录制阶段。本次发布的新增特性和 API 变更如下:
新增特性
新增页面录制模式。在该模式下,录制服务会将指定网页的页面内容和音频混合录制为一个音视频文件。
API 变更
mode
参数新增支持 web
(页面录制模式)。acquire
方法新增 scene
参数,用于设置云端录制资源使用场景。start
方法中的 extensionServiceConfig
新增 "web_recorder_service"
服务。该版本进行了性能优化及服务稳定性优化,并修复了如下问题:
本次发布的新增特性和 API 变更如下:
新增特性
在合流模式下,支持将录制文件上传至阿里视频点播服务(VoD)。
API 变更
start
方法中新增了 extensionServiceConfig
参数,用于指定阿里视频点播服务的配置。vod_started
回调和 vod_triggered
回调,提供阿里视频点播服务上传模块的状态。本次发布的新增特性和 API 变更如下:
新增特性
提供更为灵活的 UID 订阅,支持设置音频和视频的订阅白名单或黑名单,以及在录制过程中更新订阅名单。详见设置订阅名单。
该版本增加了 session_failover
回调,在启用高可用机制后触发,返回启用高可用机制后的新录制 UID。
API 变更
start
方法中新增了 unSubscribeVideoUids
和 unSubscribeAudioUids
参数,用于指定订阅黑名单。update
方法,用于在录制过程中更新订阅名单。session_failover
回调。本次发布新增了对金山云存储的支持。
本次发布新增了截图功能,详见视频截图。
本次发布提高了云端录制服务的可用性。当出现服务器断网、进程被杀时,云端录制会自动切换到新的服务器,在短时间内恢复录制服务。详情见云端录制服务器断网、进程被杀的处理。
API 变更
acquire
方法中新增了 resourceExpiredHour
参数,用于设置云端录制 RESTful API 的调用时效。
RESTful API 回调通知中新增事件 session_exit
,提供云端录制服务的退出状态。
调用 start
方法后,你可以通过 query
请求立刻获得录制文件名,而不再需要等待 15 秒。
本次发布新增了对腾讯云存储的支持。
本次发布的新增特性、改进及修复问题如下:
新增特性
RESTful API 新增单流录制模式,支持分开录制每个 UID 的音频流和视频流。使用方法详见单流录制。同时,Agora 提供了音视频合并脚本,用于合并单流录制模式下生成的音频和视频文件。使用方法详见音视频文件合并。
RESTful API 新增 subscribeAudioUids
和 subscribeVideoUids
参数,支持录制指定 UID 的音视频流。
RESTful API 新增 fileNamePrefix
参数,支持指定录制文件在第三方云存储的存储位置。
RESTful API 回调通知中新增事件 recorder_audio_stream_state_changed
和 recorder_video_stream_state_changed
,提供音频流和视频流状态变化的时间,和该路流对应的 UID。
Agora 提供了音视频格式转换脚本,用于 TS、MP3、MP4 等文件格式之间的转换。使用方法详见音视频格式转换。
通过 RESTful API 回调或解析 M3U8 文件,你可以获取录制开始时的时间戳,从而将录制的音视频和其他数据流文件(白板、课件、课堂聊天记录等)同步回放。详情见同步回放。
改进
在出现错误时,你会在 HTTP 响应包体内收到相应的错误信息,而不只是错误码。错误码详情见云端录制 RESTful API。
问题修复
如果因为第三方云存储的 bucket
及 key
参数值错误导致上传失败,云端录制服务将会直接报错,而不再将切片文件上传至 Agora 云备份。
本次发布的新增特性、改进及修复问题如下:
新增特性
RESTful API 新增自定义的合流布局。使用方法详见自定义合流布局。
你可以在开始录制时将 mixedVideoLayout
设为 3,并在 layoutConfig
中设置每个用户的画面大小和位置。你也可以在录制过程中调用 updateLayout
方法随时更新合流布局。
RESTful API 新增 backgroundColor
参数,支持自定义合流的画布背景色。无论使用何种合流布局,都可以通过该参数设置画布的背景色。
为方便开发者获得精准的录制开始时间,RESTful API 提供录制开始第一片切片的 Unix 时间戳 sliceStartTime
,可以通过 query
方法查询获得。同时在 RESTful API 的回调通知中新增事件 recorder_slice_start
,提供第一片录制切片开始的时间和上一次录制失败的时间。
改进
RESTful API 优化了对 resourceId
和 cname
以及 uid
是否对应的检查。
修复问题
修复了默认的合流布局中存在的一些小问题。
本次发布主要新增了对 RESTful API 的支持,无需集成 SDK,直接通过网络请求来控制云端录制。
你可以参考下面的文档使用 RESTful API:
本次发布主要包括以下功能: