diff --git a/README.md b/README.md index 573b2a3..ff794d2 100644 --- a/README.md +++ b/README.md @@ -156,8 +156,10 @@ https://github.com/superconvert/smart_rtmpd/blob/master/recording.md |WebChat(微信) |99766553 | |E-mail(邮箱) |cwf12345@sina.com | - 1号交流群(已经满): ![image](images/1号群.jpg) 2号交流群(可以加): ![image](images/2号群.jpg) - 3号交流群(近乎满): ![image](images/3号群.jpg) 嘻嘻1号流群(可加): ![image](images/嘻嘻1号群.jpg) + 1号交流群(已经满): ![image](images/1号群.jpg) + 2号交流群(可以加): ![image](images/2号群.jpg) + 3号交流群(近乎满): ![image](images/3号群.jpg) + 嘻嘻1号流群(可加): ![image](images/嘻嘻1号群.jpg) # download file or vod mode : diff --git a/README.md.bak b/README.md.bak new file mode 100644 index 0000000..573b2a3 --- /dev/null +++ b/README.md.bak @@ -0,0 +1,220 @@ +# smart rtmpd 简介 +smart_rtpmd 是一款用于直播,录播性能卓越的服务器。如果您不理解,可以理解为和 nginx-rtmp, srs ,并与此功能类似,特点是性能卓越,跨平台,无依赖,部署和维护十分方便,解压既能运行。 +smart rtmpd is a streaming media server. It can run on multiple systems ubuntu, centos, freebsd, windows & arm64. It is small, independent, easy to deploy, and has high performance. + +### 说明 +* 免费软件 ( 不开源 ) +* 允许商业应用 ( 保留我们的 logo 和 name ) +* 源码授权 [ 只限公司 ],可以联系我 + 微信: ![image](images/webchat.png) QQ: ![image](images/qq.jpg) + +### 特点 +* 性能是我们追求的目标,个人认为 smart_rtmpd 性能相对不错 +* 部署简单,解压及运行,无需过度配置 +* 兼容性特强,windows, linux, freebsd, arm64 主流系统,都满足运行条件 +* 软件大小相对比较小,即使是嵌入式设备也能满足布署 +* 支持 URL 重新机制,针对各种灵活的业务需求,提供支撑 +* 支持 web 开发接口 +* 支持集群,级联 + +### 支持哪些 OS +* Windows +* Linux ( Ubuntu, CentOS ) +* FreeBSD +* ARM64 +* Embedded system +其中 Linux, FreeBSD 版本 支持多线程 ( multithread ) 和协程 ( coroutines ) +对于 docker 版本,直接拷贝 smart_rtmpd 到 docker 里面,直接运行即可 +理论上即使是自定制 linux 操作系统都能正常运行 smart_rtmpd + +### 益处 +最大的益处就是极大的节约您的运营成本,维护成本,迁移成本, +* 软件布署极其简单,解压即可运行,无第三方库依赖,解决了部署繁琐问题,兼容性问题,以及后续升级维护兼容性的问题 +* 高性能是 smart rtmpd 追求的目标,尽量降低硬件要求,挖据硬件性能,极大的节约运营成本 +* 配置通用化,windows 平台的配置可以轻松拷贝到 linux, arm, freebsd 反之亦然,数据格式统一化,满足迁移需求 +* 灵活的布署模式,支持单服务器,集群,级联等多种模式,满足各种业务需求 ( rewrite ),也满足大规模布署的需要 +* 支持热插拔,最大限度的保证系统运营状态下,平滑升级或维护系统 +* 支持鉴权接口与验证,满足灵活的业务需求 + +# smart rtmpd 下载地址 +|站点 |地址 | +|---|---| +|official |http://www.qiyicc.com/download/rtmpd.zip | +|github |https://github.com/superconvert/smart_rtmpd | +|gitee |https://gitee.com/superconvert/smart_rtmpd | + +# smart rtmpd 支持哪些音视频编码 + +### support media codec + +| video codec | audio codec | +|---|---| +|h264, h265|aac| +|h264, h265|pcmu/pcma| +|vp8 ( webrtc )|opus ( webrtc )| +|h264 ( webrtc )|pcmu/pcma ( webrtc )| + +### support protocol +| client | server | protocol | +|---|---|---| +|srt |smart_rtmpd |rtmp[s], http[s]-flv, ws(s)-flv, http[s]-hls, https[s]-dash, rtsp[s], webrtc, srt| +|rtmp[s] |smart_rtmpd |rtmp[s], http[s]-flv, ws(s)-flv, http[s]-hls, https[s]-dash, rtsp[s], webrtc, srt| +|rtsp[s] |smart_rtmpd |rtmp[s], http[s]-flv, ws(s)-flv, http[s]-hls, https[s]-dash, rtsp[s], webrtc, srt| + +### input & output detail + +| input | video | audio | output | rtmp | rtsp( udp/tcp ) | flv( http/websocket ) | hls | dash | srt | webrtc( video baseline level 3.1 ) | +|---|---|---|---|---|---|---|---|---|---|---| +|rtmp |h264 |pcma/pcmu | |yes |yes |yes |only video |onlyvideo |only video |h264/vp8, pcma/pcmu | +|rtmp |h264 |aac | |yes |yes |yes |yes |yes |yes |h264/vp8, aac - opus | +|rtmp |hevc |pcma/pcmu | |yes |yes |yes |only |video |only video |only video |only audio = pcma/pcmu | +|rtmp |hevc |aac | |yes |yes |yes |yes |yes |yes |only audio = aac - opus | +|rtsp |h264 |pcma/pcmu | |yes |yes |yes |only video |only video |only video | h264/vp8, pcma/pcmu | +|rtsp |h264 |aac | |yes |yes |yes |yes |yes |yes |h264/vp8, aac - opus | +|rtsp |hevc |pcma/pcmu | |yes |yes |yes |only video |only video |only video |only audio = pcma/pcmu | +|rtsp |hevc |aac | |yes |yes |yes |yes |yes |yes |only audio = aac - opus | +|srt |h264 |aac | |yes |yes |yes |yes |yes |yes |h264/vp8, aac - opus | +|srt |hevc |aac | |yes |yes |yes |yes |yes |yes |only audio = aac - opus | + + +### URL description +|URL |description |isok | +|---|---|---| +|rtmp://192.168.1.1:1935/live/stream |live stream|yes | +|rtmp://192.168.1.1:1935/rec/stream |record stream|yes | +|rmtp://192.168.1.1:1935/sky/camera |bad format|no | +|rtsp://192.168.1.105:9554/live/music |live stream|yes | +|rtsp://192.168.1.105:9554/rec/music |live stream|yes | +|rtsp://192.168.1.105:9554/class/music |bad format|no | +|srt://192.168.1.105:9000/live/space |record stream|yes | +|srt://192.168.1.105:9000/rec/space |record stream|yes | +|srt://192.168.1.105:9000/record/space |bad format|no | + +only support "live" or "rec" app tag, but no support "sky", "class" or "record" other app tag !!! + + +# 怎么使用 smart rtmpd + +### 最快部署 +1. 下载软件包,解压 rtmpd.zip, 解压后得到 windows 的 smart_rtmpd 服务器 +2. 运行 smart_rtmpd.exe 如下图,既表示成功 +![image](images/smart_rtmpd_run.png?raw=true) +3. 推流验证,运行 ffmpeg.exe ( Windows下的 ffmpeg.exe 下载地址:https://github.com/BtbN/FFmpeg-Builds/releases ) +![image](images/smart_rtmpd_push.png?raw=true) +4. 播流验证 +![image](images/smart_rtmpd_play1.png?raw=true) +![image](images/smart_rtmpd_play2.png?raw=true) + +### 例子 ( example ) +|说明 |链接 | +|---|---| +|推拉流 ( pull/pull stream ) |https://github.com/superconvert/smart_rtmpd/tree/master/example| +|web接口 ( web interface ) |https://github.com/superconvert/smart_rtmpd/blob/master/web_dev.md | +|auth接口 ( web authentication ) |https://github.com/superconvert/smart_rtmpd/blob/master/web_auth.md | +|集群 |待续 ... | +|webrtc |https://github.com/superconvert/smart_rtmpd/blob/master/webrtc.md | +|webrtc im |https://github.com/superconvert/smart_rtmpd/blob/master/webrtc_im.md | +|录像 ( recording ) |https://blog.csdn.net/freeabc/article/details/103360588 | +|nat模式 ( nat mode ) |https://blog.csdn.net/freeabc/article/details/113446129 | +|重写 ( rewrite ) |待续 ... | +|vod配置 ( vod config)|待续 ... | + +### 推拉流 +https://blog.csdn.net/freeabc/article/details/117403471?spm=1001.2014.3001.5501 + +# build ffmpeg support rtmps, see this link: +https://www.iiwnz.com/compile-ffmpeg-with-rtmps-for-facebook/ +you can play rtmps with vlc player. + +# smart rtmpd recorder stream +https://github.com/superconvert/smart_rtmpd/blob/master/recording.md + +# smart rtmpd 商业支持 +* 担心软件免费突然中断? +这个您放心,我们原来是 IM 的, 那个几乎不挣钱,我们到现在还在坚持, +大家可以从网上搜一下 FreeCommunication ,存在多少年了 ( 18 年了 )。 +毕竟这个我们的每个项目工程非常庞大,我们也投入很多精力和心血做好这 +个事情,我相信我们要做优秀的产品,优秀的体验,是一种爱好,也是一种事业, +不会突然中断的,况且有这么多热爱的朋友大力支持! + +* 遇到问题怎么办? +我们一般不想收这个辛苦钱,但你们如果有技术支持的需要,我们还是提供技术支持的,这个 +也请您放心,也支持软件定制 ( OEM )。如果您热心支持我们,我们表示感谢也非常乐意。 + +* 你们做这个的目的不为钱为什么? +谁说我们不为钱,任何软件的初衷都是为了钱,精确的说价值。我们也不例外,肯定想挣钱。 +但国内靠这个赚钱太难太难,我们基本上也是不挣钱。我们既然免费了,也不想靠这个挣钱。 +我们的目的就是让软件名气更大,能拉到融资,有了融资,软件就更强大。也希望热爱的朋友 +参与进来,形成一个生态圈,只要能力被认可,后续看发展而定,肯定有回报。 + +# 联系方式 +| name |description| +|---|---| +|QQ |99766553 | +|QQ 群 |190583317, 300474021, 271191746 | +|微信群 |由于微信限制,首先加我微信,邀请进群 | +|WebChat(微信) |99766553 | +|E-mail(邮箱) |cwf12345@sina.com | + + 1号交流群(已经满): ![image](images/1号群.jpg) 2号交流群(可以加): ![image](images/2号群.jpg) + 3号交流群(近乎满): ![image](images/3号群.jpg) 嘻嘻1号流群(可加): ![image](images/嘻嘻1号群.jpg) + + +# download file or vod mode : + +1. you can put a video file into /vod directory, for example: test.mkv +2. use player ffplay http://192.168.1.1:8080/vod/test.mkv +3. you can make a sub directory in the /vod, for example: /vod/discovery +4. put a video file into /vod/discovery directory, for example: space.mkv +5. use player play it, ffplay http://192.168.1.1:8080/vod/discovery/space.mkv + +more web interface, see this link : https://my.oschina.net/u/4249347/blog/5529704 + +# nat map mode : + + ![image](images/nat.png) + + outer user can push stream rtmp://61.180.166.16/live/stream, inner user can play with rtmp://192.168.1.1/live/stream + +# build cluster or cdn distribution : + + if you have two server + server A (intranet ip: 192.168.1.1, domain: www.qiyicc.com) + server B (intranet ip: 192.168.1.2, domain: www.qiyicc.com) + + you can modify policy.xml file in server A: + ... ... + + + 192.168.1.2 + + + + if you push stream rtmp://www.qiyicc.com/live/stream to server A, the server A will forward this stream to server B, + if you push stream rtmp://www.qiyicc.com/live/sport to server A, it is also forard this stream to server B. + user can pull url rtmp://www.qiyicc.com/live/stream or rtmp://www.qiyicc.com/live/sport from server B, + for many server repeat this proccess or each other forward. + this is call app forward! + +![image](images/app%20forward.png) + +# forward thirtparty : + + if you have rmtp url rtmp://www.qiyicc.com/live/sport, you cank distribution this stream to other service. + for example : rtmp://www.espn.com/live/sport, thirtypart server address : 54.230.173.30 + + you can modify policy.xml file + ... ... + ... ... + + + 54.230.173.30:1935 + 54.230.173.32:1935 + + + + + thirtpart user can play this stream. + this is call url forward! + good luck. +![image](images/url%20forward.png) diff --git "a/images/1\345\217\267\347\276\244.jpg" "b/images/1\345\217\267\347\276\244.jpg" index c336801..535e0f5 100644 Binary files "a/images/1\345\217\267\347\276\244.jpg" and "b/images/1\345\217\267\347\276\244.jpg" differ diff --git "a/images/2\345\217\267\347\276\244.jpg" "b/images/2\345\217\267\347\276\244.jpg" index b20ad89..c5aa9f0 100644 Binary files "a/images/2\345\217\267\347\276\244.jpg" and "b/images/2\345\217\267\347\276\244.jpg" differ diff --git "a/images/3\345\217\267\347\276\244.jpg" "b/images/3\345\217\267\347\276\244.jpg" index c696b1a..c2baa21 100644 Binary files "a/images/3\345\217\267\347\276\244.jpg" and "b/images/3\345\217\267\347\276\244.jpg" differ diff --git "a/images/\345\230\273\345\230\2731\345\217\267\347\276\244.jpg" "b/images/\345\230\273\345\230\2731\345\217\267\347\276\244.jpg" index e8fa8d3..3d2ae42 100644 Binary files "a/images/\345\230\273\345\230\2731\345\217\267\347\276\244.jpg" and "b/images/\345\230\273\345\230\2731\345\217\267\347\276\244.jpg" differ