[Open Source] Dedicated to building a commercially viable streaming media service with rich features, high performance, and high scalability

Open SourceClassification Systems
2026-06-28 09:00 5 次浏览 • 0 次下载 0KB
[Open Source] Dedicated to building a commercially viable streaming media service with rich features, high performance, and high scalability

1. Project Overview

SimpleMediaServer

Introduction

Designed to develop a commercially viable streaming media service featuring rich functionality, high performance, and high scalability. Supports protocols such as RTSP, RTMP, WEBRTC, GB28181, HTTP-FLV, HLS, and JT1078. Each protocol can be independently separated and operated, or converted between different protocols. This project is developed using C++11 and currently supports Linux only.

2. Open Source License

Using MulanPSL-2.0 open source protocol

3. Screenshots

Software Architecture

1. Protocol Remuxing Workflow

Image

4. Feature Overview

Function

Function

  • RTSP

    1. As a server, supports client-side stream pulling and pushing.
    2. As a client, supports pulling and pushing streams to other servers.
    3. Supports RTP over UDP and TCP.
    4. Supports PS encapsulation for RTP.
    5. Supports oversized RTP packets (type=huge or type=hugePs).
    6. Supports accelerated PTS to reduce latency (type=fastPts).
    7. Supports H.264/H.265/VP8/VP9 and AAC/G711/Opus.
  • RTMP

    1. As a server, supports client-side stream pulling and pushing.
    2. As a client, supports pulling and pushing streams to other servers.
    3. Supports enhanced H.265 (type=enhanced).
    4. Supports accelerated PTS to reduce latency (type=fastPts).
    5. Supports H.264/H.265/AV1/VP9 and AAC/G711/Opus.
  • GB28181

    1. As a server, supports client-side stream pulling and pushing.
    2. As a client, supports pulling and pushing streams to other servers.
    3. Supports RTP over UDP and TCP.
  • WEBRTC

    1. As a server, supports client-side stream pulling.
    2. As a server, supports client-side stream pushing.
    3. As a client, supports pulling and pushing streams to other servers.
    4. Supports WHIP/WHEP.
    5. Supports H.264/H.265/VP8/VP9/AV1 and G711/Opus.
  • HTTP-FLV

    1. As a server, supports client-side stream pulling.
    2. As a client, supports pulling streams from other services.
  • HLS

    1. As a server, supports client-side stream pulling.
    2. As a client, supports pulling streams from other services.
    3. Supports real-time HLS (a customized version of HLS; playable in WeChat on Android).
    4. Supports LL-HLS.
  • HTTP-TS

    1. As a server, supports client-side stream pulling.
    2. As a client, supports pulling streams from other services.
  • HTTP-PS

    1. As a server, supports client-side stream pulling.
    2. As a client, supports pulling streams from other services.
  • SRT

    1. As a server, supports client-side stream pulling and pushing.
    2. As a client, supports pulling and pushing streams to other services.
  • EHOME2

    1. As a server, supports client-side stream pushing (TCP).
  • HTTPS

    1. Supports stream pulling over HTTPS, API access, and file downloads.
  • WEBSOCKET(ws/wss)

    1. As a server, supports client-side stream pulling, such as FLV and TS.
    2. As a server, supports receiving intercom data.
  • JT1078

    1. As a server, supports client-side stream pushing.
    2. Supports cascading.
    3. Supports intercom.
  • Video on Demand (VOD)

    1. ps
    2. MP4
  • Recording

    1. ps
    2. MP4

5. Tech Stack

Installation Guide

  1. mkdir build
  2. cd build
  3. cmake ..
  4. make -j4
  5. If SSL functionality is required, copy sms.com.crt and sms.com.key from the conf directory to the build directory.
  6. If you need a frontend page example, copy research to the build directory. The default HTTP root directory is build.
  7. The GCC version should preferably be greater than 8.
  8. If you do not want to compile the source code, join the group and contact me for the binary executable.

Usage instructions

  1. Check the configuration, such as server.conf, and copy it to the build directory.
  2. Run the program: ./SimpleMediaServer
  3. Push streams using FFmpeg: ffmpeg -re -i inputfile -c copy -f flv rtmp://ip:port/live/test
  4. Play using VLC.
  • RTSP URL: rtsp://ip:port/live/test
  • RTSP URL: rtsp://ip:port/live/test?type=ps (RTP encapsulated in PS)
  • RTMP URL: rtmp://ip:port/live/test
  • HTTP-FLV URL: http://ip:port/live/test.flv
  • HLS URL: http://ip:port/live/test.m3u8
  • Real-time HLS URL: http://ip:port/live/test.sms.m3u8
  • Retrieve WebRTC SDP: http://ip:port/api/v1/rtc/play
  • srt: srt://ip:port?steamid=|path:/live/test|request:pull|

Documentation

For usage documentation of each module, refer to the Doc directory.

#1
资源直链https://gitee.com/inyeme/simple-media-server
去下载
星河码客

发现和分享优质开源项目,传承互联网精神,为开发者服务。

关于本站

联系我们

微信/广告合作:ITcloub (备注星河码客)

免责声明:本站资源版权归原作者所有,仅供学习与交流。如有侵权,请通过「关于我们 - 侵权投诉」联系删除。

Powered by Nuxt · Deployed on Cloudflare