实时音视频-北京火山引擎

实时音视频-北京火山引擎

专用API
【更新时间: 2024.06.27】 亿级 DAU 产品验证打磨的音视频最佳实践,提供全球范围内高质量、低延时的实时音视频通信能力,帮助开发者快速构建语音通话、视频通话、互动直播、转推直播等丰富的场景功能。
0.007元/分钟起 去服务商官网采购>
浏览次数
57
采购人数
0
试用次数
0
! SLA: N/A
! 响应: N/A
! 适用于个人&企业
收藏
×
完成
取消
×
书签名称
确定
<
产品介绍
>

什么是北京火山引擎的实时音视频?

火山引擎实时音视频(Volcengine Real Time Communication,veRTC)提供全球范围内高可靠、高并发、低延时的实时音视频通信能力,实现多种类型的实时交流和互动。通过在应用中接入 veRTC SDK,并调用 veRTC 提供的 API,可以快速构建:音视频聊天、在线教育、直播连麦、视频会议、游戏语音、云游戏、云端渲染等丰富场景功能,覆盖互娱、教育、游戏、会议等各种行业需求。

什么是北京火山引擎的实时音视频接口?

由服务使用方的应用程序发起,以Restful风格为主、通过公网HTTP协议调用北京火山引擎的实时音视频 ,从而实现程序的自动化交互,提高服务效率。

北京火山引擎的实时音视频有哪些核心功能?

基础功能

  1. 语音通话:支持 1v1 语音聊天和多人语音群聊,48kHz 全频带采样,先进 3A 处理算法,还原高音质。
  2. 视频通话:支持 1v1 视频聊天和多人视频群聊,VR 最高支持 8K 高清画质,采用行业领先的编解码算法策略
  3. 互动直播:单房间支持最多 1000 名主播,10 万名观众,首帧时长中位数 <300ms

 

进阶功能

  1. 连麦互动:支持主播与观众连麦、主播与主播连麦,上下麦切换体验平滑流畅。
  2. 合流转推:将多人 RTC 流进行云端合流转码,支持合流、自定义布局,并推流到指定直播 CDN。
  3. 伴音伴奏:将本地背景音、伴奏等同步发送给远端用户。
  4. 氛围音:支持播放短小的氛围音和音效文件,如笑声、鼓掌、欢呼、尖叫等氛围音效果。
  5. 耳返:支持耳返监听功能,支持调节耳返的音量,耳返延时低至 50ms。
  6. AI 降噪:通过 AI 算法有效抑制常见平稳噪声和非平稳噪声,为用户提供超纯净音质体验。
  7. 推送多路流:支持同时发送高清大流和低清小流,接收端根据网络自动订阅。
  8. 超分:支持将低分辨率视频超分成高分辨率视频,提高视频清晰度和画质。
  9. 屏幕共享:将电脑桌面、窗口、指定区域分享给其他人,支持与摄像头画面同时显示。
  10. 自采集自渲染:支持自定义的视频源和渲染器,可以更灵活地处理视频。
  11. 云端录制:通过 OpenAPI 发起录制任务请求,veRTC 进行音视频录制并上传至客户指定的存储平台

 

扩展功能

  1. 美颜特效:深度融合火山引擎 CV 功能,支持基础美颜、高级美颜、滤镜、贴纸等。
  2. 空间音频:一种能够呈现声源的空间方位的音频技术,提高用户音频体验的沉浸感。
  3. 范围语音:一种音频效果,开启此功能后,声音的衰减系数随距离声源的距离变大而变大。
  4. 美声音效:设置变声、混响、语音变调功能。
  5. 曲库管理:获取歌曲列表、搜索歌曲、获取热歌榜单等。
  6. 背景分割:支持通过 AI 算法将人物与背景分割。
  7. 添加视频水印:为实时音视频通信的视频画面添加自定义水印。
  8. ASR 语音识别:采用业内领先的端到端算法模型,准确地将语音内容转写成文字。
  9. 发送和接收媒体补充增强信息(SEI):SEI 信息跟随音视频帧发送,实现 SEI 内容与音视频内容精准同步。
  10. 内容审核:支持音视频敏感内容审核功能,确保内容安全。
  11. AI 应用:一站式的 AI 接入服务,支持表情识别、手势识别、注意力识别、中英文开口时长等 AI 功能。

北京火山引擎的实时音视频的核心优势是什么?

1. 音频 3A 处理

业界领先的 3A 算法。实现 48kHz 高音质全双工的回声消除。自动噪声抑制、自动增益使用超低计算量机器学习算法,更低的功耗实现更好的效果。

2. 机型主动适配

适配 40000+ 款不同的机型,根据设备的性能打分、覆盖率等进行差异化的视频采集/编码策略,实现 RTC 硬编硬解的机型适配(按实际通话时长计算)比例超过 90%。

3. 最佳画质

采用 H.265 编码器,效率较 H.264 显著提升。另外支持 Simulcast、SVC、ROI、自动码率等先进编码策略和超分、视频降噪、暗光增强等先进画质增强算法,可根据不同机型性能,下发不同档位的视频分辨率,移动端最高支持 1080P,PC 端最高支持 4K,VR 最高支持 8K。

4. 高可用

支持单元化部署,分钟级急速扩容。同城双机房,多线路冗余传输。符合 SLA 服务等级协议规定的指标,服务可用性不低于 99.9%。

5. 低延时

基于优质全球传输网络,全球端到端 400ms 延时达标率 ≥ 99.5%,服务端平均延时 < 50ms。

6. 弱网自适应

应用 FEC、ARQ、HARQ、自适应 Jitter Buffer、自适应码率下发等弱网策略,实现 50% 丢包无感知恢复,最高 80% 抗丢包能力。支持内容自适应编码,可基于线上视频清晰度的实时反馈来进行自动码率调整,减轻网络传输的压力。同时采用智能拥塞控制算法 VICC,能够根据不同的网络条件、业务偏好和码率特征进行自适应调整,以提升各种复杂弱网下的带宽利用率。

7. 性能动态适配

支持智能流控协议,可以综合考虑音视频通话中每个订阅者的个性化需求,在网络情况、终端性能发生变化的时候,自动调整音视频流的配置,提升用户体验。

8. 场景化策略

支持区分不同业务场景的参数配置下发,根据不同用户规模、机型、地区、网络模型采取不同的适配策略,满足多样化的高质量音视频体验需求。

9. 高效集成开发

提供灵活规范的 API,支持一键配置业务最佳实践,降低开发者集成复杂度,提高开发效率,平均 2 周内即可上线。可裁剪的 SDK 包设计,CPU 内存占用更低。适用于各种平台,可以快速构建多端应用。

10. 超大规模互动

行业首创单房间支持超千人同时开麦,突破传统实时音视频上麦人数限制,互动人数提升 20 倍以上,观众人数无上限。

11. 多样化产品融合

与火山引擎平台各核心产品深度融合,联动美颜特效、直播、点播、内容审核、语音识别、AI 应用等产品,为用户提供各种实时音视频场景下的全链路解决方案。

12. 安全合规

拥有完善的安全保护体系,可提供全链路音视频加密、用户业务数据隔离,且满足 ISO 等信息安全标准以及 GDPR、CCPA 等跨境安全合规要求。

在哪些场景会用到北京火山引擎的实时音视频?

1. 在线KTV

排麦独唱与实时互动结合是当前互娱社交领域的热门玩法,用户跟随音乐演唱歌曲并与其他用户进行音视频实时互动,满足了用户才艺展示的需求,为用户之间关系的构建提供了玩法通道;通过排麦独唱增加了房间内互动的乐趣,有助于提高用户活跃度及用户留存率。火山引擎提供实时音视频通话、正版音乐曲库、K歌音效处理等互动K歌一站式解决方案,帮助开发者无门槛搭建排麦独唱场景。

2. 一起看直播

一起看直播是社交娱乐的新场景,通过实时音视频互动体验线下与朋友一起看直播的氛围。房主创建一个线上实时互动的房间,在房间内播放直播视频,邀请用户一起边看直播边视频聊天。火山引擎基于实时音视频 SDK,提供抖音同款“一起看直播”解决方案。支持添加美颜特效、房间内文字聊天,增强好友看播趣味互动。

3. 游戏房

游戏房是泛娱乐社交领域的一种新玩法,例如情侣小游戏、聊天室小游戏等。主播或用户在传统的语音聊天室或语音通话的基础上选择不同的小游戏,例如五子棋、你画我猜、猜拳等。通过小游戏可以增加用户的停留时长,创造更多的话题。对于聊天室场景,主播可以邀请麦下的观众与其一起玩小游戏,与他们实时互通。

4. 音视频通话

音视频通话是社交中一种最常见的基础场景,在与陌生人之间通话时,更多地需要剔除角色的差异。通过输入用户 ID,创建并进入一个线上实时互动的房间,双方可以在房间内实时畅聊,同时支持添加美颜特效,为用户打造一个稳定、高质量的音视频聊天室。

 

<
产品价格
>
适用范围:
个人&企业
免费方式:
不提供
定价方式:
FreeMarker template error (DEBUG mode; use RETHROW in production!): For "${...}" content: Expected a string or something automatically convertible to string (number, date or boolean), or "template output" , but this has evaluated to a sequence (wrapper: f.t.SimpleSequence): ==> serviceInfo.pricingWayList [in template "view/api/info/tab/package-price.ftl" at line 54, column 51] ---- FTL stack trace ("~" means nesting-related): - Failed at: ${serviceInfo.pricingWayList} [in template "view/api/info/tab/package-price.ftl" at line 54, column 49] - Reached through: #include "view/api/info/tab/package-p... [in template "view/api/info/special/index.ftl" at line 353, column 25] ---- Java stack trace (for programmers): ---- freemarker.core.NonStringOrTemplateOutputException: [... Exception message was already printed; see it above ...] at freemarker.core.EvalUtil.coerceModelToTextualCommon(EvalUtil.java:525) at freemarker.core.EvalUtil.coerceModelToStringOrMarkup(EvalUtil.java:401) at freemarker.core.EvalUtil.coerceModelToStringOrMarkup(EvalUtil.java:370) at freemarker.core.DollarVariable.calculateInterpolatedStringOrMarkup(DollarVariable.java:100) at freemarker.core.DollarVariable.accept(DollarVariable.java:63) at freemarker.core.Environment.visit(Environment.java:334) at freemarker.core.Environment.visit(Environment.java:340) at freemarker.core.Environment.include(Environment.java:2925) at freemarker.core.Include.accept(Include.java:171) at freemarker.core.Environment.visit(Environment.java:334) at freemarker.core.Environment.visit(Environment.java:340) at freemarker.core.Environment.process(Environment.java:313) at freemarker.template.Template.process(Template.java:383) at org.springframework.web.servlet.view.freemarker.FreeMarkerView.processTemplate(FreeMarkerView.java:391) at org.springframework.web.servlet.view.freemarker.FreeMarkerView.doRender(FreeMarkerView.java:304) at org.springframework.web.servlet.view.freemarker.FreeMarkerView.renderMergedTemplateModel(FreeMarkerView.java:255) at org.springframework.web.servlet.view.AbstractTemplateView.renderMergedOutputModel(AbstractTemplateView.java:179) at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:316) at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1373) at org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1118) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1057) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:943) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898) at javax.servlet.http.HttpServlet.service(HttpServlet.java:626) at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) at javax.servlet.http.HttpServlet.service(HttpServlet.java:733) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:113) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:113) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at com.ruoyi.common.filter.RepeatableFilter.doFilter(RepeatableFilter.java:43) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:320) at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:126) at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:90) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:118) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:137) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:111) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:158) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) at com.ruoyi.framework.security.filter.JwtAuthenticationTokenFilter.doFilterInternal(JwtAuthenticationTokenFilter.java:42) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:116) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:113) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:92) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:92) at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:77) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:105) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:56) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:215) at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:178) at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:358) at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:271) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:542) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343) at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:374) at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:888) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1597) at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:748) 错误

404页面错误,error


请求出错,再试一次,或使用浏览器的返回按钮,导航到您之前访问的网页。

或者您可以点击下面这个小按钮:

返回首页