同步操作将从 长春市我们俩文化传播有限公司/TXPLiveServer流媒体服务器 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
原名:流媒体拉流服务器(TXPPullServer),随着各位支持的深入,增加了很多功能。现在已经不单单是推流服务器了,同时兼备了推拉流的业务
新功能:2.2 支持阿里oss
主要功能
系统只支持转成m3u8格式,m3u8格式适合android和ios播放,rmtp部分手机机型播放有限制
npm install
//配置 config.js
node test.js //检查配置
npm run test
npm start //运行api服务 npm run live //运行推拉流服务器,如不需要推拉流服务可不运行
./流媒体拉流服务器POSTMAN测试(可导入)是一个postman文件,可导入,内部有所有接口测试数据
POST请求,为JSON体
{
"code": "200",
"data": {}, //返回值
"msg": "code == 200 ? null : 错误提示"
}
错误码 | 意义 |
---|---|
200 | 正确 |
444 | 密钥错误,配置 ./config apiServer.publicKey 注意!! 是数组 |
500 | 程序错误 |
40500 | 程序错误 |
40501 | 系统仅支持MP4格式 |
40502 | 回调地址必须为URL |
40503 | 硬盘文件不存在 |
40504 | 下载错误或文件不存在,无法创建任务 |
40505 | 系统仅支持m3u8格式 |
40506 | 房间名称必须存在 |
40507 | 必须规定直播结束时间 |
GET /version 获取服务器版本号
GET /hls
POST /update multipart/form-data方式上传
{
"code": "200",
"data": {
"liveAddress": "http://127.0.0.1:8080/2021/06/23/16244291330001079509548/162442913300010795095480.m3u8",
"hdAddress": "http://127.0.0.1:8080/2021/06/23/16244291330001079509548/162442913300010795095481.m3u8",
"cover": [
"http://127.0.0.1:8080/2021/06/23/16244291330001079509548/881045828.jpg",
"http://127.0.0.1:8080/2021/06/23/16244291330001079509548/262820368.jpg"
]
},
"msg": null
}
启动方式:
npm run live
相关配置
//推流服务器相关配置
live:{
//拉流服务端口地址 推流上来后,通过这个接口拉流 例如 http://192.168.1.179:8000/live/自己定义的密钥 可获取到直播流 m3u8地址
port:8000,
//直播缓存地址
mediaroot:path.resolve(__dirname,'./live/media/'),
//推流服务器配置
rtmp:{
port: 1935, //推流推这个端口!! rtmp://192.168.1.179:1935/live/自己定义的密钥
chunk_size: 60000,
gop_cache: true,
ping: 60,
ping_timeout: 30
}
}
通过API进行推流录制
录制完成后,会像回调地址GET发送相关录制的文件URI位置
{
//回调中你自定义的所有数据
id: '1',
//服务器硬盘地址
diskuri: '/Users/wos/Desktop/live-server/mediaDisk/2021/06/26/162467712400085134759/162467712400085134759.mp4',
//网络MP4地址
neturi: 'http://127.0.0.1:8080/2021/06/26/162467712400085134759/162467712400085134759.mp4',
//时间戳
t: '1624677138000'
}
录制并不生成M3U8文件,用户可根据回调自行判断是否生成m3u8文件或封面
2.0版本推拉流地址是公开的,其他用户可以通过拉流地址计算推流地址,在2.1版本中加入推拉流鉴权的功能
如需开启推流加密,配置config.js中 live.secret = true
入参:
http://localhost:8080/liveSign?endTimestamp=1624701820&roomName=wos
出参
{
"code": "200",
"data": {
"sign": "1624701820-81be5df8e39a40a0602490e74cb3d517"
},
"msg": null
}
推流地址就是
rtmp://ip:1935/live/wos?sign=1624701820-81be5df8e39a40a0602490e74cb3d517
如需关闭大屏数据展示接口,请使用nginx反向代理8000后,自定义过滤
location ~ / {
if ( $query_string ~* ^(.*)?s=/admin ){
return 555;
}
}
...
本地生成临时文件,上传OSS,返回OSS地址。
配置 config.js
//2.2 添加OSS支持
oss:{
//是否启用oss,默认不启用
status: false,
//详见:https://help.aliyun.com/document_detail/31837.htm?spm=a2c4g.11186623.2.2.23d05338O2uqCX#concept-zt4-cvy-5db
region: 'oss-cn-beijing',
accessKeyId:'LTAI4G32qvTi4yJp23ZRW8bQCL7E',
accessKeySecret:'UhXlGGAoy32qPSJ3GdYNW2N9wuK3ZYWZjr',
bucket:"test",
domain:"http://test.oss-cn-beijing.aliyuncs.com"
},
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。