RTMP直播播放SDK
概述(Overview)
SmartMediaKit RTMP 播放器 SDK(SmartPlayer)
基于全自研跨平台内核构建,面向 Windows / Linux(x86_64 | aarch64)/ Android / iOS 多平台统一集成,提供稳定、低延迟、可扩展的 RTMP 播放能力。
SDK 支持软硬解灵活切换、事件回调、音视频控制与多实例播放等特性,已在 安防监控、远程教育、工业视觉、应急指挥 等多个领域的实际项目中广泛应用,获得数百家企业的稳定运行验证。
通过标准化接口设计与高兼容性架构,SmartMediaKit RTMP 播放器 SDK 可无缝嵌入各类系统或应用中,构建可控、可复用的实时视频播放链路。
技术特点与优势
-
跨平台统一内核:自研协议栈与媒体管线,接口风格一致,减少多平台差异带来的维护成本;
-
低延迟播放能力:支持低延迟模式配置,公网环境下典型延时约 100–200 ms(取决于网络与码流);
-
软/硬解灵活切换:支持软解与硬解模式选择,兼顾兼容性与性能;
-
网络适配与稳定性:支持断线重连、超时控制、TCP 重建,确保播放稳定连续;
-
回调机制完善:提供网络、缓冲、下载速率、音视频数据(解码前/后)等多类事件回调;
-
渲染与控制灵活:支持旋转、镜像、缩放、快照、音量调节等多维播放控制;
-
录像扩展能力:与录像 SDK 无缝组合,支持 RTMP H.265 流录制、音频转码录制、音视频独立录制;
-
工程化接口与示例:C++、C#、Java、Objective-C 多语言 Demo 支持,便于快速集成与调试。
功能支持(Feature Matrix)
如未特别说明,以下能力在 Windows / Linux(x86_64 | aarch64)/ Android / iOS 全平台可用。
协议与会话
-
RTMP / Enhanced RTMP:支持标准 RTMP 及扩展 H.265(HEVC)播放;
-
连接管理:支持断线自动重连、超时控制与自动恢复机制;
-
低延迟模式:可配置低延迟播放参数(公网典型延迟 100–200 ms);
-
快速切流:播放过程中可快速切换 URL,实现平滑流切换。
解码
-
视频格式:H.264 / H.265(HEVC),兼容 Enhanced RTMP H.265 扩展;
-
音频格式:AAC / PCMA / PCMU / Speex;
-
软解码:全平台支持 H.264 / H.265 软件解码;
-
硬解码:
-
Windows / Android / iOS:在支持机型上启用 H.264 / H.265 硬解;
-
Android:可在 Surface 模式硬解 / 常规硬解 间灵活切换。
-
渲染与音频输出
-
Android 平台:视频支持
SurfaceView / GLSurfaceView;音频支持AudioTrack / OpenSL ES; -
渲染控制:支持旋转角度 0° / 90° / 180° / 270°;镜像 水平 / 垂直;支持等比例缩放(注:Android Surface 硬解模式下不支持等比缩放);
-
静音与音量:播放过程中可实时静音 / 取消静音,并支持音量调节;
-
快照功能:播放中可抓取当前画面;
-
关键帧播放:Windows 平台支持实时设置“仅播放关键帧”模式;
-
ARGB 叠加:Windows 平台支持在显示视频上叠加 ARGB 图像(参考 C++ Demo)。
时序与低延迟
-
缓冲策略:支持 buffer time 配置;提供首屏秒开模式;
-
弱网处理:支持断网重连与链路自适应,保障播放连贯性;
-
下载速率回调:可设置回调间隔,实时监测下载速率;
-
多实例播放:支持多路并发播放与资源隔离管理。
回调与数据获取
-
事件回调:包括网络状态、缓冲状态等;
-
解码前数据回调:支持 H.264 / H.265 视频码流回调,以及 AAC / PCMA / PCMU / Speex 音频码流回调;
-
解码后数据回调:支持解码后 YUV / RGB 视频帧回调,便于上层二次处理或 AI 算法接入;
-
缩放后视频回调(Windows):可指定输出尺寸,对原始图像缩放后再回调上层;
-
参数自适应:播放过程中音视频参数(如分辨率、SPS/PPS)变更时自动适配。
录制与扩展
-
录像组合:可与录像 SDK 无缝协作(支持 RTMP H.265 流录制;支持 PCMA / PCMU / Speex 转 AAC 后录制;支持仅音频或仅视频录制);
详见《Windows / Linux / Android / iOS 录像 SDK》。 -
快速流切换:播放过程中可快速更换播放源,缩短切换时延。
示例工程(Demos)
-
Windows 测试程序:
SmartPlayer.exe -
Windows C++ 工程:
WIN-PlayerSDK-CPP-Demo -
Windows C# 工程:
WIN-PlayerSDK-CSharp-Demo -
Linux 工程:
single_playerdemo/multi_playerdemo -
Android 工程:
SmartPlayerV2 -
iOS 工程:
SmartiOSPlayerV2
对接文档(Integration Guides)
- Windows平台RTSP|RTMP直播播放器技术集成说明
- Android平台RTSP|RTMP直播播放器技术接入说明
- 基于大牛直播SDK的 Android RTSP/RTMP 播放器集成指南(新版集成说明)
- iOS平台RTSP|RTMP直播播放器技术接入说明
延迟测试视频展示
官方博客
相关技术博客(精选)
- Windows平台Unity3d下如何同时播放多路RTSP或RTMP流
- Windows平台真实时毫秒级4K H264/H265直播技术方案探讨
- Windows平台RTMP播放器/RTSP播放器如何在播放窗口添加OSD文字叠加
- IE浏览器下如何低延迟播放RTSP或RTMP流
- Android平台RTMP/RTSP播放器开发系列之解码和绘制
- RTMP播放器开发填坑之道
- Windows平台RTMP/RTSP播放器如何实现实时音量调节
- Android、iOS平台RTMP/RTSP播放器实现实时音量调节
- Windows平台RTSP播放器/RTMP播放器设计需要考虑的几个点
- 跨平台低延迟的RTMP/RTSP直播播放器设计实现
- 如何在Unity3d平台下低延迟播放RTMP或RTSP流
- 基于智慧教室|无纸化会议的新选择:RTMP解决方案
- Android播放器实现视频窗口实时放大缩小功能
- Flutter下实现低延迟的跨平台RTSP/RTMP播放
- QT实现低延迟的RTSP、RTMP播放器
- 如何支持RTSP播放H.265(HEVC)流
- 麒麟操作系统|Linux下低延时RTMP|RTSP直播播放实现
- 庖丁解牛之Android平台RTSP|RTMP播放器设计
- Android平台RTSP|RTMP播放器如何实现TextureView渲染
- wpf下RTSP|RTMP播放器两种渲染模式实现
- 基于arm64架构国产操作系统|Linux下的RTMP|RTSP低延时直播播放器开发探究
- Android平台如何实现多路低延迟RTSP|RTMP播放?
- Android平台下VR头显如何低延迟播放4K以上超高分辨率RTSP|RTMP流
- Linux平台下RTSP|RTMP播放器如何跟python交互投递RGB数据供视觉算法分析
- Python下的毫秒级延迟RTSP|RTMP播放器技术探究和AI视觉算法对接
- 从播放到感知:Python下构建RTSP/RTMP毫秒级播放器并对接AI视觉实战
- Python下构建毫秒级低延迟RTSP/RTMP播放器并实现AI视觉处理
- 从实践出发谈如何开发一款好用的RTMP播放器
- Android 平台RTSP/RTMP播放器SDK接入说明
- 打造毫秒级延迟体验:基于大牛直播SDK的全平台RTMP播放器开发实录
- 从零开始集成:大牛直播SDK RTSP与RTMP模块在iOS平台的实现
- SmartPlayer与VLC播放RTMP:深度对比分析延迟、稳定性与功能
- 技术“过时”了吗?RTSP与RTMP在现代直播中的独特价值
- Enhanced RTMP H.265(HEVC)技术规格解析:流媒体协议的新突破
- 如何支持Enhanced RTMP H.265(HEVC)
- 三维空间,毫秒即达:RTMP|RTSP播放器在Unity中的落地实现
- 功夫,是快,也是准:写在RTSP、RTMP超低延迟播放器之后
- 一行代码,半生修炼 —— Android硬编硬解的RTMP推流与RTMP|RTSP播放之道
- 如何实现RTSP和RTMP低至100-200ms的延迟:直播SDK的技术突破
- 突破行业瓶颈:大牛直播SDK的RTSP与RTMP播放器深度剖析
- 从机器人到调度平台:超低延迟RTMP|RTSP播放器系统级部署之道
- 如何打造系统级低延迟RTSP/RTMP播放引擎?
- 从PotPlayer到专业播放器—基于 RTSP|RTMP播放器功能、架构、工程能力的全面对比分析