1 Star 2 Fork 1

wwdragon / video-player-web

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
MIT

video-player-web

web 端直播流播放器,支持 H.264 和 H.265 编码格式的视频播放,目前仅验证过 RTSP 协议的视频流播放。

包含node + http-flvjessibuca + ws-flv两种实现方案

node + http-flv 方案

实现思路:起一个 Node 服务,用于将 RTMP 视频流转为 http-flv 视频流;然后借助 ffmpeg 工具将 RTSP 视频流转为 RTMP 视频流(转换流媒体的传输协议),可通过 ffmpeg 命令行或 node 包 fluent-ffmpeg 完成。最后在 web 页面借助 Flv.js 实时播放 http-flv 视频。

  • 命令行方式

    ffmpeg -i rtsp://127.0.0.1:8554/aa -vcodec -c copy -f flv rtmp://localhost:1935/live/test

这种方案适合播放 H.264 编码的 RTSP 视频流,如果播放 H.265 编码的视频流,则需要 ffmpeg 在 rtsp 转 rtmp 时进行编码转换(很占 CPU 和内存资源,不推荐),转为 H.264,因为 Adobe 的 Flv.js 工具仅支持解码 H.264 的 http-flv 视频流。

Usage

  1. 进入 player-base-node 目录

  2. 安装依赖 npm i

  3. 先后启动 rtmp2http 服务、rtsp2rmtp 服务(注意先后顺序)

    • npm run rtmp2http-serve

    • npm run rtsp2rtmp-serve 或者执行 ffmpeg 命令方式

  4. 打开 web video 页面

    npx http-server -d ./public,选择 http-flv.html 打开

jessibuca + ws-flv 方案

主要是借助强大的开源工具 Jessibuca H5 直播流播放器工具,然后后端配合将 RTSP 视频流转为为 ws-flv 视频流,前端只需传入后端提供的 ws-flv 地址即可。

Jessibuca 方案的底层实现原理是借助 wasm、ffmpeg,能同时支持直播 H.264 和 H.265 两种编码的视频流。

  • 优势:同时支持解码接收 http-flv、ws-flv 两种形式的音视频,H.264/H.265+AAC/PCMA/PCMU 流,WebGL 视频渲染,WebAudio 音频播放。

  • 劣势:相比 Flv.js 方案,比较占 CPU 和内存。如果仅需要支持 H.264 的音视频,建议采用前一种方案

Usage

  1. 进入 player-base-jessibuca 目录
  2. 安装依赖 npm i
  3. 启动服务 npm run serve
  4. 打开 web 页面, 填入 ws-flv 地址即可

参考资料

  1. H.265 编码视频在 web 网页实现无插件播放应该通过软解码还是硬解码
  2. 流媒体传输协议(rtp/rtcp/rtsp/rtmp/mms/hls)
  3. 音视频开发基础概述 - PCM、YUV、H264、常用软件介绍
  4. 一张图概括淘宝直播背后的前端技术
  5. ffmpeg 详细安装教程
  6. Github Jessibuca
MIT License Copyright (c) 2021 deiqao (chandq) chen Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

简介

web 端直播流播放器,支持 H.264 和 H.265 编码格式的视频播放,目前仅验证RTSP 协议的视频流 展开 收起
JavaScript 等 3 种语言
MIT
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
JavaScript
1
https://gitee.com/wwdragon/video-player-web.git
git@gitee.com:wwdragon/video-player-web.git
wwdragon
video-player-web
video-player-web
master

搜索帮助

53164aa7 5694891 3bd8fe86 5694891