导语

随着4G/5G时代的到来,短视频/直播行业开始流行,音视频逐渐成为信息传播中流量占比最大的部分。腾讯云对象存储(COS)作为可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务,早已不是一个简单的对象存储服务,结合数据万象(CI)的数据处理能力,同时具备丰富的音视频能力。

本期 COS 音视频实践,将带您用多种姿势让您存储在 COS 上的视频在 Web 浏览器上“跑”起来,在浏览器下用多款播放器播放您的视频文件。

一.主流的 Web 视频播放器介绍

1.Html: 标签是一个原生的 HTML 节点元素,用于在 HTML 或者 XHTML 文档中嵌入媒体播放器,用于支持文档内的视频播放。

2.Videojs:Videojs 是专为 HTML5 世界构建的网络视频播放器,支持 HTML5 视频和现代流媒体格式,是一款功能强大、高可定制的播放器。

3.DPlayer:DPlayer 是一款可爱的 HTML5 弹幕视频播放器,可帮助人们轻松构建视频和弹幕,是一款功能丰富、开箱即用的播放器。

4.TCPlayer:腾讯云点播超级播放器基于 HTML 的 标签,使用多种播放策略来实现视频播放以及多平台播放效果的统一。

5.Plyr:Plyr 是一款简单、轻量级、可访问和可定制的 HTML5 媒体播放器,支持现代浏览器。

6.griffith:griffith 是一款基于 React 的 Web 视频播放器,支持React、原生 JavaScript方式,使用简单,开箱即用。

二. COS 视频能力的支持情况对比

三. 以播放器为例,实现播放 COS 公有读视频文件

3.1. Videojs

引入对应的视频文件和样式文件;

<link href="https://vjs.zencdn.net/7.15.4/video-js.css" rel="stylesheet" />
<script src="https://vjs.zencdn.net/7.15.4/video.min.js"></script>

初始化播放器,并设置 COS 视频文件对象地址;

<video    id="my-video"    class="video-js"    controls    preload="auto"    width="640"    height="264"  >    <source src="https://video-public-1259789488.cos.ap-guangzhou.myqcloud.com/test.mp4" type="video/mp4" />  </video>

3.2. DPlayer

引入对应的视频文件;

<script src="https://cdn.jsdelivr.net/npm/dplayer/dist/DPlayer.min.js"></script>

设置播放器节点;

<div id="dplayer"></div>

初始化播放器,并设置 COS 视频文件对象地址;

const dp = new DPlayer({
container: document.getElementById('dplayer'),
video: {
url: 'https://video-public-1259789488.cos.ap-guangzhou.myqcloud.com/test.mp4',
},
});

3.3. TCPlayer

引入对应的视频文件和样式文件;

<link href="https://cloudcache.tencent-cloud.com/open/qcloud/video/tcplayer/tcplayer.css" rel="stylesheet">
<script src="https://imgcache.qq.com/open/qcloud/video/tcplayer/tcplayer.v4.1.min.js"></script>

设置播放器节点;

<video id="player-container-id" preload="auto" width="600" height="400" playsinline webkit-playsinline x5-playsinline></video>

初始化播放器,并设置 COS 视频文件对象地址;

var tcplayer = TCPlayer("player-container-id", {})
tcplayer.src('https://video-public-1259789488.cos.ap-guangzhou.myqcloud.com/test.mp4')

3.4. Plyr

引入对应的视频文件和样式文件;

<link href="https://vjs.zencdn.net/7.15.4/video-js.css" rel="stylesheet" />
<script src="https://vjs.zencdn.net/7.15.4/video.min.js"></script>

设置播放器节点,并设置 COS 视频文件对象地址;

<div class="container">
<video controls crossorigin playsinline poster="https://cdn.plyr.io/static/demo/View_From_A_Blue_Moon_Trailer-HD.jpg">
<source src="https://video-public-1259789488.cos.ap-guangzhou.myqcloud.com/test.mp4" type="video/mp4" size="576">
</div>

初始化播放器;

const player = new Plyr('video', {captions: {active: true}});
window.player = player;

3.5. griffith

引入对应的视频文件;

<script src="https://unpkg.com/griffith-standalone/dist/index.umd.min.js"></script>

设置播放器节点;

<div id="griffith-player"></div>

初始化播放器,并设置 COS 视频文件对象地址;

const sources = {
play_url: 'https://video-public-1259789488.cos.ap-guangzhou.myqcloud.com/test.mp4',
}

Griffith.createPlayer(document.getElementById('griffith-player')).render({sources}

3.6. HTML 标签

初始化 video 标签,并设置 COS 视频文件对象地址;

<video controls width="250">
<source src="https://video-public-1259789488.cos.ap-guangzhou.myqcloud.com/test.mp4"
type="video/mp4">
</video>

四. COS 控制台视频预览功能

此外,COS 控制台还集成了视频的预览功能,您可以在 COS 控制台方便地预览您的视频文件。登陆腾讯云 COS 控制台,选择存储桶进入文件列表页,点击操作栏的预览按钮,即可进入预览模式。

五. 总结

在这个开源播放器横行的时代,各类播放器功能五花八门,选择越多的同时,往往会令人眼花缭乱。但具体该使用哪款播放器将取决于业务需求,根据实际场景,选择最合适您的播放方式。

例如,您需要对存储在 COS 上的视频进行方便预览观看,那么 COS 控制台上的视频预览功能可能适合您。

又例如,您需要一款开箱即用、功能丰富的播放器,那么 DPlayer 或 griffith 可能适合您。

双例如,您需要一款高可定制、功能完备的播放器,那么 Videojs 或 Plyr 可能适合您。

叒例如,您需要一款支持多平台播放效果统一的播放器,那么 TCPlayer 可能适合您。

叕例如,您想要基于原生的 HTML 能力,自由地定制一款属于您自己的播放器,那么 HTML 标签可能适合您。

展望

我们计划开设“COS 音视频实践”系列文章,从具体的音视频能力出发,为您奉上相关的解决方案,敬请期待。

COS 音视频实践 | 多种姿势让你的视频“跑”起来的更多相关文章

  1. COS 音视频实践 | 数据工作流助你播放多清晰度视频

    前言 你是否遇到过这样的场景: 兴致勃勃地观看心爱的视频,正当到了激动人心的高潮部分,却突然因为网速过差被迫陷入"转圈圈"的人生以及社会的大思考中. 又或者是身为网速畅通无阻的vi ...

  2. 嵌入式实时操作系统μCOS原理与实践任务控制与时间的解析

    /*************************************************************************************************** ...

  3. moviepy音视频剪辑:与大小相关的视频变换函数crop、even_size、margin、resize介绍

    ☞ ░ 前往老猿Python博文目录 ░ 一.引言 在<moviepy音视频剪辑:moviepy中的剪辑基类Clip详解>介绍了剪辑基类的fl.fl_time.fx方法,在<movi ...

  4. PyQt+moviepy音视频剪辑实战2:一个剪裁视频文件精华内容留存工具的实现

    专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 PyQt+moviepy音视频剪辑实战 专栏:PyQt入门学习 老猿Python博文目录 老猿学5G博文目录 一.引言 ...

  5. 手淘架构组最新实践 | iOS基于静态库插桩的⼆进制重排启动优化 抖音研发实践:基于二进制文件重排的解决方案 APP启动速度提升超15% 编译期插桩

    抖音研发实践:基于二进制文件重排的解决方案 APP启动速度提升超15% 原创 Leo 字节跳动技术团队 2019-08-09 https://mp.weixin.qq.com/s/Drmmx5JtjG ...

  6. 工作记录--使用FFmpeg将一个视频文件中音频合成到另一个视频中

    由于工作需要,临时被老大吩咐去研究一个FFmpeg工具,通过linux命令行去将一个视频中的音频提取出来并合成到另一个视频中,最终的效果是要保证2个视频中的音频都在一个视频中播放. 但是本人对FFmp ...

  7. javaCV开发详解之2:推流器实现,推本地摄像头视频到流媒体服务器以及摄像头录制视频功能实现(基于javaCV-FFMPEG、javaCV-openCV)

    javaCV系列文章: javacv开发详解之1:调用本机摄像头视频 javaCV开发详解之2:推流器实现,推本地摄像头视频到流媒体服务器以及摄像头录制视频功能实现(基于javaCV-FFMPEG.j ...

  8. 前后端分离djangorestframework—— 在线视频平台接入第三方加密防盗录视频

    加密视频 在以后的开发项目中,很可能有做在线视频的,而在线视频就有个问题,因为在线播放,就很有可能视频数据被抓包,如果这个在线视频平台有付费视频的话,这样就会有人做点倒卖视频的生意了,针对这个问题,目 ...

  9. 阿里云视频云正式支持AV1编码格式 为视频编码服务降本提效

    今天我们要说的 AV1 可不是我们平时说的 .AVI 文件格式,它是由AOM(Alliance for Open Media,开放媒体联盟)制定的一个开源.免版权费的视频编码格式,可以解决H.265昂 ...

随机推荐

  1. JOIN US | SphereEx 精英集结

    新环境.新气象,SphereEx 欢迎志同道合的你加入! 关于 SphereEx 北京思斐软件技术有限公司(sphere-ex.com),是一家致力于构建新型分布式数据基础设施的公司,秉承开源.共享. ...

  2. golang []byte和string的高性能转换

    golang []byte和string的高性能转换 在fasthttp的最佳实践中有这么一句话: Avoid conversion between []byte and string, since ...

  3. PAT (Basic Level) Practice (中文)1009 说反话 (20分)

    给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出. 输入格式: 测试输入包含一个测试用例,在一行内给出总长度不超过 80 的字符串.字符串由若干单词和若干空格组成,其中单词是由英文字母(大小 ...

  4. BUAA_2019_OO_第一单元总结

    一.基于度量来分析自己的程序结构 1.第一次作业 1.1类图: 第一次作业由于比较简单,我采用了面向过程的编程方式.在Polynomail类的构造函数中将项直接求导输出.这样的弊端显而易见,不能进行优 ...

  5. Redis核心原理与实践--Redis启动过程源码分析

    Redis服务器负责接收处理用户请求,为用户提供服务. Redis服务器的启动命令格式如下: redis-server [ configfile ] [ options ] configfile参数指 ...

  6. 解决svn异常报错“”cleanup failed to process the following paths …… previous operation has not finished”

    参考高票答案https://stackoverflow.com/questions/10128201/subversion-stuck-due-to-previous-operation-has-no ...

  7. 算法:九宫格问题--奇数阶魔方(Magic-Square)

    一.魔方介绍 魔方(这里是简称,也可以叫幻方.魔术矩阵,Magic Square)是 n×n 正方形网格(n 为每侧的单元数),里面每个单元格填充了不同的正整数 1, 2, 3, ... , n2,并 ...

  8. tarjan知识点梳理

    tarjan在图论中还是挺重要的.这里就简要的梳理一下tarjan的知识点. tarjan算法与无向图连通性. 首先说一下图中割点和桥的定义. 桥:也称割边,定义类似,在无向图中,若去掉某条边,导致整 ...

  9. poj 2311 Cutting Game (SG)

    题意: 有一张W*H的纸片. 每人每次可以横着撕或者竖着撕,先撕出1*1那一方胜. 数据范围: W and H (2 <= W, H <= 200) 思路: 很好抽象出游戏图的模型,用SG ...

  10. (一)《SQL进阶教程》学习记录--CASE

    背景:最近用到统计之类的复杂Sql比较多,有种"提笔忘字"的感觉,看书练习,举一反三,巩固加强. (一) <SQL进阶教程>学习记录--CASE (二) <SQL ...