VideoJS

HTML5 视频流行插件之video.js

这一生的挚爱 提交于 2020-07-26 09:08:27
Video.js 是一个通用的在网页上嵌入视频播放器的 JS 库,Video.js 自动检测浏览器对 HTML5 的支持情况,如果不支持 HTML5 则自动使用 Flash 播放器。 (要支持ie低版本请下载5.4.3版 ) 点击进入官网 下载地址: http://www.jq22.com/jquery-info404 也可以使用cdn < link href ="//cdn.bootcss.com/video.js/7.0.0-alpha.1/alt/video-js-cdn.css" rel ="stylesheet" > < script src ="//cdn.bootcss.com/video.js/7.0.0-alpha.1/video.min.js" ></ script > 首先给video标签加上 video-js 的类 data-setup="{ }" 使控件样式发生改变 <! DOCTYPE html > < html lang ="en" > < head > < meta charset ="UTF-8" > < title > videojs </ title > < link rel ="stylesheet" href ="video-js.min.css" > </ head > < body > < video class ="video-js"

Video.js + HLS 在production环境下webpack打包后出错的解决方案

試著忘記壹切 提交于 2020-05-08 05:47:46
Video.js是一个非常强大的视频播放库,能在微信下完美提供inline小窗口播放模式,但当涉及到hls格式视频播放时就比较麻烦,出现的数种现象都不好解决. 错误现象: 1. PC Chrome上提示格式不支持,此问题主要是Chrome本身不支持HLS格式导致的. VIDEOJS: ERROR: (CODE:4 MEDIA_ERR_SRC_NOT_SUPPORTED) The media could not be loaded, either because the server or network failed or because the format is not supported. 2. 使用官方推荐的videojs-contrib-hls和videojs-contrib-media-sources插件后,运行时提示webworkify相关问题. VIDEOJS: WARN: Failed to create SourceBuffers TypeError: Cannot convert undefined or null to object at Function.keys ( <anonymous> ) at module.exports (webpack: // /./~/webworkify/index.js?:10:28) at new

nginx-rtmp之直播视频流的推送

坚强是说给别人听的谎言 提交于 2020-05-05 15:15:20
  一、RTMP是 Real Time Messaging Protocol (实时消息传输 协议 )的首字母缩写。该协议基于TCP,是一个协议族,包括RTMP基本协议及RTMPT/RTMPS/RTMPE等多种变种。RTMP是一种设计用来进行实时数据通信的网络协议,主要用来在Flash/AIR平台和支持RTMP协议的流媒体/交互服务器之间进行音视频和数据通信。支持该协议的软件包括Adobe Media Server/Ultrant Media Server/red5等。   RTMP(Real Time Messaging Protocol)实时消息传送协议是 Adobe Systems公司为Flash播放器和服务器之间音频、视频和数据传输 开发的开放协议。   它有多种变种:   1) RTMP 工作在TCP之上,默认使用端口1935;   2) RTMPE 在RTMP的基础上增加了加密功能;   3) RTMPT 封装在 HTTP请求 之上,可穿透 防火墙 ;   4) RTMPS 类似RTMPT,增加了TLS/SSL的安全功能;   二、上面介绍了RTMP协议主要用来干什么的,下面说明一下NGINX-RTMP主要的作用。我们在做视频流的推送的时候,一般都是采用rtmp的协议进行视频流的推送工作。而这里我们主要说道的是nginx提供的一套视频流的解决方案,主要插件为 nginx

如何用Java搭建一个直播小程序系统

不问归期 提交于 2020-05-05 10:19:14
导读: 如今直播似乎已经进入全民时代,越来越多直播内容充斥着我们茶余饭后的 生活。随处可见的娱乐主播,如火如荼的游戏主播,默默耕耘的教育主播,内容的多样化满足这各式各样的人。昨天用Java搭建了一个直播小程序系统(www.zhaowubo.cn)在宽带支持的前提下,支持几百人是不成问题的,如何做到的呢? 1. nginx-rtmp module的安装和使用 2. obs进行推流 3. websocket弹幕,推送 - 解决前端播放m3u8格式的流视频 4. vue-video-player + videojs-contrib-hls的使用 5. spring-boot便捷开发整合 6. jsoup爬虫的使用 7. 基于websocket,发送图片文字小视频 nginx讲解 nginx在印象中,一般作为静态文件服务器,它具有tomcat无法比拟的处理静态资源的能力,所以在动静分离被广泛运行,本身还可以作为反向代理和负载均衡服务器,但是今天我们使用的是它的拓展模块rtmp模块拓展,在随后的第一天课程中我们将进行讲解,现在先有一个概念。我们先看一下运行效果: 直播间和弹幕间: 弹幕间发送图片和小视频: 项目分为直播间和聊天室,聊天室用websocket全双工通信,保持长连接,直播间采用rtmp,两者都要保持较高的即时性,项目结构如下: 下面几节进行 直播小程序开发 讲解 来源:

使用HLS协议连接nginx实现近实时流方式播放视频

妖精的绣舞 提交于 2020-05-04 23:01:08
[TOC] 1. 流媒体 流媒体就是将视频文件分成许多小块儿,将这些小块儿作为数据包通过网络发送出去,实现一边传输视 频 数据 包一边观看视频。 1.1 流式传输 在网络上传输音、视频信息有两个方式: 下载 和 流式传输 。 下载 :就是把音、视频文件完全下载到本机后开始播放,它的特点是必须等到视频文件下载完成方可播放, 播放等待时间较长,无法去播放还未下载的部分视频。 流式传输 :就是客户端通过链接视频服务器实时传输音、视频信息,实现“边下载边播放”。 流式传输包括如下两种方式: 1.1.2 顺序流式传输 即顺序下载音、视频文件,可以实现边下载边播放,不过,用户只能观看已下载的视频内容,无法快进到未 下载的视频部分,顺序流式传输可以使用 Http 服务器来实现,比如 Nginx 、 Apache 等。 1.1.3 实时流式传输 实时流式传输可以解决顺序流式传输无法快进的问题,它与 Http 流式传输不同,它必须使用流媒体服务器并 且使用流媒体协议来传输视频,它比 Http 流式传输复杂。常见的实时流式传输协议有 RTSP 、 RTMP 、 RSVP 等。 将原始的视频文件通过编码器转换为适合网络传输的流格式,编码后的视频直接输送给媒体服务器。原始的视频文件通常是事先录制好的视频,比如通过摄像机、摄像头等录像、录音设备采集到的音视频文件,体积较大,要想在网络上传输需要经过压缩处理

前端视频直播技术总结及video.js在h5页面中的应用

陌路散爱 提交于 2020-04-17 03:41:19
【推荐阅读】微服务还能火多久?>>> 全手打原创,转载请标明出处: https://www.cnblogs.com/dreamsqin/p/12557070.html ,多谢,=。=~ (如果对你有帮助的话请帮我点个赞啦) 目前有一个需求是在移动端上内嵌h5实现点位的视频直播,直播项目采用Vue编写,后端主要输出 RTMP 和 HLS 协议的直播流,本文主要总结一下整体开发的技术选型以及开发过程中的思考与学习总结。 流媒体传输 我的困惑: 什么是流媒体,以及其传输方式是怎样的? 流媒体 流媒体是指采用流式传输方式在 Internet 上播放的媒体格式,例如音频、视频等多媒体文件。 流式传输方式 流式传输方式是将多媒体文件经过特殊压缩后分成一个个压缩包,再由服务器向客户端连续、实时传送。用户不必像非流式传输那样等待整个文件全部下载完毕后才能播放,而是只需要经过几秒钟或几十秒的启动延时即可对压缩的音视频文件进行播放,剩余的部分将继续下载,直至播放完毕。 流媒体传输协议 常用的流媒体传输协议主要有 HTTP渐进式下载 和 实时流媒体协议 两类。 HTTP渐进式下载 :仅能传输完整的音视频文件,在给定时刻,用户只能观看已下载的那部分,而不能跳到还未下载的部分。HTTP边下载边播放,严格意义上讲,不是直播协议。他的原理是先下载文件的基本信息,音频视频的时间戳,再下载音视频数据

JWPlayer GrindPlaer CuPlayer播放器使用心得

流过昼夜 提交于 2020-04-07 05:32:51
项目中有使用rtmp进行直播,所以需要支持rtmp协议的视频播放器,用于前端播放直播流。 我先后用过GrindPlayer JWPlayer CuPlayer GrindPlayer是无意中,配置nginx-rtmp服务器(windows版),发现的自带的一款浏览器,延迟较低,但清晰度不够,相对于其他的浏览器来说,它的显示效果不够平滑。感觉有锯齿。 GrindPlayer 1.引入相关的资源文件和js文件 2.使用播放器 var pqs = new ParsedQueryString(); var parameterNames = pqs.params(false); var parameters = { src:config.src, autoPlay: "true", verbose: true, controlBarAutoHide: "true", controlBarPosition: "bottom", poster: "images/poster.png", javascriptCallbackFunction: "jsbridge", plugin_hls: basepath+"/view/source/player/flashlsOSMF.swf", hls_minbufferlength: -1, hls_maxbufferlength: 30, hls

前端直播功能开发总结

久未见 提交于 2020-03-09 14:16:34
这里直播还是用的第三方的集成:视频用的是七牛云的集成,聊天用的是融云。图玩智能科技提供免费的直播源码,详情请登录 www.toivan.com. 一、直播功能 ( 七牛云 ) 下面是直播的快速入门文档: https://developer.qiniu.com/pili/manual/1221/the-console-quick-start 这里前端功能没什么可说的,文档中都写的很详细。 我这里用的前端播放器是 videojs, 引入相关的 js 和 css ,只需要简单的设置就可以: var myPlayer = videojs('demo-video',{ bigPlayButton : true, textTrackDisplay : true, posterImage: true, errorDisplay : true, controlBar : true },()=>{ }) 二、聊天室功能 ( 融云 ) 融云这个就比较坑了,文档和 demo 对于 web 开发者很不友好,开发的时候很多接口还有问题。下面是心得: 聊天室对于 pc 端应当有两个界面,用户客户端观看界面和超级管理员的管理界面 客户端观看界面: 1 先引入相关文件 融云的服务器相关 js : <script src="http://cdn.ronghub.com/RongIMLib-2.3.2.js"><

如何实现网页播放rtmp流媒体

不问归期 提交于 2019-12-26 17:46:12
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 最近公司有个需求,要对公司食堂的监控视频进行轻量改造,去除以前对海康插件的依赖,让手机也能顺畅地播放,于是乎在网上搜刮了相关资料,大多数文章都提到了对rtsp进行转码处理后,再通过网页的形式播放支持的流媒体,但大多博主充分发挥了“拿来主义”,却并未进行验证,导致我们在按部就班的时候没法实现我们需要的,在经过了不断地试错之后,现总结出以下的流程,也希望大家能少走弯路。 监控直播采用了FFMPEG转码->Nginx提供rtmp/hls服务->videojs网页解码播放的整体思路。 1.首先需要安装nginx以及对应的nginx的rtmp模块nginx-rtmp-module-master。 我们采用的是源码安装,参考自 https://blog.csdn.net/liuchen1206/article/details/77771703 ,感谢渔村居士的脚本和软件。下载好该博文提供的脚本软件(可以从这里下载:http://download.csdn.net/download/liuchen1206/10167705),直接解压后执行脚本就可以实现ngnix以及相关组件的安装。软件包括:nginx,nginx-http-flv-module-master,nginx-rtmp-module-master,openssl

docker 搭建 RTMP 直播服务器

纵饮孤独 提交于 2019-11-30 18:51:49
环境搭建 docker pull alfg/nginx-rtmp docker run -it \ -p 1935:1935 \ -p 8080:80 \ --name nginx-rtmp \ -h nginx-rtmp \ alfg/nginx-rtmp 推流 到这个网站 https://obsproject.com/ 下载 obs,并设置推流地址为: rtmp://123.56.135.201:1935/stream 观看直播 代码放到web服务器下(不能放本地) <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta http-equiv="X-UA-Compatible" content="ie=edge" /> <title></title> <link href="http://cdn.bootcss.com/video.js/6.0.0-RC.5/alt/video-js-cdn.min.css" rel="stylesheet" /> </head> <body> <video id="hls-video" width="300"