最近在做关于视频平台的直播和点播功能,服务端使用的是SRS版本,计划手机APP使用PLDroidPlayer来通过http-flv的方式实现视频的直播和点播,Web端可以使用flv.js。目前手机端没有什么问题,介绍下使用html5页面方式通过http-flv来进行视频的直播和点播,直播和点播都使用flv。

1、在点播的时候,使用yamdi对flv视频文件添加关键帧,然后将视频文件存储在nginx服务器上,同样将html页面存储在nginx的目录下,具体代码如下:

flvVod.html
<!DOCTYPE html>
<html>
<head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"><title>flv.js demo</title><style>.mainContainer {display: block;width: 1024px;margin-left: auto;margin-right: auto;
}.urlInput {display: block;width: 100%;margin-left: auto;margin-right: auto;margin-top: 8px;margin-bottom: 8px;
}.centeredVideo {display: block;width: 100%;height: 576px;margin-left: auto;margin-right: auto;margin-bottom: auto;
}.controls {display: block;width: 100%;text-align: left;margin-left: auto;margin-right: auto;
}
</style>
</head><body><div class="mainContainer"><video id="videoElement" class="centeredVideo" controls autoplay width="1024" height="576">Your browser is too old which doesn't support HTML5 video.</video></div><br><div class="controls"><!--<button onclick="flv_load()">加载</button>--><button onclick="flv_start()">开始</button><button onclick="flv_pause()">暂停</button><button onclick="flv_destroy()">停止</button><input style="width:100px" type="text" name="seekpoint" /><button onclick="flv_seekto()">跳转</button></div><script src="flv.min.js"></script>    <script>var player = document.getElementById('videoElement');if (flvjs.isSupported()) {var flvPlayer = flvjs.createPlayer({type: 'flv',url: 'http://192.168.0.100/flv/fkdwc_with_meta.flv'});flvPlayer.attachMediaElement(videoElement);flvPlayer.load(); //加载}function flv_start() {player.play();}function flv_pause() {player.pause();}function flv_destroy() {player.pause();player.unload();player.detachMediaElement();player.destroy();player = null;}function flv_seekto() {player.currentTime = parseFloat(document.getElementsByName('seekpoint')[0].value);}</script>
</body></html>

2、在直播的时候,如果使用的是SRS2版本时候,会遇到CORS 头缺少 'Access-Control-Allow-Origin'问题,通过在SRS上查找问题,发现是SRS2版本上不支持第三方网站的跨域访问,在SRS3版本上已有修复w->header()->set("Access-Control-Allow-Origin", "*");,直播的html代码如下:

flvLive.html
<!DOCTYPE html>
<html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"><title>flv.js demo</title><style>.mainContainer {display: block;width: 1024px;margin-left: auto;margin-right: auto;}.urlInput {display: block;width: 100%;margin-left: auto;margin-right: auto;margin-top: 8px;margin-bottom: 8px;}.centeredVideo {display: block;width: 100%;height: 576px;margin-left: auto;margin-right: auto;margin-bottom: auto;}.controls {display: block;width: 100%;text-align: left;margin-left: auto;margin-right: auto;margin-top: 8px;margin-bottom: 10px;}.logcatBox {border-color: #CCCCCC;font-size: 11px;font-family: Menlo, Consolas, monospace;display: block;width: 100%;text-align: left;margin-left: auto;margin-right: auto;}</style>
</head><body><div class="mainContainer"><video name="videoElement" class="centeredVideo" id="videoElement" controls width="1024" height="576" autoplay>Your browser is too old which doesn't support HTML5 video.</video></div><script src="flv.1.5.0.js"></script><script>if (flvjs.isSupported()) {startVideo()}function startVideo(){var videoElement = document.getElementById('videoElement');var flvPlayer = flvjs.createPlayer({type: 'flv',isLive: true,hasAudio: true,hasVideo: true,enableStashBuffer: true,url: 'http://10.139.19.55:18080/live/livestreams.flv'});flvPlayer.attachMediaElement(videoElement);flvPlayer.load();flvPlayer.play();}videoElement.addEventListener('click', function(){alert( '是否支持点播视频:' + flvjs.getFeatureList().mseFlvPlayback + ' 是否支持httpflv直播流:' + flvjs.getFeatureList().mseLiveFlvPlayback )})function destoryVideo(){flvPlayer.pause();flvPlayer.unload();flvPlayer.detachMediaElement();flvPlayer.destroy();flvPlayer = null;}function reloadVideo(){destoryVideo()startVideo()}</script></body></html>

直播效果页面如下:

3、设备侧推流代码如下:

ffmpeg -re -i fkdwc.flv -vcodec copy -acodec copy -f flv -y rtmp://10.139.19.55/live/livestreams

html页面通过flv.js实现视频监控直播和点播功能。相关推荐

  1. 如何实现web浏览器无插件播放视频监控直播?

    很多年前,监控视频的直播只能够进行单一的服务器传输,而如今,很多网站已经可以观看视频直播了,不过大多网站观看视频直播的时候还是需要下载插件,有时候就会碰到系统不兼容.版本不对应等问题,那么能不能实现w ...

  2. flv.js播放视频时遇到的问题

    文章目录 前言 一.报错 二.原因 三.方案 前言 rtsp流通过ffmpeg+nginx-http-flv转成rtmp以及http-flv流,并通过flv.js在页面播放,带有音频的流出现播放不了问 ...

  3. 调用flv.js显示视频报错

    flv.js开源地址:https://www.bootcdn.cn/flv.js/ 代码 <video class="video" id="videoElement ...

  4. 视频列表html页面,vue + video.js实现视频列表页(多个视频)

    vue + video.js实现视频列表页 vue项目中做一个视频列表页,本来用原生video标签来实现,由于考虑到手机浏览器兼容问题,找了很多插件,最后决定用video.js这个插件来实现.Vide ...

  5. 使用flv.js实现视频直播

    一.磨刀(准备工具) 1.下载安装 nginx:http://nginx.org/en/download.html 2.下载安装 livego:https://github.com/gwuhaolin ...

  6. 实现摄像头在内网、外网、gb28181 实现 “视频监控/直播” 的常用几种方式

    对于新手来说,实现摄像头远程视频监控(包括直播.回放.云台.录像云存储.截图操作等)有哪些常用的方案,头脑很模糊,或者网上找到了很多资料,不知道这些资料是属于哪一种方案,可以满足自己的需求! 对于我来 ...

  7. 实现摄像头在内网、外网、GB28181实现“视频监控/直播”的常用几种方式

    作者 :Eric 对于新手来说,实现摄像头远程视频监控(包括直播.回放.云台.录像云存储.截图操作等)有哪些常用的方案,头脑很模糊,或者网上找到了很多资料,不知道这些资料是属于哪一种方案,可以满足自己 ...

  8. 如何使用iOS实现视频的直播、点播、缓存?-HTTP Live Streaming (HLS)

    本文接 <如何使用iOS实现<芈月传>的直播.点播?-HTTP Live Streaming (HLS)(一)> HLS-Demo地址:https://github.com/y ...

  9. 基于flv.js的视频自动播放

    1: html <video class="video-content" id="video">您的浏览器不支持 HTML5 video! < ...

  10. ffmpeg RSTP基于Html5视频监控直播 工业设备健康度检测应用

    设备管理健康系统,用于设备维护管理业务和状态在线集中监测,以达到如下目的. 建立设备树型结构.构建功能位置与技术属性相结合的设备主数据结构编码体系,建立完备的设备信息台账,提供连续使用历史记录,完善预 ...

最新文章

  1. python小工具封装_python接口自动化(二)——封装需要用到的工具类
  2. RIP协议与OSPF协议与BGP协议
  3. python print 的使用方法
  4. dfs-Rank the Languages
  5. sublimelinter-php 错误代码提示
  6. 面向服务的分析与设计原理
  7. rosserial_java_[学习笔记]Rosserial实现Windows-ROS交互操作(1)
  8. MyBatis-Plus_查询进阶01
  9. ABBYY FineReader PDF for Mac(PDF转换工具)
  10. 服务器备份文件bak怎么打开,bak文件怎么打开?打开bak文件的方法
  11. 2020年度20多款主流数据库重大更新及技术要点回顾
  12. Debian启动自定义桌面
  13. 关于TR1900错误的一些解决方法(引用冯哥)
  14. LAIC2022之犯罪事实实体识别(基于飞桨UIE+半监督)
  15. 跨平台应用开发进阶(十五) :uni-app实现全项目字体替换
  16. 太香了!墙裂推荐 6 个Python数据分析神器!!
  17. spring AOP依赖配置大全
  18. ARI聚类效果评价指标
  19. 会python_20小时学会Python,可能吗?
  20. 对比UTF-8为什么GBK在国内更常用?

热门文章

  1. wamp5多站点配置教程
  2. 字符串数组(String []) 去掉重复值的方法
  3. 打印机是共享的计算机显示脱机,win7系统连接网络共享打印机时出现脱机提示如何解决【图文】...
  4. 怎么把PWM信号转为模拟量
  5. ubuntu20.04下opencv4.4编译、给图片加中文标注及tensorflow的问题记录、ubuntu下使用cv::text::OCRTesseract模块字符识别
  6. 嵌入式计算机与pc机区别,嵌入式计算机与PC机的区别是什么?
  7. 项目经验怎么写HTML,简历中的项目经验怎么写
  8. rancher添加私有仓库_在Rancher2中部署Docker-Registry仓库服务
  9. wingide python_WingIDE下载|Wingware Python WingIDE汉化中文版6.0 下载_当游网
  10. linux下装go环境