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

news/2025/10/12 12:16:44/文章来源:https://www.cnblogs.com/aqi00/p/19126675
《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.mzph.cn/news/935346.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

实验室装修厂家最新权威推荐榜:专业设计与施工品质深度解析

实验室装修厂家最新权威推荐榜:专业设计与施工品质深度解析在科技创新驱动发展的时代背景下,实验室作为科研创新的重要载体,其装修质量直接关系到实验结果的准确性和科研人员的安全。优秀的实验室装修不仅要满足基本…

生成式AI在红队测试中的应用:构建自动化工具

本文探讨如何利用生成式AI和大语言模型构建红队测试工具,包括自动化社交工程、代码生成和侦察等关键技术,通过实际Python代码示例展示AI在网络安全领域的实际应用。生成式AI为黑客服务:构建红队测试工具 红队测试人…

杂题 10月份

P3509 [POI 2010] ZAB-Frog 先考虑双指针处理出 \(nxt\),然后就是倍增板子了。注意直接倍增会被卡常,有一个 trick 是要二进制分解然后就没了。 P3811 【模板】模意义下的乘法逆元 卧槽,本以为是简单的费马小定理求…

2025年UV LED点光源厂家权威推荐榜:精准固化与高效能

2025年UV LED点光源厂家权威推荐榜:精准固化与高效能随着工业4.0时代的深入发展,UV LED点光源作为精密制造领域的关键设备,正迎来技术革新与市场需求的爆发式增长。据行业数据显示,全球UV固化设备市场规模预计在20…

NVR软件快速对比表

NVR软件快速对比表 一、核心数据对比(百分制评分)软件名称 系统占用 功能丰富度 AI智能 易用性 中文支持 性价比 总评分 推荐度Agent DVR 75 98 95 92 80 98 95 ⭐⭐⭐⭐⭐Surveillance Station 70 95 85 95 100 60 …

20232410 2025-2026-1 《网络与系统攻防技术》 实验一实验报告

一、实验目的 本次实践的对象是一个名为pwn1的linux可执行文件。 该程序正常执行流程是:main调用foo函数,foo函数会简单回显任何用户输入的字符串。 该程序同时包含另一个代码片段,getShell,会返回一个可用Shell。正…

在Windows系统打造基于ConEmu的命令行工具环境

需求背景 对于git工具的使用,个人习惯了通过命令行进行操作。特别是当需要管理多个项目时,希望命令行工具支持多标签页方式便于切换,并且具备保存历史标签页的功能。 上述诉求在Linux/Mac系统下都比较好实现,但是在…

2025工矿灯厂家最新权威推荐榜:工业照明技术革新与品质保障

2025工矿灯厂家最新权威推荐榜:工业照明技术革新与品质保障在工业4.0和智能制造快速推进的背景下,工矿照明领域正经历着深刻的技术变革。现代工矿灯不仅需要满足基础照明需求,更要兼顾能效管理、智能控制和环境适应…

ZR 2025 十一集训 Day 1

数据结构内容 请输入内容

2025广东粉末厂家最新权威推荐榜:技术实力与市场口碑深度解

2025广东粉末厂家最新权威推荐榜:技术实力与市场口碑深度解析在制造业转型升级的浪潮中,广东作为中国制造业的重要基地,粉末材料行业迎来了前所未有的发展机遇。粉末材料作为现代制造业的基础原料,其质量直接关系到…

[KaibaMath]1007 关于数列极限存在的唯一性证明

[KaibaMath]1007 关于数列极限存在的唯一性证明基于∀ε>0,常数λ>0,|a-b|<λε => a=b和绝对值的三角形不等式|a-b|<=|a|+|b|,我们可证明数列极限存在的唯一性定理。|a-b|<λε => a=b的证明…

20232418 2025-2026-1 《网络与系统攻防技术》实验一实验报告

一、实验目的1掌握NOP, JNE, JE, JMP, CMP汇编指令的机器码。2掌握反汇编与十六进制编程器。3能正确修改机器指令改变程序执行流程。4能正确构造payload进行bof攻击。 二、实验环境 VMware Workstation pro环境下安装k…

十月模拟赛

十月模拟赛10.3 T3 序列修改 在时间轴上考虑,相当于每个时间除了自己该有的还能额外带上 \(k - 1\) 个东西。则对于每个数,将每两个相邻的出现中间视为一条线段,则希望选出一些线段满足每个位置被覆盖不超过 \(k - …

2025年成都软件开发机构最新推荐排行榜,涵CRM,物联网,运维,仓储,人力多系统,技术实力与市场口碑深度解析

在数字化转型加速推进的当下,成都地区政企机构对专业化软件开发服务的需求持续攀升,但市场乱象却让选型陷入困境。部分厂商技术架构陈旧,难以适配业务快速迭代;有些服务商重开发轻售后,故障响应滞后,造成隐性损失…

2025硅藻土定制厂家权威推荐榜:专业生产与深度定制实力解析

2025硅藻土定制厂家权威推荐榜:专业生产与深度定制实力解析在环保材料行业快速发展的当下,硅藻土凭借其优异的吸附性能、环保特性以及广泛的应用领域,已成为工业过滤、建筑材料、环保净化等多个行业不可或缺的功能性…

变量、函数命名方式

在编程中,变量和函数的命名方式直接影响代码的可读性、可维护性和团队协作效率。 一、驼峰命名法特点:多个单词组合时,除第一个单词外,其余单词首字母大写,整体无空格或下划线。 细分:小驼峰(lowerCamelCase):…

汉文博士 0.7 版:支持统一码 17.0,新增字体分析器,优化词典编译器

自去年10月份发布汉文博士 0.6.4 版后,汉文博士经过近一年的开发,今天发布了新的 0.7 版。其主要新增功能如下。 强化的构形检索 新版支持使用构形检索统一码 17.0 新增的“中日韩表意文字扩展J区”4298 个汉字。构形…

2025燃气采暖锅炉厂家权威推荐榜:高效节能与品质保障口碑之

2025燃气采暖锅炉厂家权威推荐榜:高效节能与品质保障口碑之选在能源转型与绿色发展的时代背景下,燃气采暖锅炉作为建筑供暖系统的核心设备,其技术革新与品质提升已成为行业关注的焦点。随着国家“双碳”目标的深入推…

【python】python进阶——Redis模块 - 教程

【python】python进阶——Redis模块 - 教程pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "…

2025 年 10 月桥架厂家最新推荐:专业制造与品牌保障口碑之选!

在工业基建与电力传输需求持续增长的 2025 年,桥架作为核心支撑构件,其产品品质、技术实力与品牌可靠性直接影响工程安全与效率。本次推荐聚焦 “专业制造能力”“品牌保障体系”“市场口碑积累” 三大核心维度,筛选…