视频上传(Android)

最近更新时间:2019-07-02 17:10:31

对接流程

短视频发布:将 MP4 文件上传到腾讯视频云,并获得在线观看 URL, 腾讯视频云满足视频观看的就近调度、秒开播放、动态加速以及海外接入等要求,确保了优质的观看体验。

  • Step1. 使用 TXUGCRecord 接口录制一段小视频,录制结束后会生成一个小视频文件(MP4)回调给客户。
  • Step2. App 向您的业务服务器申请上传签名(App 将 MP4 文件上传到腾讯云视频分发平台的 “许可证”)。为了确保安全性,上传签名由您的业务 Server 进行签发,而不能由终端 App 生成。
  • Step3. 使用 TXUGCPublish 接口发布视频,发布成功后,SDK 会将观看地址的 URL 回调给您。

注意事项

  • App 不能把计算上传签名的 SecretID 和 SecretKey 写在客户端代码里,这两个关键信息泄露将导致安全隐患,如果恶意攻击者通过破解 App 来获取该信息,则可以免费使用您的流量和存储服务。
  • 正确的做法是在您的服务器上,用 SecretID 和 SecretKey 生成一次性的上传签名,然后将签名交给 App。
  • 发布短视频时,请务必正确传递 Signature 字段,否则会发布失败。

对接攻略


请参见 Android 上传 SDK 来接入短视频上传功能。

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 视频文件云存储 ID,您可以通过这个 ID 调用云点播 服务端 API 接口
  • 通过 错误码表 来确认短视频的发布结果。

4. 播放视频

第3步发布视频成功后,会返回视频的 fileId、播放地址 URL 及封面 URL,然后在 点播播放器 中传入 fileId 或 URL 进行视频播放。