当前位置: 首页 > news >正文

FFmpeg开发笔记(八十二)使用国产直播服务器smart_rtmpd执行推流操作

《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_rtmpd1

由日志可见,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协议的流媒体转发功能。

smart_rtpmd2

如果改成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开发实战:从零基础到短视频上线》一书。

http://www.hskmm.com/?act=detail&tid=29224

相关文章:

  • 实验室装修厂家最新权威推荐榜:专业设计与施工品质深度解析
  • 生成式AI在红队测试中的应用:构建自动化工具
  • 杂题 10月份
  • 2025年UV LED点光源厂家权威推荐榜:精准固化与高效能
  • NVR软件快速对比表
  • 20232410 2025-2026-1 《网络与系统攻防技术》 实验一实验报告
  • 在Windows系统打造基于ConEmu的命令行工具环境
  • 2025工矿灯厂家最新权威推荐榜:工业照明技术革新与品质保障
  • ZR 2025 十一集训 Day 1
  • 2025广东粉末厂家最新权威推荐榜:技术实力与市场口碑深度解
  • [KaibaMath]1007 关于数列极限存在的唯一性证明
  • 20232418-郭俊廷-实验一-逆向及Bof基础实践
  • 十月模拟赛
  • 2025年成都软件开发机构最新推荐排行榜,涵CRM,物联网,运维,仓储,人力多系统,技术实力与市场口碑深度解析
  • 2025硅藻土定制厂家权威推荐榜:专业生产与深度定制实力解析
  • 变量、函数命名方式
  • 汉文博士 0.7 版:支持统一码 17.0,新增字体分析器,优化词典编译器
  • 2025燃气采暖锅炉厂家权威推荐榜:高效节能与品质保障口碑之
  • 【python】python进阶——Redis模块 - 教程
  • 2025 年 10 月桥架厂家最新推荐:专业制造与品牌保障口碑之选!
  • 语文_作文_开头结尾
  • 后端缓存好?缓存实用的方案实例直接用就是前端缓存好还
  • 2025年通风天窗厂家最新权威推荐榜:专业性能与高效通风口碑
  • 解决scoop安装的anaconda无法在商店版powershell使用的问题
  • 2025智能吉他厂家最新权威推荐榜:创新科技与卓越音质完美融
  • 2025景区售票系统厂家最新权威推荐榜:智慧票务与高效管理口
  • 数学邪修手册
  • 实用指南:光谱相机在护眼灯领域的应用
  • 2025校平机厂家最新权威推荐榜:精准矫平与高效生产首选
  • idea 激活