Skip to content
/ tms Public
forked from xeon2007/Trs

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

Notifications You must be signed in to change notification settings

pooyaw/tms

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

About

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

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 95.8%
  • HTML 2.7%
  • Other 1.5%