对接流程
短视频发布:将 MP4 文件上传到腾讯视频云,并获得在线观看 URL。腾讯视频云满足视频观看的就近调度、秒开播放、动态加速以及海外接入等要求,确保了优质的观看体验。
Step1:使用 TXUGCRecord 接口录制一段小视频,录制结束后会生成一个小视频文件(MP4)回调给客户。
Step2:App 向您的业务服务器申请上传签名(App 将 MP4 文件上传到腾讯云视频分发平台的“许可证”)。为了确保安全性,上传签名由您的业务 Server 进行签发,而不能由终端 App 生成。
Step3:使用 TXUGCPublish 接口发布视频,发布成功后,SDK 会将观看地址的 URL 回调给您。
注意事项
App 不能把计算上传签名的 SecretID 和 SecretKey 写在客户端代码里,这两个关键信息泄露将导致安全隐患,如果恶意攻击者通过破解 App 来获取该信息,则可以免费使用您的流量和存储服务。
正确的做法是在您的服务器上,用 SecretID 和 SecretKey 生成一次性的上传签名,然后将签名交给 App。
发布短视频时,请务必正确传递 Signature 字段,否则会发布失败。
对接攻略
1. 选择视频
将录制、编辑、拼接后的视频进行上传,或者选择本地视频进行上传。
2. 压缩视频
压缩视频会减小视频文件的大小,同时也会降低视频的清晰度,您可以按需决定是否进行压缩。
对视频进行压缩,使用 TXVideoEditer.generateVideo(int videoCompressed, String videoOutputPath) 接口,支持4种分辨率的压缩,后续会增加自定义码率的压缩。
3. 发布视频
将生成的 MP4 文件发布到腾讯云上,App 需要拿到上传文件的短期有效上传签名,详细请参见 签名派发。TXUGCPublish(位于 TXUGCPublish.java)负责将 MP4 文件发布到腾讯云视频分发平台上,以满足视频观看的就近调度、秒开播放、动态加速以及海外接入等要求。
mVideoPublish = new TXUGCPublish(TCVideoPublisherActivity.this.getApplicationContext());// 文件发布默认是采用断点续传TXUGCPublishTypeDef.TXPublishParam param = new TXUGCPublishTypeDef.TXPublishParam();param.signature = mCosSignature; // 需要填写第四步中计算的上传签名// 录制生成的视频文件路径, ITXVideoRecordListener 的 onRecordComplete 回调中可以获取param.videoPath = mVideoPath;// 录制生成的视频首帧预览图,ITXVideoRecordListener 的 onRecordComplete 回调中可以获取param.coverPath = mCoverPath;mVideoPublish.publishVideo(param);
发布的过程和结果通过 TXRecordCommon.ITXVideoPublishListener(位于 TXRecordCommon.java 头文件中)接口反馈:
onPublishProgress 用于反馈发布进度,参数 uploadBytes 表示已上传的字节数,参数 totalBytes 表示需要上传的总字节数。
void onPublishProgress(long uploadBytes, long totalBytes);
onPublishComplete 用于反馈发布结果。
void onPublishComplete(TXPublishResult result);
参数 TXPublishResult 中的字段及含义如下表所示:
字段 | 含义 |
errCode | 错误码。 |
descMsg | 错误描述信息。 |
videoURL | 短视频的点播地址。 |
coverURL | 视频封面的云存储地址。 |
videoId |
通过 错误码表 来确认短视频的发布结果。