一、直播概述

关于直播,大概的过程是:推流端——>源站——>客户端拉流,用媒介播放

客户端所谓的拉流就是一个播放的地址url,会有多种类型的流:

视频直播服务目前支持三种直播协议,分别是RTMP、HLS、FLV :

(1)RTMP: 实时消息传输协议,但是需要 flash 插件的支持,则是,手机浏览器是无法支持的。跟其他因素无关,这种类型的流就是无法在手机浏览器播放。

(2)HLS 协议:基于HTTP协议的流直播(wikipedia)。它可以基于h5的video标签播放,所以只要支持h5就能支持hls这种推流,就是说它在大部分手机浏览器的支持度是很好的,但是有个致命的痛点就是延迟很大,会是10S以上,所以要实现在直播的过程中实现互动就很尴尬,所以适合仅仅看直播的业务。(文件是m3u8格式)

(3)HTTP-FLV :协议由 Adobe 公司主推,格式极其简单,只是在大块的视频帧和音视频头部加入一些标记头信息,由于这种极致的简洁,在延迟表现和大规模并发方面都很成熟。唯一的不足就是在手机浏览器上的支持非常有限,但是用作手机端 APP 直播协议却异常合适。

综上:  你可以用rtmp协议的流实现在pc端的直播,用hls协议实现在手机端浏览器的直播。   毕竟rtmp的延时小,所以能用rtmp就不要hls

视频的在客户端的优先顺序最好是:

* mobile :m3u8>mp4
* PC :RTMP>flv>m3u8>mp4

二、后台给你一个健康的流地址

本人被坑了半天,后台给了一个在腾讯云生成的拉流地址,结果用了各种方式去播放,还是播放不了,问了腾讯云的技术人员无结果,腾讯云人还给网页端的demo,在各个demo上去测试,其实。。。。。。。。。

你只要下载VLC一个软件,支持多种类型的流播放器,你把地址放到这上面,就能检测出给你拉流地址是否健康。

而后,后台通过在腾讯云提交工单,才发现pc的推流,需要加防盗链,推流跟拉流都需要。

三、客户端怎么去播放

有了以上的基本知识,有了多种类型的推流地址,

这个时候就是,你要怎么去播放这些流了,怎么让播放器根据客户端的类型,去选择最优类的流去播放,

比如在pc,即使rtmp和hls都可以播放,但是hls延迟高,还是选择rpmp播放

这个时候vedio.js  跟腾讯云的两个播放器早就帮你做好了这些事:

1、videojs

关于videojs,网上有很多demo,本人百度了那么多后,比较直接的资料如下:

videojs:   (1)官方文档:http://docs.videojs.com/tutorial-options.html#height

     (2)vue总应用:https://www.npmjs.com/package/vue-video-player  https://github.com/savokiss/vue-videojs-demo

     (3)播放需要flash的流:https://github.com/videojs/videojs-flash

     (4)播放hls的流:https://github.com/videojs/videojs-contrib-hls

2、腾讯的TCplayer,还有Web直播播放器1.0

 (1)TCplayer:  https://cloud.tencent.com/document/product/267/7479

 (2)Web直播播放器1.0: https://cloud.tencent.com/document/product/267/5704

备注:

  目前为止,咨询了腾讯云的技术人员,暂时这两个播放器都可以实现直播,但是坑的是:

  TCplaer没有弹幕功能,但是有controls参数,可以隐藏视频底部的工具栏,而

  Web直播播放器1.0有弹幕,但没有controls参数

总结:

  试过了这几种播放效果,最后还是选择了TCplaer,而没有用vediojs,因为在手机播放的时候,vediojs出现开始播放的播放按钮一直卡住loding的状态,而TC比较顺畅,不知道是不是跟我们后台的流是后台推流的有关,待验证

  稍微,可能会做一个demo,可以让大家直观的看到两个播放器的差别

  

  现在看来,大家只要把腾讯云关于直播的文档认真看一两遍,估计很多就理清了https://cloud.tencent.com/document/product/267

借鉴:WEB直播技术入门及在 Vue 中应用 video.js

pc/移动端(手机端)浏览器的直播rtmp hls(适合入门者快速上手)的更多相关文章

  1. 【百度地图JavaScript API】手机端浏览器定位的实现

    [百度地图JavaScript API]手机端浏览器定位的实现 https://blog.csdn.net/xiao190128/article/details/72579476

  2. 移动端(手机端)页面自适应解决方案—rem布局篇

    移动端(手机端)页面自适应解决方案-rem布局 假设设计妹妹给我们的设计稿尺寸为750 * 1340.结合网易.淘宝移动端首页html元素上的动态font-size属性.设计稿尺寸.前端与设计之间协作 ...

  3. 手机端浏览器适配,background 背景平铺 ,有的出不来

    .mobilePage .report { background: url(../images/mobile-report.png) repeat; background-size: 100% :/* ...

  4. 移动端(手机端)页面自适应解决方案1(rem布局)---750设计稿

    设计稿尺寸为750 * 1340.结合网易.淘宝移动端首页html元素上的动态font-size属性.设计稿尺寸.前端与设计之间协作流程一般分为下面两种: 网易做法: 页面开头处引入下面这段代码,用于 ...

  5. 移动端-手机端-日历选择控件(支持Zepto和JQuery)

    一. 效果图 二. 功能说明 1. 支持切换年份,月份. 2. 支持点击选中日期,也可以点击确定选择日期. 三. 使用方法 1. 添加Input 在你的页面中添加Input输入框.可以再html里,也 ...

  6. JS判断是电脑浏览器还是手机端浏览器,并根据不同的终端跳转到不同的网址

    <!DOCTYPE html> <html> <script> function browserRedirect() { var sUserAgent = navi ...

  7. html5音频audio对象封装成vue组件的方式调用以及setTimeout如何在vue2生效 (vue2正在熟悉中,ajax还是用jQuery来写舒服些,里面含有一些php写法可略过) 此网页应用在PC不考虑手机端

    // vue2 组件封装如下: <template> <div> <div><!--vue element 组件的引用 Switch 开关 不懂请自行百度(重 ...

  8. h5实现手机端等级进度条

    h5实现等级进度条 需求如下: 实现一个动画进度条,页面一打开实现一个进度条动画,因为App这个页面会经常改,所以没有使用原审Android或者IOS来实现,希望通过H5来做: 服务器端返回如下数据: ...

  9. 手机端图片预览和缩放js

    转至:http://blog.sina.com.cn/s/blog_c342e3090102vcxu.html 1.手机端的图片选择和预览 <input type="file" ...

随机推荐

  1. flink日记

    直接下载 解压, 运行 ./bin/start-cluster.sh 几个概念: 批处理: 大数据量,不要求实时. 输入源是有界的 流处理:实时要求高,通常在毫秒级, 数据量比较小,但是输入源是无界的 ...

  2. Cmder光标错位的问题&VSCode终端光标错位问题

    问题 本机中安装了 Cmder,几乎是0配置 ,同时在 VSCode 中设置默认终端为 Cmder,在 VSCode 中打开终端,显示如图: 这里光标实际的位置是 . 的后面,但是表现出来的是多一个空 ...

  3. Android NDK开发 环境配置(一) 之多重CPU的兼容性

    今天我学习Android Studio当中的NDK,为什么要学习NDK呢,是因为领导给我提了一个BUG,这个BUG就是Android 多重CPU怎样兼容性,我现在先说一下,Android Studio ...

  4. cannot focus element解决方案

    If you enconter error "cannot focus element" when using Selenium+Python in Chrome to input ...

  5. git使用笔记-提高篇

    一.分支.合并 1.合并一个特定提交 a specific commit git cherry-pick commit-id 把commit-id代表的本次提交合并到当前分支,如果有冲突需要解决后,提 ...

  6. mysql 8 修改root 密码

    主要参考:https://dev.mysql.com/doc/refman/8.0/en/resetting-permissions.html 需要注意的是创建文件的时候需要保存为 utf-8 无 B ...

  7. Tomcat WEB搭建+Nginx负载均衡动静分离+DNS解析的实验

    实验拓扑图: 实验环境: 在VMware workstation搭建虚拟环境,利用网络适配器的Nat和桥接模式模拟内网和外网环境. 实验过程中需要安装的工具包包括:vim unzip lrzsz ls ...

  8. 牛客网Java刷题知识点之File对象常用功能:获取文件名称、获取文件路径、获取文件大小、获取文件修改时间、创建与删除、判断、重命名、查看系统根目录、容量获取、获取某个目录下内容、过滤器

    不多说,直接上干货! 获取文件名称.获取文件路径.获取文件大小.获取文件修改时间 FileMethodDemo.java package zhouls.bigdata.DataFeatureSelec ...

  9. eureka的一点细节

    第二部分粗略的过一遍,还是有些模糊,再来相对系统的看一下: ---------------------------------------------------------------------- ...

  10. 工作采坑札记:2. Hadoop中MultipleInputs的使用陷阱

    1. 背景 近日在一个Hadoop项目中使用MultipleInputs增加多输入文件时,发现相同路径仅会加载一次,导致后续的统计任务严重失真.本博文旨在记录异常的排查及解决方案. 2. 情景重现 ( ...