flv拉流在项目中如何使用(一)

简介: 最近做的项目里面用到通过前端flv.js拉流播放直播视频(实时视频);这里给大家介绍一下流程,首先是前端发送请求后端给返回一个直播流指定地址,然后前端把这个地址通过flv处理放到video容器中进行播放;

一.项目需求:

最近做的项目里面用到通过前端flv.js拉流播放直播视频(实时视频);这里给大家介绍一下流程,首先是前端发送请求后端给返回一个直播流指定地址,然后前端把这个地址通过flv处理放到video容器中进行播放;


二.flv相关知识点

1.直播与点播:直播就是具有实时性的视频,比如我们天天看的直播,他都是现场直播的 直播有一个东西叫流数据,这个数据是实时的,他可以通过http请求拿到,也可以用websocket拿,看需求。点播就是已经整理好的视频我们直接放到video标签就可以了,一般是mp4格式,我们只要放在video标签里面浏览器就会给我们处理好一切。

2.选flv的原因:前面也说了,直播需要实时性,延迟当然越短越好,决定视频延迟的因素有好多,其中一条就是视频本身的大小,我们最常见的mp4格式的视频,对前端来说mp4兼容性是最好的,但是mp4有一个缺点就是体积比较大,解析会复杂一些,在直播场景就不能直接用mp4了,而flv不一样,他的头部文件非常小,结构简单,解析就相对比较快,在直播场景很有优势。

3.除了flv之外还有其他格式:

          1)RTM:底层是基于TCP协议的,在浏览器端依赖Flash 目前浏览器是禁用Flash的, 所以不适合

          2)HTTP-FLV:基于HTTP流式IO传输FLV,依赖浏览器支持播放FLV

          3)HLS:全名Http Live Streaming,苹果提出基于HTTP的流媒体传输协议。HTML5可以直接打开播放 对应的视频格式是m3u8,看过快播的兄弟应该了解这个格式,他有个致命的缺点延迟高

          4)RTP:基于UDP协议,延迟1秒,浏览器不支持 基本不用

4.flv又分为HTTP-FLV和Websocket-FLV,他们有啥区别呢

        前面我们也提到过直播流就是实时传输,需要持续的推拉流,流数据又是实时性德,遇到这种情况我们肯定想到的是websocket 因为它就是长连接,前后端实时互传。

        HTTP-Flv用的是fetch请求方法,他也是基于http的,他是一种前端向后端发送请求,获取指定的资源 他可以说是一种黑科技,他就是天生处理流数据的,性能很好,使用起来也很方便。


三.下面我们根据官网来建一个flv小demo.


官网地址:https://github.com/Bilubili/flv.js/

import flvjs from "flv.js"
if (flvjs.insupported()) {
   // 获取视频容器video的dom
   var videoEl = document.getElementById('videoEl');
   // 配置flv播放器
   var flvPlayer = flvjs.createPlayer({
        type: "flv", // 媒体类型 flv或者mp4 默认flv
        cors: true, // 是否跨域 用canvas截图就需要跨域
        hasAudio: false, //是否有音频
        hasVideo: true, // 是否有视频
        // 指定流地址 可以http(https)或者ws(wss)
        url: 'http://test.stream.com/fetch-media.flv',
        isLive: true, //是否是直播流 默认true
    })
      // 挂载流 将拉到的流放进视频容器中
      flvPlayer.attachMediaElement(videoEl);
      // 加载流
      flvPlayer.load();
      // 播放流
      flvPlayer.play();
  }

相关文章
|
索引
UniApp 组件 u-tabs 详细讲解
UniApp 组件 u-tabs 详细讲解
3141 1
ECharts 柱状图横轴(X轴)文字内容显示不全
ECharts 柱状图横轴(X轴)文字内容显示不全
2534 0
|
存储 编解码 算法
音视频入门基础理论知识
音视频入门基础理论知识
1371 0
|
Web App开发 编解码 前端开发
VUE网页实时播放海康、大华摄像头RTSP视频流完全方案,300毫秒延迟,支持H.265、可多路同时播放
在遍地都是摄像头的今天,往往需要在各种信息化、数字化、可视化B/S系统中集成实时视频流播放等功能,海康、大华、华为等厂家摄像头或录像机等设备一般也都遵循监控行业标准,支持国际标准的主流传输协议RTSP输出,而Chrome、Firefox、Edge等新一代浏览器从2015年开始取消了NPAPI插件技术支持导致RTSP流无法直接原生播放了
4094 0
|
3月前
|
机器学习/深度学习 传感器 监控
基于 YOLOv8 的智能火灾识别系统设计与实现— 从数据集训练到 PyQt5 可视化部署的完整工程实践
本项目设计并实现了一款基于YOLOv8的智能火灾识别系统,融合深度学习与计算机视觉技术,支持图片、视频、摄像头等多源输入。采用PyQt5开发图形界面,具备高精度、实时性强、易部署等优点,适用于智慧消防、工业巡检等场景,提供完整代码与模型权重,真正实现开箱即用。
268 5
基于 YOLOv8 的智能火灾识别系统设计与实现— 从数据集训练到 PyQt5 可视化部署的完整工程实践
|
7月前
|
供应链 搜索推荐 API
1688平台提供的基于图像识别的商品搜索服务
1688图片搜索API基于图像识别技术,支持通过图片查找同款或相似商品,适用于电商选品、供应链管理等场景。开发者需注册账号获取权限,并上传合规图片调用接口。返回数据包含商品信息及相似度评分,助力高效决策。
|
Web App开发 移动开发 编解码
浏览器播放RTSP视频流几种解决方案
Streamedian 提供了一种“html5_rtsp_player + websock_rtsp_proxy”的技术方案,可以通过html5的video标签直接播放RTSP的视频流。
2612 0
|
运维 监控 Linux
服务器管理面板大盘点: 8款开源面板助你轻松管理Linux服务器
在数字化时代,服务器作为数据存储和计算的核心设备,其管理效率与安全性直接关系到业务的稳定性和可持续发展。随着技术的不断进步,开源社区涌现出众多服务器管理面板,这些工具以其强大的功能、灵活的配置和友好的用户界面,极大地简化了Linux服务器的管理工作。本文将详细介绍8款开源的服务器管理面板,包括Websoft9、宝塔、cPanel、1Panel等,旨在帮助运维人员更好地选择和使用这些工具,提升服务器管理效率。
|
机器学习/深度学习 并行计算 PyTorch
从零开始下载torch+cu(无痛版)
这篇文章提供了一个详细的无痛版教程,指导如何从零开始下载并配置支持CUDA的PyTorch GPU版本,包括查看Cuda版本、在官网检索下载包名、下载指定的torch、torchvision、torchaudio库,并在深度学习环境中安装和测试是否成功。
从零开始下载torch+cu(无痛版)
|
Web App开发 安全 Linux
FFmpeg开发笔记(二十六)Linux环境安装ZLMediaKit实现视频推流
《FFmpeg开发实战》书中介绍轻量级流媒体服务器MediaMTX,但其功能有限,不适合生产环境。推荐使用国产开源的ZLMediaKit,它支持多种流媒体协议和音视频编码标准。以下是华为欧拉系统下编译安装ZLMediaKit和FFmpeg的步骤,包括更新依赖、下载源码、配置、编译、安装以及启动MediaServer服务。此外,还提供了通过FFmpeg进行RTSP和RTMP推流,并使用VLC播放器拉流的示例。
2451 3
FFmpeg开发笔记(二十六)Linux环境安装ZLMediaKit实现视频推流

热门文章

最新文章