EasyDSS高性能RTMP、HLS(m3u8)、HTTP-FLV、RTSP流媒体服务器版本打包方法介绍
背景说明
EasyDSS流媒体解决方案是由安徽旭帆信息科技有限公司自主研发的一套集流媒体点播、转码、管理、直播、录像、检索、时移回看于一体的一套完整的商用流媒体解决方案。EasyDSS软件以压缩包的形式提供给客户使用,同时支持Linux和 Windows两个平台。其中Linux平台打成tar包, Windows平台打成zip包。通过 NodeJS 运行打包脚本, 实现了打包过程的自动化。
本篇博文将从EasyDSS版本打包方式展开说明
1、打包核心库 archiver
用到一个打包的核心库 archiverjs, 这个 archiver 库, 支持 glob 表达式, 可以非常方便的指定 需要打包哪些文件和目录 和 排除哪些文件和目录. 关于 arhiver 对 glob 的支持, 可以点击这里查看. archiver 功能强大到可以指定工作目录 cwd
, 给压缩包指定前缀目录 prefix
.
2、 字节大小格式化输出
pretty-bytes 一个将字节大小格式化成 human-readable 的库. 方便在压缩过程中显示进度信息.
3、 commander 命令行工具
commander 结合 tj 创作的这个命令行工具, 快速生成一个打包的命令, 并将打包的格式做成命令行选项.
以下是执行 node release.js -h
输出
Usage: release [options] [command]Options:-V, --version output the version number
-F, --format [tar,zip] archive format [tar]
-h, --help output usage informationCommands:clean
4、 完整的打包脚本
const archiver = require('archiver');
const prettyBytes = require('pretty-bytes');
const os = require('os');
const path = require('path');
const fs = require('fs');
const program = require('commander');var dir = path.basename(__dirname);function doArchive() {switch (program.format) {case 'zip':var output = fs.createWriteStream(`${__dirname}/${dir}.zip`);var archive = archiver('tar', { zlib: { level: 9 } })break;case 'tar':var output = fs.createWriteStream(`${__dirname}/${dir}.tar.gz`);var archive = archiver('tar', { gzip: true });break;default:console.log('unknow format');program.help();break;}output.on('close', function () {console.log(os.EOL + prettyBytes(archive.pointer()) + ' total bytes');});archive.on('warning', function (err) {if (err.code === 'ENOENT') {console.log(err);} else {throw err;}}).on('error', function (err) {throw err;}).on('progress', data => {process.stdout.clearLine();process.stdout.cursorTo(0);process.stdout.write(`${prettyBytes(data.fs.processedBytes)} / ${prettyBytes(data.fs.totalBytes)}`);})archive.pipe(output);archive.glob(`**`, {cwd: path.resolve(__dirname, "dist"),dot: true,ignore: ['logs/**/*', 'temp/**/*']},{prefix: dir})console.log(`do ${program.format} ...`);archive.finalize();
}program.version(require('./package.json').version).option('-F, --format [tar,zip]', 'archive format [tar]', 'tar')program.command('clean').action(function () {if(fs.existsSync(path.resolve(__dirname, `${dir}.zip`))){fs.unlinkSync(path.resolve(__dirname, `${dir}.zip`));}if(fs.existsSync(path.resolve(__dirname, `${dir}.tar.gz`))){fs.unlinkSync(path.resolve(__dirname, `${dir}.tar.gz`));}console.log('clean done.');process.exit();
}) program.command('*', '', {noHelp: true
}).action(function () {program.help();
})program.parse(process.argv);doArchive();
适用场景
1、现场直播
摄像机或其它设备实时采集到的现场画面,通过编码器或编码软件推送到直播服务器分发,用户即可通过PC、手机、平板电脑等多种终端实时观看现场直播内容。常用于年会、发布会、政企会议等的网络直播。
2、网络电视
实现传统电视台的网络播出,支持多平台多终端的直播观看及时移回看。
3、远程监控
配合网络摄像头可实现远程视频监控,终端用户可以通过PC、手机、平板电脑等多种终端实时观看远程画面,并可以把监控画面录制下来随时回看或分享。广泛应用于宝宝在线、家居安全、公共安防等方向。
4、实时课堂
应用于远程课堂直播,让不在现场的人也能实时学习优质课程。支持时移,可以随时回看任意时间的课程。
5、科研方向
应用于农业、养殖业、科学实验等跨区域场景研究。
关于EasyDSS
EasyDSS流媒体解决方案采用业界优秀的流媒体框架模式设计,服务运行轻量、高效、稳定、可靠、易维护,支持RTMP直播、RTMP推送、HTTP点播、HTTP-FLV直播、HLS直播,并支持关键帧缓冲,画面秒开等多种特性,能够接入Web、Android、iOS、H5、微信等全平台客户端,是移动互联网时代贴近企业点播/直播需求的一款接地气的流媒体服务器,配套OBS、EasyRTMP等直播推流工具以及EasyPlayer等网络播放器,可以形成一套完整的视频直播、录播解决方案,满足用户在各种行业场景的流媒体业务需求。
EasyDSS高性能RTMP、HLS(m3u8)、HTTP-FLV、RTSP流媒体服务器版本打包方法介绍相关推荐
- EasyDSS高性能RTMP/HLS(m3u8)/HTTP-FLV/RTSP流媒体服务器EasyDSS出现加密机授权异常问题如何解决?
EasyDSS流媒体服务器提供一站式的转码.点播.直播.时移回放服务,简化了开发和集成的工作. 其中,点播功能主要包含:上传.转码.分发.直播功能,主要包含:直播.录像,直播支持RTMP输入,RTMP ...
- EasyDSS高性能RTMP、HLS(m3u8)、HTTP-FLV、RTSP流媒体服务器视频录像、检索、回放方案
需求背景 近期遇到客户反馈对于直播摄像机录像功能是有一定的需求点的, 其实EasyDarwin团队早就研发出对应功能,只是用户对于产品没有足够了解,因此本篇将对录像功能来做一次介绍. 简介 首先,录像 ...
- 开源RTMP组件EasyPusher-Android+EasyDarwin实现APP推流给RTSP流媒体服务器
场景 Windows上搭建Nginx RTMP服务器并使用FFmpeg实现本地视频推流: Windows上搭建Nginx RTMP服务器并使用FFmpeg实现本地视频推流_BADAO_LIUMANG_ ...
- linux搭建rtsp服务端,手把手搭建RTSP流媒体服务器
0.引言 本文主要讲解如何搭建RTSP流媒体服务器的过程,使用开源项目ZLMediaKit.通过这个开源项目,推RTSP流到服务器,然后拉流端可以拉取RTSP.RTMP等流. ZLMediaKit码云 ...
- linux vlc流媒体服务器,vlc media server rtsp 流媒体服务器搭建成功经验分享
vlc 由videolan.org 出品,开源免费的一款本地和网络播放器,支持个音视频格式非常多,还可以用来搭建 rtsp 流媒体服务器,非常好用,支持的平台很多:windows.mac.linux都 ...
- EasyDSS高性能RTMP、HLS(m3u8)、HTTP-FLV、RTSP流媒体服务器解决方案之CDN内容分发网络
背景分析 EasyDSS流媒体解决方案提供一站式的转码.点播.直播.录像.检索.时移回放服务,极大地简化了开发和集成的工作,并且EasyDSS支持多种特性,完全能够满足企业视频信息化建设方面的需求.其 ...
- EasyDSS高性能RTMP、HLS(m3u8)、HTTP-FLV、RTSP流媒体服务器前端源码重构(四)- webpack + video.js 打造流媒体服务器前端
EasyPlayer播放器是基于EasyDSS流媒体服务器视频强大的后台管理能力,提供视频点播和直播播放能力的强大播放载体.流畅稳定的播放性能,集广告植入.数据监测等功能于一身,为开发者提供端到端的一 ...
- EasyDSS高性能RTMP、HLS(m3u8)、HTTP-FLV、RTSP流媒体服务器启用https服务申请免费证书...
背景分析 目前想在 web 上使用 HTTPS 的话, 你需要获得一个证书文件, 该证书由一个受浏览器信任的公司所签署. 一旦你获得了它, 你就在你的 web 服务器上指定其所在的位置, 以及与你关联 ...
- EasyDSS高性能RTMP、HLS(m3u8)、HTTP-FLV、RTSP流媒体服务器出现no compatible source was found for this media问题的解决...
背景分析 EasyDSS流媒体解决方案总体可划分成三个部分:前端视频源设备(PC.手机.摄像机)流媒体数据获取并即时回传.流媒体服务器端直播和录像与回放.客户端直播播放与录像检索回放.前端推流我们使用 ...
最新文章
- 项目案例:Java多线程批量拆分List导入数据库
- VTK:几何对象之ParametricObjects
- C语言中时间的基本用法
- 【NLP】Google BERT详解
- string拼接_String拼接操作-的优化
- [Ajax] jQuery中的Ajax -- 03-搜索框提示效果
- python创建画布与子图_python实现在一个画布上画多个子图
- SQL Server 2008将数据导出到SQL脚本文件
- c语言 ++ --运算符_C / C ++中的按位运算符
- iOS navigationBar导航栏底部与self.view的分界线的隐藏
- pycharm添加conda虚拟环境
- 数据库设计(一)——数据库设计
- 【Android】Android签名:pem和pk8转化为keystore,jks
- 【Android Jetpack】彻底弄清Navigation的BackStack如何变化
- Nexus war 下载
- 去除浏览器自动填充密码功能
- 关闭Vue Eslint语法检查
- 单工通信模式、半双工通信模式和全双工通信模式的区别
- ESP32 擦除flash
- Google map API3 标注、添加事件、地图查询