声网本地服务端录制 SDK for Linux (简称本地服务端录制 SDK) 在声网 Native SDK 或/和声网 Web SDK 的基础上提供通信和直播录制功能。点击录制产品概述了解关键特性。
本地服务端录制 SDK 与以下 SDK 兼容:
SDK | 描述 |
---|---|
声网 Native SDK | 本地服务端录制 SDK 与全平台声网 Native SDK (1.7.0 或更高版本) 兼容,如果频道内有任何人使用了 1.6 版本的声网 Native SDK, 则整个频道无法录制。 |
声网 Web SDK | 本地服务端录制 SDK 与声网 Web SDK (1.12.0 或更高版本兼容)。 |
从 2.2.0 版本起,下载包里有两个包,Java 和 C++ 。
leaveChannel
, 录制会停止, 但默认录制文件最后会包含一段空白片段,这个时间段由调用 joinChannel
时在 config
里设定的 idleLimitSec
字段值决定。详见 录制 API。该版本于 2022 年 09 月 29 日发布。
该本版新增 setLocalAccessPoint
方法,用于在成功部署声网混合云、私有化平台后,指定 Local Access Point 来设置本地代理。你可以联系 sales@agora.io 了解和部署声网混合云或声网私有化平台。
该版本于 2021 年 05 月 18 日发布。新增特性、改进与修复问题列表详见下文。
AES-GCM 加密模式
在安全要求高的场景中,为保证数据的保密性、完整性和真实性,提高数据加密的计算效率,该版本在 decryptionMode 中新增以下加密模式:
"aes-128-gcm"
: 128 位 AES 加密,GCM 模式。"aes-256-gcm"
: 256 位 AES 加密,GCM 模式。开启加密功能后,同一频道内的所有用户都必须使用相同的加密模式和密钥。
合流录制支持录制 MP3
为了满足用户多样化需求,在合流录制模式下录制音频时,生成的音频文件新增 MP3 格式,且支持只生成 MP3 格式文件。你可以通过命令行和调用 API 设置 cfgFilePath
参数来实现该功能,详见命令行录制 和 cfgFilePath 参数设置。
getAudioFrame
为 2
或 3
)。具体设置方式详见设置录制格式。onActiveSpeaker
和 onAudioVolumeIndication
灵敏度和准确性。mixedVideoAudio
方法,在单流和合流录制模式下生成 MP4 文件,提升用户体验。3.0.6 版本前 | 3.0.6 版本及以后 |
---|---|
录制生成 TS 文件,录制结束后通过转码脚本将 TS 文件转码为 MP4 文件。 | 录制同时生成 TS 文件和 MP4 文件。 |
MIXED_AV_CODEC_TYPE
新增如下枚举值:
AV_CODEC_INDIVIDUAL_TS_ONLY
: 单流录制模式下,仅生成 TS 格式的视频文件,和 AAC 格式的音频文件。AV_CODEC_INDIVIDUAL_TS_AND_MP4
: 单流录制模式下,同时生成 TS 和 MP4 格式的视频文件,AAC 格式的音频文件。AV_CODEC_MIXED_TS_ONLY
: 合流录制模式下音频和视频混合成一个文件,仅生成 TS 格式文件。AV_CODEC_MIXED_TS_AND_MP4
: 合流录制模式下音频和视频混合成一个文件,同时生成 MP4 和 TS 格式文件。
修复转码脚本不支持带有下划线的 UID 导致解析错误的问题。
该版本于 2021 年 01 月 13 日发布。新增特性、改进与修复问题列表详见下文。
VIDEO_FRAME_TYPE
中新增 VIDEO_JPG_FILE
,用于获取 JPG 文件格式的视频数据。
VIDEO_FORMAT_JPG_VIDEO_FILE_TYPE
时,获取的 JPG 格式的截图不带旋转信息的问题。leaveChannel
方法离开频道时崩溃的问题。该版本于 2020 年 11 月 25 日发布。新增特性与修复问题列表详见下文。
cfgFilePath
中新增 Chunk_Time_Span
参数,支持在直播场景的单流录制模式下设置录制文件切片的间隔时间。
该版本修复了以下问题:
onActiveSpeaker
无法收到相应回调。onAudioVolumeIndication
无法收到相应回调。setUserBackground
导致程序崩溃。audioProfile
设置输出音频为双声道不生效。该版本于 2020 年 9 月 17 日发布。该版本新增特性如下:
录制崩溃后录制文件可修复
在过去的版本中,由于录制崩溃,录制生成的 MP4 文件可能无法播放。针对该问题,自 3.0.3 版本起,声网录制 SDK 提供如下解决方案:
crash_restore.sh
脚本。当录制服务因多次崩溃而异常退出时,你可以运行该脚本将 TS 文件转封装为 MP4 文件,并修复内容缺失的 uid_UID_timestamp.txt
文件。详见 《录制崩溃后修复录制文件》。
该版本于 2020 年 7 月 15 日发布。该版本修复了以下问题:
uid_UID_timestamp.txt
偶现时间戳溢出。该版本于 2020 年 3 月 16 日发布。该版本修复了单流录制模式下,录制文件的文件名中时间戳异常的问题。
该版本于 2020 年 2 月 20 日发布。新增特性、改进与修复问题如下。
1. 添加水印
3.0.0 版本新增添加水印功能,支持在合流模式下对录制的视频添加图片、文字或时间戳水印,作为防伪、宣传等用途。
你可以在 setVideoMixingLayout
方法中设置水印,也可以调用 updateWatermarkConfigs
方法添加、更新或删除水印设置,详见水印。
2. 录制指定用户的音视频
从 3.0.0 版本起,支持选择录制指定用户的音频或视频。你可以在调用 joinChannel
方法加入频道时:
RecordingConfig
中的 autoSubscribe
设为 false
;subscribeVideoUids
和 subscribeAudioUids
参数指定要录制视频和音频的用户 UID此后,你可以调用 updateSuscribeVideoUids
和 updateSuscribeAudioUids
方法更新需要录制视频和音频的用户 UID。
3. 保留最后一帧
从 3.0.0 版本起,合流录制模式下,用户离开频道后,支持保留其视频的最后一帧。你可以在 setVideoMixingLayout
方法中设置 keepLastFrame
参数选择是否保留最后一帧。
4. 云代理服务
3.0.0 版本支持使用云代理服务,方便部署企业防火墙的用户正常使用声网的服务,详见使用云代理服务。
5. 新增回调
3.0.0 版本新增以下回调。具体说明和注意事项请点击各回调名查看。
onRejoinChannelSuccess
:录制端重新加入频道时触发onConnectionStateChanged
:网络连接状态改变时触发onRemoteVideoStats
:报告远端视频流统计信息onRemoteAudioStats
:报告远端音频流统计信息onRecordingStats
:报告录制统计信息onRemoteAudioStreamStateChanged
:远端用户音频流状态改变时触发onRemoteVideoStreamStateChanged
:远端用户视频流状态改变时触发RecordingConfig
中的 enableIntraRequest
参数关闭关键帧请求。关闭后,频道内的所有发流端均每 2 秒发送一次关键帧。单流模式下录制的视频无需转码,即可指定播放位置观看。cfgFilePath
参数指定配置文件,配置文件中填写你需要设置的选项即可,不是必须设置 "Recording_Dir"
的值。setVideoMixingLayout
方法中设置 alpha
参数导致录制服务崩溃的问题。onRemoteAudioStreamStateChanged
和 onRemoteVideoStreamStateChanged
流状态改变回调报告的信息不准确的问题。该版本于 2019 年 8 月 5 日发布。改进和修复问题详见下文。
setUserBackground
方法,支持设置指定 UID 用户的背景图片。当该用户在线且没有发送视频流时,会显示该背景图片。setLogLevel
方法,支持设置 log 过滤等级。设置后,SDK 只会生成等于和低于所设等级的 log。leaveChannel
方法离开频道崩溃的问题。该版本于 2019 年 4 月 1 日发布。新增特性与问题修复详见下文。
新增功能
为及时获取本地服务端录制 SDK 与服务器的连接状态,该版本新增如下回调,用于监控本地服务端录制 SDK 的网络连接丢失、中断状态。
onConnectionLost
:网络连接丢失回调。onConnectionInterrupted
:网络连接中断回调。为及时获取本地对远端音视频流的接收情况,该版本新增如下回调,通知本地服务端录制 SDK 成功接收远端音视频首帧。
onFirstRemoteAudioFrame
:已接收远端音频首帧回调。onFirstRemoteVideoDecoded
:已完成远端视频首帧解码回调。为监控本地服务端录制 SDK 接收音视频流的状态,该版本新增 onReceivingStreamStatusChanged
回调,提示本地服务端录制 SDK 接收音频流或视频流的状态发生了变化。
为监控频道内通话的实时状态,了解说话者的具体信息,该版本新增 onAudioVolumeIndication
获取频道内说话者的人数、 用户 ID 及音量等信息。
问题修复
mixedVideoAudio
时非法参数导致程序崩溃的问题。-f . -m 3
转码不成功的问题。该版本于 2019 年 1 月 15 日发布。新增特性与改进问题详见下文。
本地服务端录制 SDK 从 2.3.0 版本起,可支持费用独立计算,录制的用量和费用不与语音通话/语音直播 SDK、视频通话/视频直播 SDK混合在一起。具体可咨询商务。
新增功能
合流模式下音频录制支持双声道高音质:采样率 48 kHz,双声道,码率 192 Kbps。
裸数据不支持双声道。
audio profile
开放 0
和 1
两种设置,具体如下:
audio profile=0
,采样率 48 kHz,与原始音频流的单/双声道保持一致,码率根据发送端的码率自适应。audio profile=0
,采样率 48 kHz,单声道,码率 48 Kbpsaudio profile=1
,采样率 48 kHz,单声道,码率 128 Kbpsaudio profile=2
,采样率 48 kHz,双声道,码率 192 Kbps实时转码后的录像文件,和转码脚本转码后的录像文件支持 Android、iOS/macOS、Windows 平台下的 Chrome 和 Safari 浏览器的播放。各平台浏览器播放支持如下表所示:
平台 | Chrome | Safari |
---|---|---|
Android | Chrome 49+ | N/A |
iOS | ✘ | Safari 9+ |
macOS 10+ | Chrome 47+ | Safari 11+ |
Windows | Chrome 49+ | N/A |
仅适用于合流模式,且不支持裸数据和截图。
为提高本地服务端录制 SDK 自带的示例代码的易用性,增加两种预置的合流布局模版:
根据录制画面的数量自动调整每个画面的大小,每个画面大小一致,最多支持 17 个录制画面。例如:
指定一个 uid 在屏幕左侧显示大流画面,其他用户的小流画面在右侧垂直排列,最多两列,一列 8 个画面,最多支持共 17 个录制画面。例如:
在合流模式下录制时,支持对每个用户分别截图,并且截图和录制订阅同一路流。
增加 onActiveSpeaker
回调,用于返回频道内说话的用户 UID。
说话者监测功能默认为关闭状态,通过设置 RecordingConfig
中的 audioIndicationInterval
参数开启。将该参数设置为正整数,SDK 会按照设置的时间间隔返回 onActiveSpeaker
回调。
改进
startService
之后,idle 才生效。该版本于 2018 年 10 月 18 日发布。修复问题列表详见下文。
修复问题
该版本于 2018 年 8 月 1 日发布。新增特性与修复问题列表详见下文。
改进
uid\YmdHMS.jpg
改成 uid\YmdHMS\ms.jpg
修复问题
主要修复了以下问题:
该版本于 2018 年 6 月 5 日发布。新增特性与修复问题列表详见下文。
改进
修复问题
主要修复了以下问题:
该版本于 2018 年 5 月 4 日发布。新增特性与修复问题列表详见下文。
下载包里有两个包,Java 和 C++ 。
修复问题
主要修复了以下问题:
该版本于 2018 年 3 月 7 日发布。新增特性与修复问题列表详见下文。
新增功能
功能 | 描述 |
选择录制模式 | 支持用户在进入频道时,选择自动或手动模块,方便灵活控制录制 |
自由控制录制开始和结束时间 | 新增接口解绑了进入频道和开始录制操作。如果选择的是自动录制模式,当频道内有人出现时才会启动录制。如果选择的是手动录制模式,则开发者有能力手动控制录制开始和结束的时间点 |
混音裸数据 | 混合语音裸数据 |
支持 Java 版 | 新增 Java 环境下的 API |
改进
改进 | 描述 |
优化转码脚本 | 支持设置转码帧率和分辨率,且支持合流模式和单流模式 |
修复问题
主要修复了以下问题:
该版本于 2017 年 11 月 21 日发布。新增特性与修复问题列表详见下文。
decodeAudio
和 decodeVideo
并新增 VideoJpgFrame
结构体。getAudioFrame
和 getVideoFrame
。captureInterval
用户设置截图的时间间隔。streamType
。isVideoOnly
。convert.log
文件,和音视频文件在同一个路径下。UID\_HHMMSSMS.txt
里新增了视频旋转信息。该版本于 2017 年 10 月 2 日发布。新增特性与修复问题列表详见下文。
新增功能
API joinChannel
里新增参数 mixedVideoAudio
和 cfgFilePath
。API getProperties
用于在录制开启时便能立即获取录制路径而无需加入频道。onError
和 onLeaveChannel
回调。该版本于 2017 年 8 月 21 日发布。新增特性与修复问题列表详见下文。
新增功能
recording\sys.log
便于用户查找问题原因该版本于 2017 年 7 月 25 日发布。新增特性与修复问题列表详见下文。
新增功能
UID\_HHMMSSMS.webm
修复问题
该版本于 2017 年 6 月 27 日发布。新增特性与修复问题列表详见下文。
修复问题
直播场景下: 修复了服务器端的一个崩溃。
该版本于 2017 年 6 月 15 日发布。本次发版为本地服务端录制 SDK 的第一次发版,主要包括以下功能: