[开源]致力于一个可商用 功能丰富、高性能、高可扩展的流媒体服务

开源系统分类系统
2026-06-28 09:00 4 次浏览 • 0 次下载 0KB
[开源]致力于一个可商用 功能丰富、高性能、高可扩展的流媒体服务

一、开源项目简介

SimpleMediaServer

介绍

旨在开发一个可商用的,功能丰富、高性能、高可扩展的流媒体服务。支持RTSP、RTMP、WEBRTC、GB28181、HTTP-FLV、HLS、JT1078等协议。各个协议可以单独剥离出来,相互独立;也可以互相转换协议。 本项目基于c++11开发,目前只支持Linux。

二、开源协议

使用MulanPSL-2.0开源协议

三、界面展示

软件架构

1.协议转封装流程

图片

四、功能概述

功能

功能

  • RTSP

    1. 作为服务端,支持客户端推拉流
    2. 作为客户端,支持向其他服务器推拉流
    3. 支持rtp over udp、tcp
    4. 支持rtp封装ps
    5. 支持超大rtp(type=huge或者type=hugePs)
    6. 支持加速pts,降低延时(type=fastPts)
    7. 支持264/265/vp8/vp9, aac/g711/opus
  • RTMP

    1. 作为服务端,支持客户端推拉流
    2. 作为客户端,支持向其他服务器推拉流
    3. 支持enhanced h265(type=enhanced)
    4. 支持加速pts,降低延时(type=fastPts)
    5. 支持264/265/av1/vp9, aac/g711/opus
  • GB28181

    1. 作为服务端,支持客户端推拉流
    2. 作为客户端,支持向其他服务器推拉流
    3. 支持rtp over udp、tcp
  • WEBRTC

    1. 作为服务端,支持客户端拉流
    2. 作为服务端,支持客户端推流
    3. 作为客户端,向其他服务器推拉流
    4. 支持whip/whep
    5. 支持264/265/vp8/vp9/av1, g711/opus
  • HTTP-FLV

    1. 作为服务端,支持客户端拉流
    2. 作为客户端,向其他服务拉流
  • HLS

    1. 作为服务端,支持客户端拉流
    2. 作为客户端,向其他服务拉流
    3. 支持实时hls(本人魔改的hls;Android微信可播;)
    4. 支持ll-hls
  • HTTP-TS

    1. 作为服务端,支持客户端拉流
    2. 作为客户端,向其他服务拉流
  • HTTP-PS

    1. 作为服务端,支持客户端拉流
    2. 作为客户端,向其他服务拉流
  • SRT

    1. 作为服务端,支持客户端推拉流
    2. 作为客户端,向其他服务推拉流
  • EHOME2

    1. 作为服务端,支持客户端推流(tcp)
  • HTTPS

    1. https协议拉流,访问api,下载文件
  • WEBSOCKET(ws/wss)

    1. 作为服务端,支持客户端拉流,如flv,ts等
    2. 作为服务端,接收对讲数据
  • JT1078

    1. 作为服务端,支持客户端推流
    2. 支持级联
    3. 支持对讲
  • 点播

    1. ps
    2. MP4
  • 录制

    1. ps
    2. MP4

五、技术选型

安装教程

  1. mkdir build
  2. cd build
  3. cmake ..
  4. make -j4
  5. 如果需要ssl功能,将conf下的sms.com.crt和sms.com.key,拷贝到build目录
  6. 如果需要前端页面实例,拷贝research到build目录,http的根目录默认是build
  7. gcc版本最好大于8
  8. 如果不想编译源码,进群找我要二进制执行文件

使用说明

  1. 检查配置,如 server.conf,将其拷贝到build目录
  2. 运行程序:./SimpleMediaServer
  3. 用ffmpeg推流:ffmpeg -re -i inputfile -c copy -f flv rtmp://ip:port/live/test
  4. 用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目录