All Projects → xiaozhihong → tms

xiaozhihong / tms

Licence: other
tms(toy media server) is a toy media server for myself learning media develop. Just for fun.

Programming Languages

C++
36643 projects - #6 most used programming language
HTML
75241 projects
Makefile
30231 projects
shell
77523 projects

Projects that are alternatives of or similar to tms

Srs
SRS is a simple, high efficiency and realtime video server, supports RTMP, WebRTC, HLS, HTTP-FLV, SRT and GB28181.
Stars: ✭ 16,734 (+57603.45%)
Mutual labels:  streaming, hls, rtmp, live-streaming, srt
cordova-plugin-tencent-liteav
A cordova plugin for video playing with Tencent's LiteAV SDK. Support RTMP/HLS/FLV/MP4.
Stars: ✭ 24 (-17.24%)
Mutual labels:  hls, livestream, rtmp, flv
Javelin
[Mirror] RTMP streaming server written in Rust
Stars: ✭ 77 (+165.52%)
Mutual labels:  hls, rtmp, live-streaming, rtmp-server
ZLMediaKit
WebRTC/RTSP/RTMP/HTTP/HLS/HTTP-FLV/WebSocket-FLV/HTTP-TS/HTTP-fMP4/WebSocket-TS/WebSocket-fMP4/GB28181/SRT server and client framework based on C++11
Stars: ✭ 7,790 (+26762.07%)
Mutual labels:  hls, rtmp, flv, srt
Monibuca
🧩 Monibuca is a Modularized, Extensible framework for building Streaming Server
Stars: ✭ 307 (+958.62%)
Mutual labels:  hls, livestream, rtmp, flv
Node Media Server
A Node.js implementation of RTMP/HTTP-FLV/WS-FLV/HLS/DASH/MP4 Media Server
Stars: ✭ 4,433 (+15186.21%)
Mutual labels:  hls, livestream, rtmp, flv
Livego
live video streaming server in golang
Stars: ✭ 7,312 (+25113.79%)
Mutual labels:  hls, livestream, rtmp, flv
Go Oryx
The go-oryx is SRS++, focus on real-time live streaming load-balancer.
Stars: ✭ 608 (+1996.55%)
Mutual labels:  hls, rtmp, live-streaming, rtmp-server
Blss
NGINX-based Live Media Streaming Server
Stars: ✭ 187 (+544.83%)
Mutual labels:  hls, livestream, rtmp, rtmp-server
Vidgear
A High-performance cross-platform Video Processing Python framework powerpacked with unique trailblazing features 🔥
Stars: ✭ 2,048 (+6962.07%)
Mutual labels:  streaming, hls, live-streaming
Red5 Server
Red5 Server core
Stars: ✭ 3,008 (+10272.41%)
Mutual labels:  streaming, flv, live-streaming
go srs
a rtmp server similar with srs but wrote by golang
Stars: ✭ 34 (+17.24%)
Mutual labels:  rtmp, rtmp-server, hls-live-streaming
srtdroid
Secure Reliable Transport (SRT) Protocol for Android
Stars: ✭ 35 (+20.69%)
Mutual labels:  streaming, live-streaming, srt
wsa
WSA(Websocket Streaming Agent) is a stream server target for mp4/h264 streaming over websocket
Stars: ✭ 35 (+20.69%)
Mutual labels:  streaming, hls, rtmp
srt2hls
Simple audio HLS streaming server based on Liquidsoap
Stars: ✭ 66 (+127.59%)
Mutual labels:  hls, srt, hls-live-streaming
Rtsp Simple Server
ready-to-use RTSP / RTMP server and proxy that allows to read, publish and proxy video and audio streams
Stars: ✭ 882 (+2941.38%)
Mutual labels:  streaming, rtmp, rtmp-server
browserLiveStream
Use webcam, browser and Node to stream live video. From api.video (https://api.video)
Stars: ✭ 141 (+386.21%)
Mutual labels:  streaming, hls, rtmp
Ffmpeg
Mirror of https://git.ffmpeg.org/ffmpeg.git
Stars: ✭ 27,382 (+94320.69%)
Mutual labels:  streaming, hls, rtmp
Nginx Vod Module
NGINX-based MP4 Repackager
Stars: ✭ 1,378 (+4651.72%)
Mutual labels:  streaming, hls, livestream
Haishinkit.swift
Camera and Microphone streaming library via RTMP, HLS for iOS, macOS, tvOS.
Stars: ✭ 2,237 (+7613.79%)
Mutual labels:  streaming, hls, rtmp

tms

tms(toy media server) is a toy media server for myself learning media develop.

Feature

  • publish media by rtmp
  • publish media by webrtc
  • publish media by srt
  • plya media by rtmp
  • play media by http-flv
  • play media by http-hls
  • play media by webrtc
  • play media by srt
  • media demux/remux, like rtmp(flv) to webrtc(rtp)
  • transcode
  • MCU
  • media server forward, current tms is only a single server node

Todo

  • sdp generater and sdp parser, instead of hardcode xxx.sdp
  • WebRTC adapt to different version of chrome
  • WebRTC adapt to different video encoder
  • friendly API

Bugs

There are many bugs in WebRTC, because the complexity.

Usage

Step 1: get source code

git clone https://github.com/HuyaJohn/tms.git
cd tms

Step 2: fetch depend

cd depend
./depend.sh

Step 3: build

cd ../src
make

Step 4: run

./tms -server_ip xxx.xxx.xxx.xxx

Example

1. publish rtmp using obs, play flv/hls/rtmp using vlc

publish rtmp using obs, I use host "hw.com" to hide my server ip for safety.

obs_publish_rtmp

play http-flv using vlc

vlc_play_flv

play hls using vlc

vlc_play_hls

play rtmp using vlc

vlc_play_rtmp

2. publish using chrome(WebRTC), play using chrome(WebRTC)

chrome publish vp9, I use host "hw.com" to hide my server ip for safety, and it's hardcode in sdp.

webrtc_publish_vp9

chrome play vp9

webrtc_play_vp9

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].