smart rtmpd 简介
smart_rtpmd 是一款用于直播,录播性能卓越的服务器。如果您不理解,可以理解为和 nginx-rtmp, srs ,并与此功能类似,特点是性能卓越,跨平台,无依赖,部署和维护十分方便,解压既能运行。
Smart RTMPD is a high-performance, easy-to-use, multi-system-supported and easy-to-maintain streaming media server. It supports multi-protocol push streaming and multi-protocol pull streaming.
nginx-rtmp, srs, zlm, smart_rtmpd
https://www.cnblogs.com/superconvert/p/18421322
smart web
smart web 属于 smart rtmpd 的姊妹版本,是 smart rtmpd 带上 web 管理功能的版本,功能更加强大,性能更加强劲,有进程守护功能,支持 H264(HEVC) 推流和拉流,支持远程配置,日志查看,转发配置,等诸多功能。
支持的操作系统有 windows10, centos8.5, ubuntu22.04, arm64 等系统。详情参考下述链接:
smart_web.md
预览版本敬请访问 http://dt4.8tupian.net/2/32453a2b500.pg3
whip/whep 进行 webrtc 的 OBS 推流,H5 拉流
whip_whep.md
说明
特点
- 性能是我们追求的目标,个人认为 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 下载地址
smart rtmpd 支持哪些音视频编码
| 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 |
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 |
| 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
最快部署
- 下载软件包,解压 rtmpd.zip, 解压后得到 windows 的 smart_rtmpd 服务器
- 运行 smart_rtmpd.exe 如下图,既表示成功

- 推流验证,运行 ffmpeg.exe ( Windows下的 ffmpeg.exe 下载地址:https://github.com/BtbN/FFmpeg-Builds/releases )

- 播流验证

例子 ( example )
推拉流
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(邮箱) |
[email protected] |
1号交流群(已经满): 
2号交流群(可以加): 
3号交流群(近乎满): 
嘻嘻1号流群(可加): 
download file or vod mode :
- you can put a video file into /vod directory, for example: test.mkv
- use player ffplay http://192.168.1.1:8080/vod/test.mkv
- you can make a sub directory in the /vod, for example: /vod/discovery
- put a video file into /vod/discovery directory, for example: space.mkv
- use player play it, ffplay http://192.168.1.1:8080/vod/discovery/space.mkv
nat map mode :

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:
... ...
<vhosts>
<vhost name="rtmp://www.qiyicc.com/live">
<forward rewrite="">192.168.1.2</forward>
</vhost>
</vhosts>
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!

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
... ...
... ...
<urls>
<url name="rtmp://www.qiyicc.com/live/sport">
<forward rewrite="rtmp://www.espn.com/live/sport">54.230.173.30:1935</forward>
<forward rewrite="rtmps://www.espn.com/live/sport">54.230.173.32:1935</forward>
<forward></forward>
</url>
</urls>
thirtpart user can play this stream.
this is call url forward!
good luck.

评论