[Open Source] Dedicated to building a commercially viable streaming media service with rich features, high performance, and high scalability
Open SourceClassification Systems
![[Open Source] Dedicated to building a commercially viable streaming media service with rich features, high performance, and high scalability](https://yy123.ink/api/img/1782608443854-xojo3b.jpg)
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

4. Feature Overview
Function
Function
-
RTSP
-
As a server, supports client-side stream pulling and pushing. -
As a client, supports pulling and pushing streams to other servers. -
Supports RTP over UDP and TCP. -
Supports PS encapsulation for RTP. -
Supports oversized RTP packets (type=huge or type=hugePs). -
Supports accelerated PTS to reduce latency (type=fastPts). -
Supports H.264/H.265/VP8/VP9 and AAC/G711/Opus. -
RTMP
-
As a server, supports client-side stream pulling and pushing. -
As a client, supports pulling and pushing streams to other servers. -
Supports enhanced H.265 (type=enhanced). -
Supports accelerated PTS to reduce latency (type=fastPts). -
Supports H.264/H.265/AV1/VP9 and AAC/G711/Opus. -
GB28181
-
As a server, supports client-side stream pulling and pushing. -
As a client, supports pulling and pushing streams to other servers. -
Supports RTP over UDP and TCP. -
WEBRTC
-
As a server, supports client-side stream pulling. -
As a server, supports client-side stream pushing. -
As a client, supports pulling and pushing streams to other servers. -
Supports WHIP/WHEP. -
Supports H.264/H.265/VP8/VP9/AV1 and G711/Opus. -
HTTP-FLV
-
As a server, supports client-side stream pulling. -
As a client, supports pulling streams from other services. -
HLS
-
As a server, supports client-side stream pulling. -
As a client, supports pulling streams from other services. -
Supports real-time HLS (a customized version of HLS; playable in WeChat on Android). -
Supports LL-HLS. -
HTTP-TS
-
As a server, supports client-side stream pulling. -
As a client, supports pulling streams from other services. -
HTTP-PS
-
As a server, supports client-side stream pulling. -
As a client, supports pulling streams from other services. -
SRT
-
As a server, supports client-side stream pulling and pushing. -
As a client, supports pulling and pushing streams to other services. -
EHOME2
-
As a server, supports client-side stream pushing (TCP). -
HTTPS
-
Supports stream pulling over HTTPS, API access, and file downloads. -
WEBSOCKET(ws/wss)
-
As a server, supports client-side stream pulling, such as FLV and TS. -
As a server, supports receiving intercom data. -
JT1078
-
As a server, supports client-side stream pushing. -
Supports cascading. -
Supports intercom. -
Video on Demand (VOD)
-
ps -
MP4 -
Recording
-
ps -
MP4
5. Tech Stack
Installation Guide
-
mkdir build -
cd build -
cmake .. -
make -j4 -
If SSL functionality is required, copy sms.com.crt and sms.com.key from the conf directory to the build directory. -
If you need a frontend page example, copy research to the build directory. The default HTTP root directory is build. -
The GCC version should preferably be greater than 8. -
If you do not want to compile the source code, join the group and contact me for the binary executable.
Usage instructions
-
Check the configuration, such as server.conf, and copy it to the build directory. -
Run the program: ./SimpleMediaServer -
Push streams using FFmpeg: ffmpeg -re -i inputfile -c copy -f flv rtmp://ip:port/live/test -
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.
下载地址 免费
评论