登录
/
注册
首页
论坛
其它
首页
科技
业界
安全
程序
广播
Follow
关于
签到
每天签到奖励2-10圆
导读
排行榜
TG频道
发帖说明
登录
/
注册
账号
自动登录
找回密码
密码
登录
立即注册
搜索
搜索
关闭
CSDN热搜
程序园
精品问答
技术交流
资源下载
本版
帖子
用户
软件
问答
教程
代码
写记录
VIP申请
VIP网盘
网盘
联系我们
发帖说明
每日签到
道具
勋章
任务
淘帖
动态
分享
留言板
导读
设置
我的收藏
退出
腾讯QQ
微信登录
返回列表
首页
›
业界区
›
业界
›
FFmpeg开发笔记(八十二)使用国产直播服务器smart_rtmp ...
FFmpeg开发笔记(八十二)使用国产直播服务器smart_rtmpd执行推流操作
[ 复制链接 ]
龙骋唧
3 小时前
《FFmpeg开发实战:从零基础到短视频上线》一书的“10.2.2 FFmpeg向网络推流”介绍了轻量级流媒体服务器MediaMTX,通过该工具可以测试RTSP/RTMP等流媒体协议的推拉流。不过MediaMTX的功能比较简单,也不方便个性化定制,如今出现了国产的直播服务器smart_rtpmd,更适合日常开发调试使用。 smart_rtpmd是一款用于直播且录播性能卓越的流媒体服务器,相当于nginx+rtmp,或者是简化版的SRS和ZLMediaKit。smart_rtpmd开源且跨平台,支持Windows、Linux(含Ubuntu、CentOS等)、FreeBSD、ARM64等操作系统。smart_rtpmd支持的视频格式包括H.264、H.265、VP8等,支持的音频格式包括AAC、OPUS等。
smart_rtpmd的源码托管地址为https://github.com/superconvert/smart_rtmpd(星星数0.6k),国内的镜像地址为https://gitee.com/superconvert/smart_rtmpd,最新版本是2025年3月发布的smart_rtpmd_v2025.03.10,可见该框架的源码更新十分及时。
smart_rtpmd不依赖其他第三方库,下载后的压缩包文件解压即可运行。以Windows系统的smart_rtpmd程序为例,它的解压步骤说明如下:
1、下载smart_rtpmd的源码得到压缩包smart-rtmpd-master.zip。
2、解压smart-rtmpd-master.zip包,找到smart-rtmpd-master目录下的压缩包rtmpd.zip。
3、解压rtmpd.zip包,找到rtmpd目录下的压缩包smart-rtmpd-win.zip。
4、解压smart-rtmpd-win.zip包,得到smart_rtmpd_win目录,,里面的smart_rtmpd.exe便是可运行于Windows系统的smart_rtpmd服务器程序。
双击smart_rtmpd.exe弹出smart_rtpmd管理界面,单击右下角的启动按钮如下图所示,即可开启smart_rtpmd的直播推流服务。
由日志可见,smart_rtpmd开启了下列五项流媒体服务:
1、侦听1935端口的RTMP服务,对应的流媒体播放地址是rtmp://127.0.0.1:1935/live/stream;
2、侦听8554端口的RTSP服务,对应的流媒体播放地址是rtsp://127.0.0.1:8554/live/stream;
3、侦听8080端口的HTTP(HLS)服务,对应的流媒体播放地址是http://127.0.0.1:8080/live/stream.m3u8;
4、侦听8888端口的TURN.TCP(WebRTC)服务;
5、侦听9000端口的SRT服务;
接下来验证smart_rtpmd的实际推拉流情况。打开MSYS窗口,进入《FFmpeg开发实战:从零基础到短视频上线》一书第十章的源码目录,执行下面的编译命令。
gcc pushvideo.c -o pushvideo -I/usr/local/ffmpeg/include -L/usr/local/ffmpeg/lib -lavformat -lavdevice -lavfilter -lavcodec -lavutil -lswscale -lswresample -lpostproc -lm
复制代码
编译完成后执行以下命令启动测试程序,期望把2018.mp4推给smart_rtpmd的RTSP推流地址rtsp://127.0.0.1:8554/live/stream。
./pushvideo ../file/2018.mp4 rtsp://127.0.0.1:8554/live/stream
复制代码
打开另一个MSYS窗口,同样进入《FFmpeg开发实战:从零基础到短视频上线》一书第十章的源码目录,执行下面的编译命令。
gcc pullvideo.c -o pullvideo -I/usr/local/ffmpeg/include -L/usr/local/ffmpeg/lib -I/usr/local/sdl2/include -L/usr/local/sdl2/lib -lsdl2 -lavformat -lavdevice -lavfilter -lavcodec -lavutil -lswscale -lswresample -lpostproc -lm
复制代码
编译完成后执行以下命令启动测试程序,期望从rtsp://127.0.0.1:8554/live/stream拉取视频流并弹窗播放。
./pullvideo rtsp://127.0.0.1:8554/live/stream
复制代码
然后果真弹出一个SDL窗口,正在播放从RTSP服务拉取的视频画面如下图所示,说明smart_rtpmd正确实现了RTSP协议的流媒体转发功能。
如果改成RTMP协议实现推拉流的话,需要把推流命令改成下面这样,表示向RTMP地址推流:
./pushvideo ../file/2018.mp4 rtmp://127.0.0.1:1935/live/stream
复制代码
注意pushvideo.c的代码需要按照前一篇文章《FFmpeg代码对RTSP和RTMP的推流区别》的说明加以修改,才能支持RTMP协议的视频推流。
对应的拉流命令要改成下面这样,表示从RTMP地址拉流:
./pullvideo rtmp://127.0.0.1:1935/live/stream
复制代码
更多详细的FFmpeg开发知识参见《FFmpeg开发实战:从零基础到短视频上线》一书。
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
FFmpeg
开发
笔记
八十二
使用
相关帖子
读高性能MySQL(第4版)笔记15_备份与恢复(下)
使用ITSM工具的10大优点
学习ReAct并使用langgraph实现一个简单的ReAct AI Agent!!
使用命令行删除 Windows 网络映射驱动器
Python3开发敏感词过滤程序底层逻辑记录
Obsidian笔记同步:基于Cloudflare对象存储
Powershell使用WMI 和 CIM(八)
PHP 15 个高效开发的小技巧
SignTool 使用 SafeNet eToken 硬证书进行代码签名
平面几何的公理和定理笔记
vip免费申请,1年只需15美金$
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
照妖镜
相关推荐
安全
读高性能MySQL(第4版)笔记15_备份与恢复(下)
1
11
蓝娅萍
2025-10-10
安全
使用ITSM工具的10大优点
2
898
刎唇
2025-10-10
业界
学习ReAct并使用langgraph实现一个简单的ReAct AI Agent!!
0
37
稼布欤
2025-10-10
业界
使用命令行删除 Windows 网络映射驱动器
0
465
欧阳雪枫
2025-10-11
业界
Python3开发敏感词过滤程序底层逻辑记录
0
997
劳暄美
2025-10-11
安全
Obsidian笔记同步:基于Cloudflare对象存储
0
528
赖秀竹
2025-10-11
安全
Powershell使用WMI 和 CIM(八)
0
445
都硎唷
2025-10-11
业界
PHP 15 个高效开发的小技巧
0
475
颜清华
2025-10-12
安全
SignTool 使用 SafeNet eToken 硬证书进行代码签名
0
741
羔迪
2025-10-12
安全
平面几何的公理和定理笔记
0
532
颜才
2025-10-12
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
回复
本版积分规则
回帖并转播
回帖后跳转到最后一页
浏览过的版块
安全
签约作者
程序园优秀签约作者
发帖
龙骋唧
3 小时前
关注
0
粉丝关注
18
主题发布
板块介绍填写区域,请于后台编辑
财富榜{圆}
anyue1937
9994888
dage888
999994
3934307807
993678
4
富账慕
10007
5
刎唇
9993
6
柴古香
9989
7
匝抽
9986
8
筒濂
9977
9
孙淼淼
9986
10
崔瑜然
9984
查看更多