You need to enable JavaScript to run this app.
文档中心
视频直播

视频直播

复制全文
下载 pdf
常见问题
SDK 问题
复制全文
下载 pdf
SDK 问题

创建直播使用的 App 应用时,提示创建失败?

创建 App 类型应用要求应用名和包名称唯一,请检查是否重复。如已确定包名唯一,请创建工单联系技术支持处理。

集成 SDK 开始推流时,出现报错日志“Rtmp connecting failed: code2 -121”

出现 Rtmp connecting failed 报错常见原因如下:

  1. 推流 URL 格式不正确:请使用正确的推流地址,详细参见最佳实践-生成直播地址
  2. URL 鉴权过期:请重新生成 URL 鉴权未过期的推流地址。

集成 SDK 之后,端到端的时延高怎么调优?

拉流播放时出现时延高的情况和推流端设置的 GOP(关键帧间隔 GOP)大小有关,建议检查推流端设置的 GOP 大小,推荐 GOP 设置为 2s。
如果您对时延要求较高,请创建工单联系技术支持获取调优帮助。

Android 和 iOS 应用可以共用一个 License 吗?

可以,Android 和 iOS 可以共用一个 License,您需要在创建 App 类型应用时同时填写 Android 应用的 PackageName 和 iOS 应用的 Bundle ID。详细操作请参见创建应用

如果已在火山引擎控制台中创建过应用,在视频直播控制台还需要创建应用吗?

如果您已经在火山引擎其他产品控制台创建过应用(如在视频点播中创建过 App),接入视频直播客户端 SDK 时,无需重复创建应用。
请参考以下操作获取视频直播客户端 SDK License。

  1. 登录创建过应用的产品控制台(如登录视频点播控制台)。
  2. 在应用管理模块,获取应用的 AppID 和应用名。
  3. 登录视频直播控制台
  4. 在应用管理模块,单击绑定已有应用,根据提示完成绑定即可。
    Image

在视频直播控制台创建应用时,报错“an internal error occurred, please contact the administrator”

创建应用时报错常见原因如下:

  1. PackageName、bundleid、应用信息重复,确认下应用信息是否已绑定在其他应用下。
  2. 相同 PackageName、bundleid 配置的应用信息被删除后,无法再添加相同配置的应用,请创建工单联系技术支持进行处理。

集成 iOS 拉流 SDK 时,会用哪几个 Subspecs?

不同功能使用的 Subspecs 也不同。详见初始化 iOS 拉流 SDK

功能

Subspecs

直播拉流(不包含 RTM 协议拉流)

LivePull

直播拉流(包含 RTM 协议拉流)

LivePull-RTS

Web 推流 SDK 是否支持共享文件?

不支持。Web 推流 SDK 支持屏幕共享功能。

Web 端如何实现后台继续播放?

说明

后台继续播放时仍会消耗流量,为避免流量浪费,不建议您使用此功能。

您可以自定义一个 WebView 类(如 BackgroundVisibleWebView),此类允许 Web 视图即使在其不可见时也保持可见。这对于希望在后台继续加载内容的 Web 视图的情况很有用,例如当用户滚动列表视图时。
代码示例如下:

class BackgroundVisibleWebView @JvmOverloads constructor(
    context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0
) : WebView(context, attrs, defStyleAttr) {
    override fun dispatchWindowVisibilityChanged(visibility: Int) {
        if( windowVisibility == View.VISIBLE ){
            return
        }
        super.dispatchWindowVisibilityChanged(View.VISIBLE)
    }
}

Web 拉流 SDK 如何探测设备是否支持 RTM 播放,以及 RTM 是否支持 H.264 格式播放?

使用 RTM 拉流具有延时低的优点,使用前您需先判断当前浏览器是否支持 RTM 拉流,如果不支持,请用其他播放格式。
2.0.0 及以上版本判断浏览器是否支持 RTM 拉流的代码示例如下:

// 判断是否支持 RTM
const isRTMSupported = await VePlayer.isRTMSupported();

// 判断 RTM 是否支持 H264 格式播放。
const isRTMSupportH264 = await VePlayer.isRTMSupportCodec('h264');

VePlayer.createLivePlayer({
  // v2.1.0 及后续版本不再需要判断是否支持 RTM 播放,播放器会自行判断,如果不支持播放 RTM 则降级到 fallbackUrl 地址。
  url:
        isRTMSupported && isRTMSupportH264
            ?  'https://testpull.mycloud.com/live/mystream.sdp'
            :  'https://testpull.mycloud.com/live/mystream.m3u8',
  width:  640,
  height:  360,
  rtm: {
    fallbackUrl:  'https://testpull.mycloud.com/live/mystream.m3u8',
    },
  logger: {
    appId:  '5*****8',
    },

});

1.5.13 及以上版本判断浏览器是否支持 RTM 拉流的代码示例如下:

// 判断设备是否支持 RTM 播放
const isRTMSupported = Veplayer.isRTMSupported();
// 判断 RTM 是否支持 H.264 格式播放 (Web 拉流 SDK v1.5.13 及以上版本开始支持)
const isRTMSupportH264 = await Veplayer.isRTMSupportCodec('h264');
const veplayer = new Veplayer({
   // 不支持 RTM 的建议用其他格式播放
   url: isRTMSupported && isRTMSupportH264 ? 'XXXX.sdp' : 'XXXX.m3u8'
})

Web 拉流 SDK 如何控制播放端延时?

在弱网环境下进行 RTM 拉流时或因视频码率太大会导致卡顿时,您可以设置播放端延时为播放预留更多缓冲时间。
在 Web 拉流 SDK(Veplayer) 中可通过为播放器配置 delayHint 增加缓冲时间(单位为秒)。
2.0.0 及以上版本示例代码如下:

VePlayer.createLivePlayer({
    width: 640,
    height: 360,
    url: '//live.example.com/live/xxxxx.flv',
    logger:{
      appId: 'xxxx'
    },
    rtm: {
    delayHint:  3
    }
})

1.5.0 及以上版本代码示例如下:

new VePlayer({
    rtm: {
    delayHint:  3
    }
})

如何创建和配置 App Group

在 iOS 应用开发中,创建 App Group 并配置给两个不同的 App 或组件,可以实现 App 间的数据共享。

在开发者中心创建 App Group

  1. 使用已经开通开发者账号的 Apple ID 登录苹果开发者中心
  2. 点击 Certificates, IDs & Profiles

Image

  1. 点击 + 创建 Identifier

Image

  1. 选择 App Groups,点击 Continue。

Image

  1. 在弹出的表单中填写 Description 和 Identifier,点击 Continue。其中 Identifier 需要传入接口中的对应的 AppGroup 参数。

Image

  1. 点击 Register 后,完成创建,并将回到 Identifier 页面。

在开发者中心为 App ID 配置 App Group

在开发者中心,为需要共享数据的应用和组件配置相同的 App Group。

  1. 打开 Identifier 页面右上方的下拉菜单,选中您的 App ID。

Image

  1. 选中 App Groups,点击 Configure。

Image

  1. 在弹出的表单中选择之前创建的 App Group,点击 Continue 返回编辑页,点击 Save 保存。

Image

  1. 选择需要和该 App 进行数据分享的另一个 App 或组件,重复上述步骤。
  2. Provisioning Profile 下载并配置到 XCode 中。

在 Xcode 中配置 App Group

在 Xcode 工程中为需要共享数据的 App 或组件配置相同的 App Group

  1. 在 App 中选择相应的 target,切换到 Signing & Capabilities 标签页,点击 + 新增配置项
    Image
  2. 在弹出的对话框中双击 App Groups
    Image
  3. 添加并勾选之前创建 App Group
    Image
  4. 重复上述步骤,为需要共享数据的其他 App 或组件配置相同的 App Group。

视频直播 SDK 是否支持连麦功能?

当前视频直播 SDK 仅提供基础的推流、拉流能力,不支持连麦功能,也不会自动渲染连麦场景下的多人画面。如需实现连麦能力,需结合其他连麦相关 SDK 或自行实现。

Web 端播放 RTM 流时为何卡顿和无声?

由于浏览器对 RTM 协议限制,Web 端播放 RTM 流时直播流必须去除 B 帧,且音频编码必须改为 Opus 格式,否则会出现卡顿或无声。
请完成以下步骤,解决卡顿和无声问题:

  1. 创建转码配置。
    1. 登录视频直播控制台,左侧导航栏选择功能配置
    2. 在页面上方的域名空间下拉列表中,选择拉流域名所在的域名空间。
    3. 转码配置页签下,单击添加配置,新增转码配置。具体配置,详见转码配置。其中,B 帧(帧间隔)​设置为 0音频选项设置为 Opus
      Image
    4. 单击确定
  2. 生成 RTM 协议的转码流地址。
    1. 地址生成器页面,选择您的拉流域名、与推流地址相同的 AppNameStreamName,并单击生成拉流地址。例如推流地址为 rtmp://push.example.com/live/test,则使用 AppName liveStreamName test 生成拉流地址。
    2. 在页面右侧的转码流地址页签下,选择您配置的转码流后缀,并获取 RTM 地址。
      Image
  3. 使用获取的 RTM 协议转码流地址重新播放。

集成 Web 拉流 SDK 后,如何将播放器文案设置为中文?

请在创建播放器时通过 LiveVePlayerOptionslang 参数设置播放器的初始显示语言,例如 lang: 'zh-cn'。配置后,播放器文案将按中文显示。

使用 Web 拉流 SDK 播放直播时,如果推流中断后重新推流,Web 端如何感知并恢复播放?

Web 拉流 SDK 仅监听播放事件,例如播放开始、播放错误、暂停播放等,不会直接监听推流状态变化。因此,推流中断后重新推流时,Web 端通常无法自动收到推流恢复事件,也不会自动恢复播放。

  • 如果您集成了 Web 推流 SDK,可根据 Web 推流 SDK 的推流相关回调,例如 onPushStatusUpdateonPushStartonPushStop,感知推流状态变化。当推流端监听到推流恢复后,需要将推流开始状态同步给播放端,再由播放端调用 Web 拉流 SDK 的 play() 方法恢复播放。

  • 如果您未集成 Web 推流 SDK,可通过服务端回调感知推流状态。具体步骤如下:

    1. 视频直播控制台功能配置 > 回调配置页面,添加回调类型推流开始的回调配置。具体操作,详见回调配置。有关推流开始回调的字段说明,详见回调内容说明
    2. 当您的业务服务端接收到推流开始回调时,需要将推流开始状态通知播放端。
      • 如果原拉流地址仍然有效,播放端可直接调用 Web 拉流 SDK 的 play() 方法恢复播放。
      • 如果原拉流地址已过期,则应先由您的业务服务端生成新的拉流地址,并将新的拉流地址返回给播放端。播放端更新播放器使用的拉流地址后,再调用 Web 拉流 SDK 的 play() 方法恢复播放。

    说明

    • 为提升用户体验,您也可以同时配置回调类型推流结束的回调配置。当您的业务服务端接收到推流结束回调后,可通知播放端展示直播已结束、等待主播重新开播等提示。
    • 回调按推流事件触发。当您的业务服务端返回状态码 200 OK 后,回调消息不再重复发送。仅当请求失败或超时时,系统才会重试发送回调消息。
最近更新时间:2026.06.01 20:15:37
这个页面对您有帮助吗?
有用
有用
无用
无用