上云无忧 > 文档中心 > 百度智能云移动直播SDK Android开发 - 推流参数配置
移动直播SDK
百度智能云移动直播SDK Android开发 - 推流参数配置

文档简介:
LiveConfig用于配置视频采集/编码参数、音频采集/编码参数、及推流参数配置等。 视频采集/编码配置信息包括: 前后置摄像头:设置初始化拍摄器时使用前置或后置相机。 摄像头旋转角度:设置摄像头方向。 视频分辨率:视频采集及编码分辨率,视频编码场景中分辨率与清晰度正相关。
*此产品及展示信息均由百度智能云官方提供。免费试用 咨询热线:400-826-7010,为您提供专业的售前咨询,让您快速了解云产品,助您轻松上云! 微信咨询
  免费试用、价格特惠

LiveConfig用于配置视频采集/编码参数、音频采集/编码参数、及推流参数配置等。
视频采集/编码配置信息包括:
前后置摄像头:设置初始化拍摄器时使用前置或后置相机。
摄像头旋转角度:设置摄像头方向。
视频分辨率:视频采集及编码分辨率,视频编码场景中分辨率与清晰度正相关。
视频帧率:视频采集及编码帧率,视频编码场景中帧率与画面连贯正相关。
视频码率:视频编码码率,视频编码场景中码率与清晰度正相关。
视频gop长度:视频编码关键帧间隔,视频编码场景中关键帧间隔时间。

音频采集/编码配置信息包括:
音频采样率:音频编码采样率,音频编码场景中可以修改音频的采样率。
音频通道数:音频通道数,可配置单通道及立体声双通道。
音频码率:音频编码码率,音频编码场景中码率与清晰度成正相关。

推流配置信息包括:
横屏模式推流设置:设置横屏模式推流。
断流重连设置:设置SDK内部重连次数。
推流码率自适应:设置是否开启推流码率自适应及码率参数。
图片推流设置:设置开启推流暂停时是否推静态图片及设置图片地址。

对于不熟悉音视频产品的用户,直播SDK提供默认的参数配置,方便用户初始化。对于熟悉音视频直播推流的用户,可以自行修改参数以适配业务场景。


1.1视频采集与编码参数配置

视频采集支持设置前后置摄像头、摄像头旋转角度、分辨率、帧率、预览翻转。视频编码参数支持分辨率、帧率、码率、关键帧间隔。相关接口及说明如下:

// 设置摄像头ID,默认为前置摄像头CAMERA_FACING_FRONT
public final Builder setCameraId(int cameraId)

// 设置摄像头方向,该参数最终用于Camera的setDisplayOrientation接口, 默认竖屏 0
public final Builder setCameraOrientation(int cameraOrientation)

// 设置采集及输出视频宽度, 默认 1280
public final Builder setVideoWidth(int videoWidth)

// 设置采集及输出视频高度, 默认 720
public final Builder setVideoHeight(int videoHeight)

// 设置视频采集及编码帧率, 默认25fps
public final Builder setVideoFPS(int videoFPS)

// 设置视频初始码率, 默认1024000 bps
public final Builder setInitVideoBitrate(int initVideoBitrate)

// 设置I帧间隔时长,单位为秒,默认为2秒
public final Builder setGopLengthInSeconds(int gopLengthInSeconds)

// 设置本地预览初始水平翻转
public final Builder setPreviewHFlip(boolean preivewFlip)

// 是否使能视频推流,默认为true. 若设置为false,可实现纯音频推流
public final Builder setVideoEnabled(boolean videoEnabled)

1.2 音频采集及编码参数配置

音频采集编码配置支持音频采集率、音频通道及音频码率设置,相关接口如下:

// 设置音频采样率 默认 44100
public final Builder setAudioSampleRate(int audioSampleRate)

// 设置音频通道数 默认 2
public final Builder setAudioChannels(int channels)

// 设置音频码率
public final Builder setAudioBitrate(int audioBitrate)

// 是使能音频推流,默认为true. 若setVideoEnabled(false) 则进行纯音频推流
public final Builder setAudioEnabled(boolean audioEnabled)

注:音频采样率44100 是各平台普通支持的采样率,不容易出现兼容性问题。

1.3 推流参数配置

可通过如下接口设置推流及视频连麦时远端视频是否默认水平翻转:

// 设置直播推流初始水平翻转
public final Builder setLiveHFlip(boolean liveFlip)
// 设置连麦互动推流水平翻转
public final Builder setInteractHFlip(boolean interactHFlip)

推流视频翻转
可通过如下接口设置推流及视频连麦时远端视频是否默认水平翻转:

// 设置直播推流初始水平翻转
public final Builder setLiveHFlip(boolean liveFlip)
// 设置连麦互动推流水平翻转
public final Builder setInteractHFlip(boolean interactHFlip)

横屏推流

/**
 * 设置屏幕方向
 * @param orientation 传入屏幕方向 横屏{@link ActivityInfo#SCREEN_ORIENTATION_LANDSCAPE}
 *                    或竖屏{@link ActivityInfo#SCREEN_ORIENTATION_PORTRAIT}
 */
public final Builder setScreenOrientation(int orientation)

注: 可通过getWindowManager().getDefaultDisplay().getRotation() 获得旋转角度分析屏幕方向。

断流重连
当直播推流遇到异常后,SDK 支持内部重连,可设置内部重连次数:

// 设置内部出错重连次数 默认 3次
public final Builder setReconnectTimes(int reconnectTimes)

注:SDK 内部重试N次仍然失败后,用户可在监听到相关Error后再次发起外部重连。

推流码率自适应
SDK 支持根据当前推流质量动态切换推流码率,相关的设置接口包括:

// 开启或关闭动态码率自动调整
public final Builder setQosEnabled(boolean qosEnabled)

SDK 内部通过多次探测推流质量后调整一次码率,每次探测的周期为2S,参数 qosSensitivity 为调整一次码率的推流质量探测次数。
调整一次码率的周期为:qosSensitivity*2s

// 设置动态码率灵敏度-探测几次调整一次码率 范围[5, 10]
public final Builder setQosSensitivity(int qosSensitivity)
// 动态码率设置-视频最大码率 默认 1024000 bps
public final Builder setMaxVideoBitrate(int maxVideoBitrate)
// 动态码率设置-视频最小码率 默认 200000 bps
public final Builder setMinVideoBitrate(int minVideoBitrate)

注:最大码率不得小于100000bps, 最小码率不得小于100000bps

图片推流
推流配置支持开启及配置图片推流,若开启图片推流则可以使得在推流页进入后台时继续推流,由于推流进入后台,摄像头被动关闭,可通过配置一个静态图片,当后台推流画面呈现预设图片。若关闭后台推流,则推流进入后台时暂停音视频推流,声音、画面静止。

// 设置是否开图片推流
public final Builder setPicStreamingEnabled(boolean enabled)
// 设置推流暂停图片位置
public final Builder setPausePicPath(String pausePicPath)

注:推流暂停图片可以是sdcard的本地图片,也可以是apk 里的resource。若为sdcard 本地图片则path 为图片文件绝对路径,若为rec/drawable 下的png 格式 resource 则path只需传入文件名称。

外部采集
直播SDK支持音视频源外部采集即外部媒体源导入,通过下面两个接口分别开启/关闭视频及音频的外部采集。

/**
 * 设置视频外部采集
 * @param extAudioCaptureEnabled 是否开启视频外部采集
 * @return 
 */
public final Builder setExtAudioCaptureEnabled(boolean extAudioCaptureEnabled)

/**
 * 设置音频外部采集
 * @param extAudioCaptureEnabled 是否开启音频外部采集
 * @return
 */
public final Builder setExtVideoCaptureEnabled(boolean extVideoCaptureEnabled)

注:当前ARMediaStreamingPusher 及InteractStreamingPusher 支持音视频外部采集。使用外部采集,除使能外部采集外,还需要通过数据导入接口输入音视频数据。

相似文档
  • 普通推流拥有与AR直播相同的通用接口,不同的是普通推流使用SurfaceView 作为本地预览控件,视频直接通过相机获取,相机接口与AR直播使用的AR 相机接口不同。
  • 音视频互动直播是指两个或两个以上人通过连麦方式进行超低延迟的互动,并将互动的音视频数据传递其他的不同观众。音视频互动直播通常是连麦互动场景。通过连麦可以让主播和连麦观众进行超低延迟的音视频通话,然后由主播将互动数据分发给直播观众。
  • ARMediaStreamingPusher类控制AR直播推流的执行。内部封装这一套完整的音视频编码,打包,上传等功能。 其中AR直播管理类包含通用推流接口、及AR控制接口两部分。
  • 直播SDK中集成了AR特效的能力,您可以选择下载您申请的license中的AR版本对应的SDK版本
  • 1 Demo下载: 直播APP: 我们提供直播demo APP供您体验直播能力,您可扫描以下二维码下载安装体验。 Android、 IOS, 下载demo需要密码,密码为:bdcloud
官方微信
联系客服
400-826-7010
7x24小时客服热线
分享
  • QQ好友
  • QQ空间
  • 微信
  • 微博
返回顶部