旨在开发一个可商用的,功能丰富、高性能、高可扩展的流媒体服务。支持RTSP、RTMP、WEBRTC、GB28181、HTTP-FLV、HLS、JT1078等协议。各个协议可以单独剥离出来,相互独立;也可以互相转换协议。 项目基于c++11开发,目前只支持Linux。
有兴趣一起开发开源项目或者想学习音视频技术的朋友欢迎进群(qq 362049849)。 动动小手帮忙点个star,谢谢。
-
RTSP
- 作为服务端,支持客户端推拉流
- 作为客户端,支持向其他服务器推拉流
- 支持rtp over udp、tcp
- 支持rtp封装ps
-
RTMP
- 作为服务端,支持客户端推拉流
- 作为客户端,支持向其他服务器推拉流
-
GB28181
- 作为服务端,支持客户端推拉流
- 作为客户端,支持向其他服务器推拉流
- 支持rtp over udp、tcp
-
WEBRTC
- 作为服务端,支持客户端拉流
- 作为服务端,支持客户端推流
- 作为客户端,向其他服务器推拉流
-
HTTP-FLV
- 作为服务端,支持客户端拉流
- 作为客户端,向其他服务拉流
-
HLS
- 作为服务端,支持客户端拉流
- 作为客户端,向其他服务拉流
- 支持实时hls(本人魔改的hls;Android微信可播;)
-
HTTP-TS
- 作为服务端,支持客户端拉流
- 作为客户端,向其他服务拉流
-
HTTP-PS
- 作为服务端,支持客户端拉流
- 作为客户端,向其他服务拉流
-
SRT
- 作为服务端,支持客户端推拉流
- 作为客户端,向其他服务推拉流
-
EHOME2
- 作为服务端,支持客户端推流(tcp)
-
HTTPS
- https协议拉流,访问api,下载文件
-
WEBSOCKET(ws/wss)
- 作为服务端,支持客户端拉流,如flv,ts等
-
JT1078
- 作为服务端,支持客户端推流
-
点播
- ps
- MP4
-
录制
- ps
- MP4
- mkdir build
- cd build
- cmake ..
- make -j4
- 如果需要ssl功能,将conf下的sms.com.crt和sms.com.key,拷贝到build目录
- 如果需要前端页面实例,拷贝research到build目录,http的根目录默认是build
- 检查配置,如 server.conf,将其拷贝到build目录
- 运行程序:./SimpleMediaServer
- 用ffmpeg推流:ffmpeg -re -i inputfile -c copy -f flv rtmp://ip:port/live/test
- 用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|