目录
五,使用直播SDK推流(以Android手机摄像头推流为例)
一,腾讯云直播基本简介
直播技术经过10多年的发展,在我国已经非常成熟,也应用到非常多的直播场景中,比如:直播带货,直播PK,摄像头直播等。腾讯云直播也是直播技术优秀厂家之一。
腾讯云依托其全球分布式的几万个节点,能确保视频流畅播放,减少延迟,其次,腾讯云直播拥有强大的安全防护机制,保护直播内容不受非法盗取和恶意攻击,腾讯云直播还提供丰富的互动功能,让直播用户与观众建立紧密的互动联系。通过实时聊天、点赞和弹幕等功能,直播用户可以与观众进行即时互动,增加观众参与感和粘性。
二,腾讯云直播购买流程
腾讯云直播分了很多板块:标准直播,慢直播,快直播,现如今我们为了增加用户体验感,减少延时,都会选择:快直播
1,首先点击下面链接注册一下腾讯云账号:
点击一下:还没账号,注册后关联。或者点一下:我已经有账号,登录后关联。
注册完后,然后到个人中心做一下实名。
2,购买快直播套餐包
点击下面链接:
快直播_毫秒级超低延迟直播_适用于在线教育、体育直播、在线答题等场景-腾讯云
点击:立即选购
选择:云直播流量包
三,如何快速用腾讯云导播进行直播
点击下面链接:
点击:新增导播台
创建导播台后,点击:进入
如果你要和用户播放已录制好的视频,则输入源中,添加视频源文件。
四,接入直播SDK和直播API
我们往往会用开发自己的APP或者其他软件,接入腾讯云的直播技术,以Android为例,
1,首先接入直播SDK。
1.1,下载 LiveAVSDK ,下载完成后进行解压。
1.2,将下载文件解压之后 SDK 目录下的 aar 文件拷贝到工程的 app/libs 目录下:
1.3,在工程根目录下的 build.gradle 中,添加 flatDir,指定本地仓库路径。
1.4,添加 LiteAVSDK 依赖,在 app/build.gradle 中,添加引用 aar 包的代码
implementation(name:'LiteAVSDK_Professional_8.7.10102', ext:'aar')
1.5,在 app/build.gradle 的 defaultConfig 中,指定 App 使用的 CPU 架构(目前 LiteAVSDK 支持 armeabi 、armeabi-v7a 和 arm64-v8a)。
defaultConfig {
ndk {
abiFilters "armeabi-v7a", "arm64-v8a"
}
}
五,使用直播SDK推流(以Android手机摄像头推流为例)
5.1,获取 License 授权,需在 云直播控制台 获取 License URL 和 License Key
5.2,在您的 App 调用 SDK 相关功能之前(建议在 Application 类中)进行如下设置:
public class MApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
String licenceURL = ""; // 获取到的 licence url
String licenceKey = ""; // 获取到的 licence key
V2TXLivePremier.setLicence(this, licenceURL, licenceKey);
V2TXLivePremier.setObserver(new V2TXLivePremierObserver() {
@Override
public void onLicenceLoaded(int result, String reason) {
Log.i(TAG, "onLicenceLoaded: result:" + result + ", reason:" + reason);
}
});
}
5.3,初始化 V2TXLivePusher 组件
创建一个 V2TXLivePusher 对象,该对象负责完成推流的主要工作。
// 指定对应的直播协议为 RTMP,该协议不支持连麦
V2TXLivePusher mLivePusher = new V2TXLivePusherImpl(this, V2TXLiveDef.V2TXLiveMode.TXLiveMode_RTMP);
// 指定对应的直播协议为 RTC,该协议支持连麦。如果在直播过程中有连麦需求,需要选择该协议
V2TXLivePusher mLivePusher = new V2TXLivePusherImpl(this, V2TXLiveDef.V2TXLiveMode.TXLiveMode_RTC);
5.4,开启摄像头预览
想要开启摄像头的预览画面,您需要先给 SDK 提供一个用于显示视频画面的 TXCloudVideoView 对象,由于 TXCloudVideoView 是继承自 Android 中的 FrameLayout,所以您可以:
直接在 xml 文件中添加一个视频渲染控件:
<com.tencent.rtmp.ui.TXCloudVideoView android:id="@+id/pusher_tx_cloud_view" android:layout_width="match_parent" android:layout_height="match_parent" />
通过调用 V2TXLivePusher 中的startCamera接口开启当前手机摄像头的预览画面
// 启动本地摄像头预览
TXCloudVideoView mPusherView = (TXCloudVideoView) findViewById(R.id.pusher_tx_cloud_view);
mLivePusher.setRenderView(mPusherView);
mLivePusher.startCamera(true);
mLivePusher.startMicrophone();
5.5,启动和结束推流
如果已经通过startCamera接口启动了摄像头预览,就可以调用 V2TXLivePusher 中的 startPush 接口开始推流。
// 根据推流协议传入对应的 URL 即可启动推流, RTMP 协议以 rtmp:// 开头,该协议不支持连麦
String url = "rtmp://test.com/live/streamid?txSecret=xxxxx&txTime=xxxxxxxx";
// 根据推流协议传入对应的 URL 即可启动推流, RTC 协议以 trtc:// 开头,该协议支持连麦
String url = "trtc://cloud.tencent.com/push/streamid?sdkappid=1400188888&userId=A&usersig=xxxxx";
int ret = mLivePusher.startPush(url);
if (ret == V2TXLIVE_ERROR_INVALID_LICENSE) {
Log.i(TAG, "startRTMPPush: license 校验失败");
}
推流结束后,可以调用 V2TXLivePusher 中的 stopPush 接口结束推流。
// 结束推流
mLivePusher.stopPush();
// 结束推流 mLivePusher.stopPush();
更多详细可以查看腾讯云官方文档:直播 SDK 摄像头推流-无 UI 集成方案-文档中心-腾讯云