EasyDSS高性能RTMP、HLS(m3u8)、HTTP-FLV、RTSP流媒体服务器版本打包方法介绍
EasyDSS流媒体解决方案是一套集流媒体点播、转码、管理、直播、录像、检索、时移回看于一体的一套完整的商用流媒体解决方案。EasyDSS软件以压缩包的形式提供给客户使用,同时支持Linux和 Windows两个平台。其中Linux平台打成tar包, Windows平台打成zip包。通过 Node.JS 运行打包脚本, 实现了打包过程的自动化。
本篇博文将从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 information
Commands:
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流媒体服务器的视频直播录像、检索、回放方案
需求背景: 近期遇到客户反馈对于直播摄像机录像功能是有一定的需求点的,其实EasyDarwin团队早就研发出对应功能,只是用户对于产品没有足够了解,因此本篇将对录像功能来做一次介绍. 首先,录像就是对 ...
- EasyDSS高性能RTMP、HLS(m3u8)、HTTP-FLV、RTSP流媒体服务器与EasyDSS流媒体解决方案的不同
背景分析 众所周知,立足于视频软件的开发,我们的产品很多.经常有客户问到我们产品的差别以及某个产品在某个系统架构中的具体定位,因此我想通过一系列的博客说明一下,不同产品之间的区别,以及在具体架构中自身 ...
- EasyDSS高性能RTMP、HLS(m3u8)、HTTP-FLV、RTSP流媒体服务器解决方案之Nodejs调用bat或sh脚本
关于EasyDSS流媒体服务器 EasyDSS商用流媒体服务器解决方案是一套集流媒体点播.转码与管理.直播.录像.检索.时移回看于一体的一套完整的商用流媒体服务器解决方案,EasyDSS高性能RTMP ...
- EasyDSS高性能RTMP、HLS(m3u8)、HTTP-FLV、RTSP流媒体服务器web前端:vue组件之间的传值,父组件向子组件传值
前端方面,EasyDSS流媒体服务器与EasyNVR有着根本的不同.EasyNVR使用的是传统的js来进行开发,而EasyDSS使用的是webpack+vue来进行开发的,了解vue+webpack的 ...
- EasyDSS高性能RTMP、HLS(m3u8)、HTTP-FLV、RTSP流媒体服务器前端源码重构(六)- webpack-dev-server 自适应支持手机端访问
关于EasyDSS EasyDSS商用流媒体服务器解决方案是一套集流媒体点播.转码与管理.直播.录像.检索.时移回看于一体的一套完整的商用流媒体服务器解决方案,EasyDSS高性能RTMP流媒体服务器 ...
- 推荐:实现RTSP/RTMP/HLS/HTTP协议的轻量级流媒体框架,支持大并发连接请求
推荐一个比较好用的流媒体服务开源代码: ZLMediaKit: 实现RTSP/RTMP/HLS/HTTP协议的轻量级流媒体框架,支持大并发连接请求 https://gitee.com/xiahcu/Z ...
- Nginx搭建flv mp4流媒体服务器[转]
Nginx搭建flv mp4流媒体服务器 作者:二蛋 时间:December 1, 2014 分类:Note 环境:Centos 6.4 32bit 一.安装依赖包 1.安装zlib wget htt ...
- (转)CentOS6.5安装Darwin Streaming Server搭建RTSP流媒体服务器
参考: 1,CentOS6.5安装Darwin Streaming Server搭建RTSP流媒体服务器 http://www.yimiju.com/articles/567.html
- EasyDSS高性能RTMP、HLS(m3u8)、FLV、RTSP流媒体服务器运行遇到getpwnam(_xxxxx_)错误的解决办法
EasyDSS RTMP流媒体服务器是什么? EasyDarwin如何支持点播和RTMP/HLS直播?EasyDSS! getpwnam("xxxxx") 近期有EasyDSS流媒 ...
随机推荐
- 【转】JAVA接口自动化测试之一个测试方法对应多条测试数据的实现方式
一.痛点:一条测试数据对应一个测试方法 前面的章节中我们已经写代码实现了登录接口的处理调用,但是一个接口往往是需要多条测试用例才能完整的覆盖到每一种情况. 针对于单接口多条测试用例需要执行的情况,该如 ...
- JS实现俄罗斯方块
在80后.90后的儿时记忆里,俄罗斯方块是必备的消遣小游戏,它的玩法非常简单基本大家都懂,但如何用编程语言开发一款儿时同款「俄罗斯方块」,恐怕知道的同学就很少啦. 位置掩码和旋转掩码 俄罗斯方块游戏中 ...
- html中定位详解
首先,我们来讨论一下html中共有几种定位方式:静态定位(static),相对定位(relative),绝对定位(absolute,fixed).其中fixed又叫固定定位,它是属于绝对定位的一种,但 ...
- flask实战-个人博客-使用工厂函数创建程序实例 --
使用工厂函数创建程序实例 使用蓝本还有一个重要的好处,那就是允许使用工厂函数来创建程序实例.在OOP(Object-Oriented Programming,面向对象编程)中,工厂(factory)是 ...
- 1.使用FluentNHibemate 操作数据库,添加映射到数据库
1.创建个控制台工程MySQLDateBase 2.工程中添加Fluent NHibernate映射工具 点击管理NuGet程序包,点击浏览,搜索Fluent NHibernate 点击安装..安装完 ...
- VoIP基本原理
VoIP基本原理 VoIP是通过Internet等互联网络传递语音信息的,主要包括终端设备.网关.网守和网络管理等部分.网关负责提供IP网络和传统的PSTN接口. VoIP的基本原理:通过语音压缩算法 ...
- 【大数据】虚拟机网络配置-CentOS
cd /etc/sysconfig/network-scripts/ vi ifcfg-enoXXXX vi /etc/hostname
- 牛客挑战赛32 E. 树上逆序对
对于一对 $(x, y)$,能成为逆序对的取决于绝对值大的那个数的符号.假如 $a[x] > a[y]$,当 $a[x]$ 为正时,不管 $a[y]$ 取不取负号都比 $a[x]$ 小.当 $a ...
- 0.学习springmvc补充
一.我的截图中的程序错误: 其中的路径写的是:"/user/testString" 这样写会错误当tomcat中配置的根目录为"/"或” “成功,但当配置为”x ...
- 17-网页,网站,微信公众号基础入门(使用Adobe Dreamweaver CS6 制作网页/网站)
https://www.cnblogs.com/yangfengwu/p/11351182.html https://www.cnblogs.com/yangfengwu/p/11200767.htm ...