上传到OSS的视频如何实现在线播放

重要

本文中含有需要您注意的重要提示信息,忽略该信息可能对您的业务造成影响,请务必仔细阅读。

本文介绍在OSS控制台或者使用SDK、RTMP推流上传等方式上传到阿里云OSS的视频,如何实现视频在线播放。

实现方式

在OSS控制台或者使用SDK上传的视频如何播放

OSS通过公共接口对外提供接口服务,上传成功后,可以通过生成URL的方法生成访问地址。更多信息,请参见使用文件URL分享文件

RTMP推流上传到OSS的视频如何播放

RTMP推流上传到OSS的音视频数据如何获取播放地址,请参见以下场景:

直播场景

在推流的过程中,可以通过HLS协议播放正在推送的内容。各个平台的播放方法如下:

  • 在Android、iOS等移动平台,直接在浏览器输入LiveChannel对应的播放地址即可。关于如何获取对应的推流地址,请参见ListLiveChannel

  • Mac OS可以使用Safari浏览器进行播放。

  • PC端可以安装VLC播放器进行播放。

点播场景

推流的过程中,OSS总是以直播流的方式推送或更新M3U8文件。所以对于点播的场景,需要在推流结束后,调用PostVodPlaylist接口来组装一个点播用的M3U8文件,然后使用该文件地址来播放。PostVodPlaylist接口的使用方法,请参见PostVodPlaylist

说明

对于点播的场景,可以设置较大的GOP来减少TS文件数,降低码率。

常见问题

链接只能下载不能直接预览?

出于数据传输安全考虑,在2022/10/09 00:00之后新开通OSS的用户,使用OSS默认域名访问任意文件,以及在2020/11/17 11:07之后开通传输加速的Bucket,使用OSS传输加速域名访问任意文件,OSS会在返回头中增加两个Header:

x-oss-force-download:true
Content-Disposition: attachment

标准浏览器检测到Content-Disposition: attachment,会弹出下载而不是预览。如需实现预览,您可以为OSS绑定自定义域名。使用自定义域名访问文件,不会增加以上Header。具体操作,请参见绑定自定义域名

为什么有的浏览器无法播放?

导致浏览器无法播放视频的可能原因如下:

  • 浏览器不兼容视频格式:浏览器不支持播放某些格式的视频。例如Safari浏览器支持M3U8格式,但是其他的浏览器不支持。如果浏览器不兼容视频格式,您可以使用媒体处理进行转码,将视频改为正常播放的格式。具体操作,请参见创建转码任务

  • 浏览器无法正确识别视频的文件类型:OSS默认根据文件的后缀名来设置MIME。如果视频文件没有后缀名,您需要自行更改。关于OSS如何设置MIME,请参见Content-Type(MIME)

能不能获取一个预览链接,一个下载链接?

获取一个预览链接和一个下载链接的步骤如下:

  1. 绑定自定义域名。具体操作,请参见绑定自定义域名

  2. 使用自定义域名生成签名URL时,通过设置文件的Content-Dispostionattachmentinline来分别生成一个下载链接、一个预览链接。具体操作,请参见sign(生成签名URL)

怎么能让链接永久生效?

如果您需要让文件的链接永久生效,您可以设置文件的访问权限为公共读。具体操作,请参见Object ACL

警告

互联网上任何用户都可以对该Object进行访问,这有可能造成您数据的外泄以及费用激增,请谨慎操作。

域名需要自己购买?

如果您要为存储空间绑定自定义域名,您需要注册一个域名并将其解析到OSS。您可以通过阿里云域名服务申请注册。具体操作,请参见如何注册阿里云域名

域名用不用备案?

如果存储空间在中国内地,您需要备案域名。您可以通过阿里云ICP代备案管理系统申请备案。具体操作,请参见ICP备案流程概述

为什么绑定了域名还是无法访问?

域名的CNAME解析需要一定的时间才能生效,具体的时间取决于TTL设置、DNS缓存和DNS传播。通常情况下,CNAME解析的生效时间在几分钟到几小时之间。如果您在绑定域名后无法访问,请耐心等待一段时间,确保解析设置正确,并且所有的DNS服务器都已经接收到更新的解析结果。

防盗链怎么设置?

为避免您的视频被其他人盗用,您可以通过设置Referer列表以及是否允许空Referer的方式,限制视频的访问来源。具体操作,请参见防盗链

怎么通过HTTPS的方式访问?

如果您需要通过HTTPS的方式访问自定义域名,您可以购买相应的数字证书并进行证书托管。更多信息,请参见证书托管

如何对上传的视频进行处理?

如果您需要对视频进行剪辑、水印、转码等操作,您可以使用媒体处理。详情请参见媒体处理