全部产品
Search
文档中心

视频点播:媒资上传常见问题

更新时间:Sep 11, 2026

本文主要介绍媒体上传过程中遇到的常见问题及解决方案。

视频点播是否支持上传新视频直接覆盖替换原有视频内容?

视频点播不支持通过上传新视频直接覆盖或替换已有视频内容。如需更新视频,需重新上传生成新的 VideoId,并手动替换业务系统中的引用地址。

为什么我上传的文件一直处于上传中?

说明
  • 视频点播服务本身无上传速度限制,实际上传速度取决于用户本地带宽和网络链路环境。

  • 跨地域上传(如从美国上传至新加坡)的耗时受网络环境影响较大。

请排查是否由以下原因造成:

  • 原因一:URL批量拉取上传为异步上传,不保证时效性

    如果是通过URL批量拉取上传接口上传,URL批量拉取上传是异步任务,非实时,不保证时效性,一般提交后会在数小时、甚至数天内完成迁移上传。且该接口目前仅支持华东 2(上海)、华北 2(北京)、华南 1(深圳)、新加坡、美国(硅谷)地域,建议您集成点播服务端上传SDK进行上传。

  • 原因二:只生成了上传凭证,但没有上传文件

    如果调用获取音视频上传地址和凭证接口返回成功但控制台仍显示上传中,请注意:该接口仅用于获取上传凭证和创建媒资基础信息,并非实际上传文件,后续还需要使用返回的 UploadAuth 和 UploadAddress 调用 SDK 或 API 执行 OSS 上传操作,完整的上传步骤,请参见使用点播API上传媒资文件。建议在代码中增加日志或断点调试,确认是否真正执行了文件上传步骤及返回结果。

  • 原因三:上传文件过大导致上传时间较长

    请确认上传文件大小以及处于“上传中”状态的时间是否处于合理范围。通过控制台、上传SDK和客户端上传工具等方式上传文件时,默认会使用分片上传,最大支持上传48.8 TB的单个文件;上传SDK同时也提供简单上传功能,其最大支持上传5 GB的单个文件。

  • 原因四:网络问题

    请确认网络带宽是否符合预期。

VOD SDK 回调 onUploadSucceed 但控制台仍显示“上传中”是什么原因?

该现象通常因文件未完整上传至 OSS 导致。请检查 PostPolicy 中的 content-length-range 是否限制过小,建议调整为 5368709120(5 GB);同时确认本地网络正常,文件已实际上传完成。若问题持续,建议重试上传。

如何清理无效任务

以下两种情况会导致任务长时间停留在上传中状态:

  • 仅创建凭证但未实际上传:调用创建上传凭证接口后如果没有实际上传文件,任务会一直显示上传中且不会自动关闭。

  • 上传中断显示失败:上传中断后显示失败的任务也不会自动删除。

上述两种情况均需要您在控制台手动取消或删除相关任务。

使用iOS上传SDK上传失败,并报错Error Domain=NSCocoaErrorDomain

上传失败并报错(错误码207,错误信息Error Domain=NSCocoaErrorDomain),通常是由于读取文件错误,没有权限导致。您可以通过以下方式解决:

  • 方式一:授予iOS上传SDK读取本地资源的权限。

  • 方式二:将本地资源存放到沙盒路径下,再上传。

使用URL批量拉取上传时提示“The service is not open in current region”的错误

提示The service is not open in current region表示当前服务地域暂不支持使用URL批量拉取上传方式进行上传,URL批量拉取上传目前仅支持在华东2(上海)和新加坡地域使用。

如果您非上述地域,建议您将音视频文件下载到本地,然后再通过上传SDK进行上传,详情请参见上传SDK概述。

上传图片类型文件后无法通过控制台里查看

上传图片类型媒资文件时,如果设置类型为cover(视频封面)类型时控制台是无法展示此类文件的;您只能通过API接口来进行查询对应的图片。详情请参见获取图片上传地址和凭证。

上传 MOV 格式视频后无法播放且无法通过 VideoId 获取 URL 怎么办?

该问题通常因 MOV 格式受限导致。建议将 MOV 视频转码为 MP4 等通用格式后再上传;若需获取源文件播放地址,可使用 GetMezzanineInfo 接口获取 FileURL;同时检查并升级 SDK 至最新版本(如 vod20170321 version 3.6.4),参考官方 Demo 进行测试验证。

微信中使用JS SDK上传存在兼容性问题,无法正常上传

经过排查由于微信浏览器对于H5存在兼容性问题,需要将<input type="file" name="file" id="files" multiple="">中的 multiple=""参数去掉就可以正常上传。

Web SDK 上传时 onUploadProgress 回调不触发且无报错怎么办?

请按以下顺序排查:

  1. 检查浏览器环境:关闭广告拦截插件(如 AdBlock、uBlock Origin)或将阿里云域名加入白名单;暂时关闭 Edge 浏览器的跟踪防护或增强型安全模式进行测试。

  2. 检查 SDK 代码逻辑:确认是否在 onUploadStarted 回调中同步调用了 uploader.setUploadAuthAndAddress(uploadInfo, uploadAuth, uploadAddress, videoId)。

  3. 验证参数格式与有效性:检查 uploadAuth 和 uploadAddress 是否为正确的 Base64 编码字符串、结构是否与官方 Demo 一致、凭证是否在 30 分钟有效期内。

  4. 打印传入 setUploadAuthAndAddress 的实际参数值,排查是否存在为空或格式异常。

断点续传报错 AccessDenied 或提示缺少 AliyunVodSaasStsRole 角色如何处理?

无需手动创建 AliyunVodSaasStsRole 角色。AccessDenied 通常由以下原因导致:

  1. 刷新凭证后未将新的 UploadAuth 传入 resumeUploadWithAuth 方法;

  2. 使用 OSS 原生 SDK 时未对 UploadAuth 和 UploadAddress 进行 Base64 解码;

  3. STS Token 过期或权限不足;

  4. 上传文件路径与 STS 策略授权路径不一致(如 sv 文件夹 vs customerTrans 文件夹)。

所需权限为 oss:PutObject。解决方法:确保上传路径与 RAM/STS 策略授权路径匹配,或调整策略以包含实际上传目录;检查凭证传递和解码逻辑;确认 Token 有效期。

推流SDK特定分辨率时出现预览页面拉伸现象

推流SDK在选择推流分辨率为480p时预览页面出现拉伸的现象,但是实际推流是正常的。主要因为480p对应的分辨率为480×640,由于大多数手机屏幕均不支持该分辨率的比例导致出现拉伸的现象。

解决办法:修改预览页面surfaceview的比例,请将activity_push.xml内容修改如下即可。

public void initView() {
    mPreviewView = (SurfaceView) findViewById(R.id.preview_view);
    mPreviewView.getHolder().addCallback(mCallback);
}
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <SurfaceView
            android:id="@+id/preview_view"
            android:layout_width="match_parent"
            android:layout_height="match_parent"/>

    <!--FrameLayout-->
        <!--android:id="@+id/publisher_fragment"-->
        <!--android:layout_width="match_parent"-->
        <!--android:layout_height="match_parent"-->
        <!--android:visibility="gone"/>-->

    <android.support.v4.view.ViewPager
            android:id="@+id/tv_pager"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            >
    </android.support.v4.view.ViewPager>
</RelativeLayout>

Android Studio如何查看和导入aar包数据

查看aar包数据:将.aar文件后缀改成.zip并解压,查看.class、.xml、.jar、图片、文本等各种内容。

导入aar包数据:

  1. 拷贝.aar文件到工程项目下,路径一般为projectName/libs/,重新载入工程。 将 AlivcPlayer.aar、aliyun-vod-upload-android-sdk-1.1.1.jar、aliyun-vod-croe-android-sdk-1.2.1.jar、gson-2.8.0.jar、jsr305-3.0.0.jar 等库文件拷贝到工程的 app > libs 目录下,拷贝完成后重新载入工程。

  2. 在build.gradle根标签下添加本地仓库路径,并在dependencies中添加编译依赖。

    其中libs目录按照实际工程下的包引入文件夹名称而定。在compile参数中,name的值为aar文件的名字,ext为文件的扩展名。

    repositories{
        flatDir{
            dirs 'libs'
        }
    }
    
    dependencies {
        compile fileTree(include: ['*.jar'], dir: 'libs')
        testCompile 'junit:junit:4.12'
        compile 'com.android.support:appcompat-v7:26+'
        compile 'com.android.support:design:26+'
        compile (name:'AlivcPlayer',ext:'aar')
        // 上传SDK 需要依赖OSS上传的SDK
        compile 'com.aliyun.dpa:oss-android-sdk:2.4.5'
    }
  3. 选择 build > rebuild,重新构建project。

    构建完成之后,在工程的External Libraries中即可看到引入的aar包。

    External Libraries
    ├── Android API 26 Platform
    ├── JRE 1.8
    ├── AlivcPlayer:@aar
    │   ├── classes.jar (library root)
    │   │   └── com
    │   │       ├── alivc.player
    │   │       └── aliyun.aliyunplayer
    │   └── res (library root)
    │       ├── values
    │       └── values-zh-rCN
    ├── com.aliyun.dpa:oss-android-sdk-2.4.5
    ├── com.android.support:animated-vector-drawable:26.0.0-alpha1
    ├── com.android.support:appcompat-v7:26.0.0-alpha1
    ├── com.android.support:design:26.0.0-alpha1
    ├── com.android.support:recyclerview-v7:26.0.0-alpha1
    ├── com.android.support:support-annotations:26.0.0-alpha1
    └── com.android.support:support-compat:26.0.0-alpha1

URL 批量拉取上传长时间未完成,是异常吗?

URL 批量拉取上传是异步任务,系统需从源地址下载文件后再上传,大文件或源站带宽受限时可能需要数小时,属正常现象。建议:确认源地址公网可访问且下载速度正常;对时效要求高的大文件,改用服务端上传 SDK 或客户端上传 SDK。

服务端上传后无法生成 videoId,或 host 被解析为 localhost?

多为初始化上传客户端时地域配置不正确导致。请在初始化 vodClient 时显式设置正确的 regionId(如 cn-beijing),并使用对应地域的公网 Endpoint,避免域名被错误解析。

控制台/网页上传提示 network 错误?

network 错误多与浏览器或本地网络环境相关:请更换浏览器或网络环境重试,确认本地网络可正常解析 OSS 上传域名(可用 ping 验证);若问题持续,建议改用服务端上传 SDK 上传。

上传视频时连接 OSS 域名超时,需要放行哪些网络策略?

除放行 vod.cn-shanghai.aliyuncs.com:443 外,还需放行实际上传目标 OSS 域名(如 outin-*.oss-cn-shanghai.aliyuncs.com)的 443 端口。建议一并放行 vod-upload.cn-shanghai.aliyuncs.com(上传入口)和 sts.cn-shanghai.aliyuncs.com(获取临时凭证)的 443 端口。若服务器位于 VPC 内,需配置 NAT 网关或公网 IP 以支持访问上述公网域名。

视频点播平台是否提供上传视频的 MD5 或 CRC64 哈希值?

视频点播平台不直接提供上传视频的 MD5、CRC64 等哈希值查询功能。如业务需要校验文件完整性,建议在上传前由客户端或服务端自行计算并记录哈希值。

相关链接

如需了解详细上传流程及说明,请根据实际业务需求参见以下文档:

  • 通过视频点播控制台上传,或PC端上传工具上传的详细操作,请参见工具上传。

  • 基于点播上传SDK、OSS原生SDK、URL批量拉取上传、OSS API上传等方式上传的详细操作,请参见开发上传。

URL 批量拉取上传后文件 Content-Type 显示为 application/octet-stream 怎么办?

调用 UploadMediaByURL 接口时,FileExtension 参数仅用于告知视频点播系统源文件的格式,以便正确转码和播放。该参数不能修改 OSS 存储对象的 Content-Type 属性,因此上传后文件的 Content-Type 可能默认为 application/octet-stream。如需将其修改为 video/mp4 等值,可在上传完成后使用 ossutil 工具的 set-meta 命令,在 OSS 侧批量修改文件元数据;也可以触发转码处理生成新文件,但转码会产生费用。

如何查询 URL 拉取上传任务的状态并排查上传失败?

URL 拉取上传失败或需要确认任务进度时,可调用 GetURLUploadInfos 接口查询上传任务状态。若上传失败由 OSS 存储接口与配置不一致导致,可根据该接口返回的信息排查问题,并确认 OSS 存储接口与配置保持一致。