大牛直播录像SDK

直播系统里,录像往往是最容易被低估的环节。音视频同步写入、网络抖动时的缓冲处理、分段文件边界管理——每一处细节都可能成为故障点。更常见的问题是:录像逻辑与推流、播放高度耦合,上游一旦出现异常,录像随之中断。

大牛直播SDK(SmartMediaKit)录像模块在架构层面解决了这个问题。与RTMP推流、RTMP|RTSP播放、转发、轻量级 RTSP 服务、GB28181设备对接模块逻辑完全解耦,以独立实例形式挂载,上游模块的任何状态变化均不影响录像进程。推流端同步录像、拉流端边播边录、多路转发独立存档——统一接口,按需挂载,开箱即用。

目前已在安防监控存档、在线教育回放、工业过程记录等场景中大量落地,覆盖 Windows、Linux、Android、iOS 全平台。

技术架构:

核心能力

① 挂载灵活,独立运行

  • 支持与 RTMP推流端、RTSP|RTMP播放端、轻量级 RTSP 服务、多路转发模块组合使用
  • 录像模块独立运行,不受其他模块状态影响
  • 支持随时开启录像,无需等待推流或播放完成

② 录制控制

  • 推流端录像支持实时暂停 / 恢复,精准控制录制片段
  • 支持录像过程中切换 URL:配置一致则续录同一文件,不一致则自动分割至下一文件
  • 支持设置单个文件大小上限,自动分段存储;支持自定义录像路径
  • 支持纯音频、纯视频、音视频三种录制模式

③ 编码格式

  • 视频:H.264、H.265(含 RTSP/RTMP H.265 直接录入 MP4)
  • 音频:AAC;支持 PCMU/PCMA/Speex 等格式自动转 AAC 后录制
  • 支持推流端外部编码后数据(H.264/AAC)直接对接录像

④ 稳定性与回调

  • 网络堵塞场景下做了专项处理,确保音视频同步写入不乱序
  • 从录制开始到录制结束均有 event 回调,每段文件的起止状态均可感知
  • 支持多路并发录像,每路独立实例管理,互不干扰

对应Demo:

  •  Windows测试程序:SmartPlayer.exe;
  •  Windows C++工程:WIN-PlayerSDK-CPP-Demo;
  •  Windows C#工程:WIN-PlayerSDK-CSharp-Demo;
  •  测试程序:SmartPublisherDemo.exe;
  •  C++工程:WIN-PublisherSDK-CPP-Demo;
  •  C#工程:WIN-PublisherSDK-CSharp-Demo。
  •  Android工程:SmartPlayerV2;
  •  iOS工程:SmartiOSPlayerV2;
  •  Android工程:SmartPublisherV2;
  •  iOS工程:SmartiOSPublisherV2。

大牛直播跨平台RTSP/RTMP转RTMP转发SDK

好的转发模块,首先要低延迟——这是底线,不是加分项。其次要足够稳定、灵活,具备完善的状态反馈机制,且资源占用尽可能低。若能跨平台、以 SDK 形式交付,则能给开发者带来最大便利,真正做到拿来即用。

大牛直播SDK(SmartMediaKit)跨平台 RTSP/RTMP 转 RTMP 转发 SDK,目前已全面覆盖 Windows、Linux(x86_64 | aarch64)、Android 和 iOS 平台。全自研内核,以高稳定、毫秒级低延迟、超低资源占用及强大扩展能力为核心竞争力,广泛应用于安防监控回传、直播分发、远程调度等关键场景,是构建多路流媒体转发系统的高效底座。

整体设计如下:

1. 拉流:通过RTSP直播播放SDK的数据回调接口,拿到音视频数据;

2. 转推:通过RTMP直播推送SDK的编码后数据输入接口,把回调上来的数据,传给RTMP直播推送模块,实现RTSP数据流到RTMP服务器的转发;

3. 录像:如果需要录像,借助RTSP直播播放SDK,拉到音视频数据后,直接存储MP4文件即可;

4. 快照:如果需要实时快照,拉流后,解码调用播放端快照接口,生成快照,因为快照涉及到video数据解码,如无必要,可不必开启,不然会额外消耗性能。

5. 拉流预览:如需预览拉流数据,只要调用播放端的播放接口,即可实现拉流数据预览;

6. 数据转AAC后转发:考虑到好多监控设备出来的音频可能是PCMA/PCMU的,如需要更通用的音频格式,可以转AAC后,在通过RTMP推送;

7. 转推RTMP实时静音:只需要在传audio数据的地方,加个判断即可;

8. 拉流速度反馈:通过RTSP播放端的实时码率反馈event,拿到实时带宽占用即可;

9. 整体网络状态反馈:考虑到有些摄像头可能会临时或异常关闭,RTMP服务器亦是,可以通过推拉流的event回调状态,查看那整体网络情况,如此界定:是拉不到流,还是推不到RTMP服务器。

多路RTSP/RTMP转RTMP推送SDK设计架构图:

多路RTMP/RTSP转RTMP推送SDK功能支持:

  1. 支持拉取rtmp流;
  2. 支持拉取rtsp流;
  3. Windows支持本地flv文件转发(支持制定文件位置转发,或转发过程中seek);
  4. 支持本地预览;
  5. 支持转发过程中,实时静音;
  6. 支持转发过程中,切换rtmp/rtsp url,此外,windows平台还支持切换本地flv文件;
  7. 支持录像模块扩展,可边转发边录制,每个文件录制开始结束,均有状态回馈;
  8. 支持内网RTSP网关模块扩展,拉取的流数据,可以流入到内网RTSP网关模块,对外微型RTSP媒体流服务(RTSP url),便于内网访问;
  9. 音频:AAC,并支持拉流后的音频(PCMU/PCMA,Speex等)转AAC后再转发;
  10. 视频:H.264、H.265,支持h265转发(rtsp/rtmp h265转rtmp h265推送)

对应Demo:

  •  Windows测试程序:SmartStreamRelayDemo.exe;
  •  Windows C++工程:WIN-RelaySDK-CPP-Demo;
  •  Windows C#工程:WIN-RelaySDK-CSharp-Demo;
  •  Android工程:SmartRelayDemoV2;
  •  iOS工程:SmartiOSRelayDemoV2。

大牛直播RTMP/RTSP播放器SDK

大牛直播RTSP/RTMP播放器SDK特点:

在没测试过大牛直播SDK的RTMP和RTSP播放器之前,你甚至不相信行业内,RTMP和RTSP播放器(特别是RTMP播放器)延迟可以稳定的做到1秒以内。

无需赘述,全自研内核,行业内一致认可的跨平台RTSP/RTMP直播播放器SDK,功能齐全、高稳定、超低延迟、近200家公司明智之选。

功能支持:

如不单独说明,系Windows、Android、iOS全平台支持。

  •  [支持播放协议]高稳定、超低延迟(一秒内,行业内几无效果接近的播放端)、业内首屈一指的RTMP/RTSP直播播放器SDK;
  •  [多实例播放]支持多实例播放(如同时播放多路RTMP/RTSP流);
  •  [事件回调]支持网络状态、buffer状态等回调;
  •  [视频格式]支持RTSP H.265、RTMP扩展H.265,RTSP/RTMP H.264;
  •  [音频格式]RTMP/RTSP支持AAC/PCMA/PCMU,此外RTMP还支持Speex;
  •  [H.264/H.265软解码]支持H.264/H.265软解;
  •  [H.264硬解码]Android/iOS支持H.264硬解;
  •  [H.265硬解]Android支持H.265硬解;
  •  [H.264/H.265硬解码]Android支持设置Surface模式硬解和普通模式硬解码;
  •  [RTSP模式设置]支持RTSP TCP/UDP模式设置;
  •  [RTSP TCP/UDP自动切换]支持RTSP TCP、UDP模式自动切换;
  •  [RTSP超时设置]支持RTSP超时时间设置,单位:秒;
  •  [RTSP 401认证处理]支持上报RTSP 401事件,如URL携带鉴权信息,会自动处理;
  •  [缓冲时间设置]支持buffer time设置;
  •  [首屏秒开]支持首屏秒开模式;
  •  [低延迟模式]支持类似于线上娃娃机等直播方案的超低延迟模式设置(公网200~400ms);
  •  [复杂网络处理]支持断网重连等各种网络环境自动适配;
  •  [快速切换URL]支持播放过程中,快速切换其他URL,内容切换更快;
  •  [音视频多种render机制]Android平台,视频:surfaceview/OpenGL ES,音频:AudioTrack/OpenSL ES;
  •  [实时静音]支持播放过程中,实时静音/取消静音;
  •  [实时快照]支持播放过程中截取当前播放画面;
  •  [只播关键帧]Windows平台支持实时设置是否只播放关键帧;
  •  [渲染角度]支持0°,90°,180°和270°四个视频画面渲染角度设置;
  •  [渲染镜像]支持水平反转、垂直反转模式设置;
  •  [实时下载速度更新]支持当前下载速度实时回调(支持设置回调时间间隔);
  •  [解码前视频数据回调]支持H.264/H.265数据回调;
  •  [解码后视频数据回调]支持解码后YUV/RGB数据回调;
  •  [解码前音频数据回调]支持AAC/PCMA/PCMU/SPEEX数据回调;
  •  [音视频自适应]支持播放过程中,音视频信息改变后自适应;
  •  [扩展录像功能]完美支持和录像SDK组合使用,录像相关功能,可参见”Windows/Android/iOS录像SDK“;
  •  [全屏]Windows平台双击画面进入全屏模式;
  •  [Windows本地FLV播放器]支持本地FLV文件播放(支持获取FLV文件的duration(时长);支持显示当前播放位置;
  •  [Windows本地FLV播放器]支持开始播放或播放过程中seek(跳转播放位置),也许是行业内seek最快的flv点播播放器)。

对应Demo:

  •  Windows测试程序:SmartPlayer.exe;
  •  Windows C++工程:WIN-PlayerSDK-CPP-Demo;
  •  Windows C#工程:WIN-PlayerSDK-CSharp-Demo;
  •  Android工程:SmartPlayerV2;
  •  iOS工程:SmartiOSPlayerV2。

RTMP直播推送SDK

模块定位

RTMP 直播推送 SDK 是大牛直播SDK(SmartMediaKit)的核心推送模块,始于 2015 年,历经十年持续迭代。支持 Windows、Linux(x86_64 | aarch64)、Android、iOS 全平台,覆盖摄像头、屏幕、麦克风、扬声器及外部编码前/编码后数据的采集与推送。

配合大牛直播 SmartPlayer 播放器,可实现 100~200ms 的端到端超低延迟,满足安防监控、教育培训、工业生产等绝大多数行业场景。

平台覆盖和架构支持

支持平台 支持架构
Windows平台 x86 debug/release, x64 debug/release
Linux(含麒麟操作系统) x86_64、aarch64
Android平台 armeabi-v7a, arm64-v8a, x86, x86_64
iOS平台 arm64

技术特点和优势

全自研框架,性能优先 全自研推送框架,自适应编码与传输算法,延迟更低、采集编码传输效率更高,易于扩展和定制。

接口完备,状态全回调 所有功能以 SDK 接口形式提供,所有状态均有 Event 回调透传,完整支持断网自动重连、网络状态监听等工程化需求。

模块化架构,灵活组合 推送、录像、内置轻量级 RTSP 服务三大模块完全解耦,可单独使用,也可自由组合——与播放器 SDK 配合可扩展为流媒体转发、连麦、一对一互动等进阶场景。

层级数据源构建 Windows、Linux、Android 推送端以层级模式提供,开发者可自行灵活组合数据源(多摄像头 / 屏幕 / 水印叠加等),无需修改底层逻辑。

多元外部数据接入 支持外部 YUV / RGB / H.264 / H.265 / AAC / SPEEX / PCMA / PCMU 数据源直接对接,兼容各类自定义采集管线。

参数设置灵活 全部参数均可通过 SDK 接口精细配置,也支持默认参数一键启动,兼顾快速集成与深度定制两种诉求。

功能支持:

Windows平台RTMP直播推送SDK

  • 音频编码:AAC/SPEEX;
  • 视频编码:H.264、H.265;
  • 推流协议:RTMP;
  • [音视频]支持纯音频/纯视频/音视频推送;
  • [屏幕/摄像头]支持帧率、关键帧间隔(GOP)、码率(bit-rate)设置;
  • [屏幕]支持屏幕裁剪,根据帧率和推送分辨率,自动推荐码流;
  • [摄像头]支持摄像头选择、分辨率设置、帧率设置;
  • [摄像头]摄像头支持水平反转、垂直反转、0° 90° 180° 270°旋转;
  • [屏幕]支持DXGI采集设置、启/停用Aero;
  • [音频]采集麦克风;
  • [音频]采集扬声器;
  • [预览]支持推送端实时预览;
  • 支持实时静音、取消静音;
  • [对接服务器]支持自建标准RTMP服务器或CDN;
  • 支持断网自动重连、网络状态回调;
  • 屏幕和摄像头合成/多层合成;
  • 支持窗口采集(一般不建议使用);
  • 支持实时动态水印;
  • 支持实时快照;
  • 支持降噪处理、自动增益控制、VAD端点检测;
  • 支持扬声器和麦克风混音;
  • 支持外部编码前音视频数据对接;
  • 支持外部编码后音视频数据对接;
  • 支持RTMP扩展H.265(需设备支持H.265特定机型硬编码)和Enhanced RTMP;
  • 支持特定机型硬编码;
  • 支持实时音量调节;
  • 支持扩展录像模块;
  • 支持Unity接口;
  • 支持H.264扩展SEI发送模块;
  • 支持Windows7及以上版本。

—————————————————————————————————————————————-

Linux平台x64_64架构|aarch64架构RTMP直播推送SDK

  • 音频编码:AAC/SPEEX;
  • 视频编码:H.264;
  • 推流协议:RTMP;
  • [音视频]支持纯音频/纯视频/音视频推送;
  • 支持X11屏幕采集;
  • 支持部分V4L2摄像头设备采集;
  • [屏幕/V4L2摄像头]支持帧率、关键帧间隔(GOP)、码率(bit-rate)设置;
  • [V4L2摄像头]支持V4L2摄像头设备选择(设备文件名范围:[/dev/video0, /dev/video63])、分辨率设置、帧率设置;
  • [V4L2摄像头]支持水平反转、垂直反转、0° 90° 180° 270°旋转;
  • [音频]支持基于alsa-lib接口的音频采集;
  • [音频]支持基于libpulse接口采集本机PulseAudio服务音频;
  • [预览]支持推送端实时预览;
  • [对接服务器]支持自建标准RTMP服务器或CDN;
  • 支持断网自动重连、网络状态回调;
  • 屏幕和摄像头合成/多层合成;
  • 支持窗口采集(一般不建议使用);
  • 支持实时快照;
  • 支持降噪处理、自动增益控制、VAD端点检测;
  • 支持扬声器和麦克风混音;
  • 支持外部编码前音视频数据对接;
  • 支持外部编码后音视频数据对接;
  • 支持实时音量调节;
  • 支持扩展录像模块;
  • 支持Unity接口;
  • 支持H.264扩展SEI发送模块;
  • 支持x64_64架构、aarch64架构(需要glibc-2.21及以上版本的Linux系统, 需要libX11.so.6, 需要GLib–2.0, 需安装 libstdc++.so.6.0.21、GLIBCXX_3.4.21、 CXXABI_1.3.9);

—————————————————————————————————————————————-

Android平台RTMP直播推送SDK

  • 音频编码:AAC/SPEEX;
  • 视频编码:H.264、H.265;
  • 推流协议:RTMP;
  • [音视频]支持纯音频/纯视频/音视频推送;
  • [摄像头]支持采集过程中,前后摄像头实时切换;
  • 支持帧率、关键帧间隔(GOP)、码率(bit-rate)设置;
  • 支持RTMP推送 live|record模式设置;
  • 支持前置摄像头镜像设置;
  • 支持软编码、特定机型硬编码;
  • 支持横屏、竖屏推送;
  • 支持Android屏幕采集推送;
  • 支持自建标准RTMP服务器或CDN;
  • 支持断网自动重连、网络状态回调;
  • 支持实时动态水印;
  • 支持实时快照;
  • 支持降噪处理、自动增益控制;
  • 支持外部编码前音视频数据对接;
  • 支持外部编码后音视频数据对接;
  • 支持RTMP扩展H.265(需设备支持H.265特定机型硬编码)和Enhanced RTMP;
  • 支持实时音量调节;
  • 支持扩展录像模块;
  • 支持Unity接口;
  • 支持H.264扩展SEI发送模块;
  • 支持Android 5.1及以上版本。

—————————————————————————————————————————————-

iOS平台RTMP直播推送SDK

  • 音频编码:AAC;
  • 视频编码:H.264、H.265;
  • 推流协议:RTMP;
  • [音视频]支持纯音频/纯视频/音视频推送;
  • [摄像头]支持采集过程中,前后摄像头实时切换;
  • 支持帧率、关键帧间隔(GOP)、码率(bit-rate)设置;
  • [RTMP协议]支持RTMP推送 live|record模式设置;
  • 支持前置摄像头镜像设置;
  • 支持软编码、特定机型硬编码;
  • 支持实时静音、取消静音;
  • 支持横屏、竖屏推送;
  • [对接服务器]支持自建标准RTMP服务器或CDN;
  • 支持断网自动重连、网络状态回调;
  • 实时快照;
  • 外部编码前音视频数据对接;
  • 外部编码后音视频数据对接;
  • 特定设备H.265硬编码;
  • RTMP扩展H.265(需设备支持H.265特定机型硬编码);
  • 扩展录像模块;
  • H.264扩展SEI发送模块;
  • 支持iOS 9.0及以上版本。

对应Demo:

  •  Windows测试程序:SmartPublisherDemo.exe;
  •  Windows C++工程:WIN-PublisherSDK-CPP-Demo;
  •  Windows C#工程:WIN-PublisherSDK-CSharp-Demo;
  •  Linux工程:publisherdemo;
  •  Android工程:SmartPublisherV2;
  •  iOS工程:SmartiOSPublisherV2。

技术对接文档(Android为例):

相关博客: