[开源]致力于一个可商用 功能丰富、高性能、高可扩展的流媒体服务
开源系统分类系统
![[开源]致力于一个可商用 功能丰富、高性能、高可扩展的流媒体服务](https://yy123.ink/api/img/1782608443854-xojo3b.jpg)
一、开源项目简介
SimpleMediaServer
介绍
旨在开发一个可商用的,功能丰富、高性能、高可扩展的流媒体服务。支持RTSP、RTMP、WEBRTC、GB28181、HTTP-FLV、HLS、JT1078等协议。各个协议可以单独剥离出来,相互独立;也可以互相转换协议。 本项目基于c++11开发,目前只支持Linux。
二、开源协议
使用MulanPSL-2.0开源协议
三、界面展示
软件架构
1.协议转封装流程

四、功能概述
功能
功能
-
RTSP
-
作为服务端,支持客户端推拉流 -
作为客户端,支持向其他服务器推拉流 -
支持rtp over udp、tcp -
支持rtp封装ps -
支持超大rtp(type=huge或者type=hugePs) -
支持加速pts,降低延时(type=fastPts) -
支持264/265/vp8/vp9, aac/g711/opus -
RTMP
-
作为服务端,支持客户端推拉流 -
作为客户端,支持向其他服务器推拉流 -
支持enhanced h265(type=enhanced) -
支持加速pts,降低延时(type=fastPts) -
支持264/265/av1/vp9, aac/g711/opus -
GB28181
-
作为服务端,支持客户端推拉流 -
作为客户端,支持向其他服务器推拉流 -
支持rtp over udp、tcp -
WEBRTC
-
作为服务端,支持客户端拉流 -
作为服务端,支持客户端推流 -
作为客户端,向其他服务器推拉流 -
支持whip/whep -
支持264/265/vp8/vp9/av1, g711/opus -
HTTP-FLV
-
作为服务端,支持客户端拉流 -
作为客户端,向其他服务拉流 -
HLS
-
作为服务端,支持客户端拉流 -
作为客户端,向其他服务拉流 -
支持实时hls(本人魔改的hls;Android微信可播;) -
支持ll-hls -
HTTP-TS
-
作为服务端,支持客户端拉流 -
作为客户端,向其他服务拉流 -
HTTP-PS
-
作为服务端,支持客户端拉流 -
作为客户端,向其他服务拉流 -
SRT
-
作为服务端,支持客户端推拉流 -
作为客户端,向其他服务推拉流 -
EHOME2
-
作为服务端,支持客户端推流(tcp) -
HTTPS
-
https协议拉流,访问api,下载文件 -
WEBSOCKET(ws/wss)
-
作为服务端,支持客户端拉流,如flv,ts等 -
作为服务端,接收对讲数据 -
JT1078
-
作为服务端,支持客户端推流 -
支持级联 -
支持对讲 -
点播
-
ps -
MP4 -
录制
-
ps -
MP4
五、技术选型
安装教程
-
mkdir build -
cd build -
cmake .. -
make -j4 -
如果需要ssl功能,将conf下的sms.com.crt和sms.com.key,拷贝到build目录 -
如果需要前端页面实例,拷贝research到build目录,http的根目录默认是build -
gcc版本最好大于8 -
如果不想编译源码,进群找我要二进制执行文件
使用说明
-
检查配置,如 server.conf,将其拷贝到build目录 -
运行程序:./SimpleMediaServer -
用ffmpeg推流:ffmpeg -re -i inputfile -c copy -f flv rtmp://ip:port/live/test -
用vlc播放
-
rtsp地址:rtsp://ip:port/live/test -
rtsp地址:rtsp://ip:port/live/test?type=ps(rtp封装ps) -
rtmp地址:rtmp://ip:port/live/test -
http-flv地址:http://ip:port/live/test.flv -
hls地址:http://ip:port/live/test.m3u8 -
实时hls地址: http://ip:port/live/test.sms.m3u8 -
webrtc获取sdp:http://ip:port/api/v1/rtc/play -
srt: srt://ip:port?steamid=|path:/live/test|request:pull|
文档
各模块的使用文档,参考Doc目录
评论