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

音视频直播应用场景探讨之RTMP推流还是GB28181接入?

技术背景

好多开发者跟我们沟通音视频解决方案的时候,不清楚什么时候用RTMP推送模块,什么时候用GB28181设备接入模块,也不清楚二者差异化。实际上,RTMP推流和GB28181接入模块,在很多方面存在差异,如应用领域、协议性质、功能特性以及传输机制等。

RTMP推流

RTMP推流模块优缺点

优点:

  1. 广泛应用与兼容性:RTMP是Adobe公司为Flash/AIR平台和服务器之间音、视频及数据传输开发的实时消息传送协议,目前是最主流的流媒体传输协议之一。它对CDN(内容分发网络)支持良好,实现难度较低,是大多数直播平台的选择。
  2. 实现难度低:RTMP协议相对成熟,有大量的开源库和工具支持,便于开发和部署。
  3. 音视频编码支持:RTMP协议中,视频通常是H264编码,音频是AAC或MP3编码,这些编码格式在业界被广泛采用,具有较好的兼容性和压缩效率。

缺点:

  1. 不支持浏览器:RTMP协议不支持直接在浏览器中播放,需要通过Flash插件或额外的播放器来实现,但Adobe已不再更新Flash,这限制了RTMP在现代浏览器中的应用。
  2. 开源技术方案延迟较高:由于RTMP是基于TCP的协议,虽然保证了数据的可靠性,但相对于UDP等无连接协议,如果选用开源技术方案,延迟可能较高,如果是需要毫秒级延迟,需要用到像大牛直播SDK这种,全自研框架的RTMP推流模块。

RTMP推流应用场景

RTMP(Real-Time Messaging Protocol,实时消息传输协议)是一种基于TCP的网络协议,专门用于实时数据传输,特别是音视频流的传输。

1. 常规直播

RTMP推流是直播平台的核心技术之一。主播发起端通过RTMP协议将音视频数据实时推送到服务器,观众则通过拉流(通常也是RTMP或HLS等其他协议)从服务器获取音视频数据并观看直播内容。RTMP推流以其低延迟、高稳定性的特点,为移动直播提供了坚实的技术支持。

2. 无纸化同屏会议

在无纸化同屏会议场景,RTMP推流同样发挥着重要作用。参会人员可以通过RTMP协议将各自的音视频数据推送到会议服务器,服务器再将数据分发给其他参会者,实现实时音视频通信。RTMP推流在无纸化同屏会议中的应用,提高了会议的实时性和互动性。

3. 在线教育

在线教育领域也广泛采用RTMP推流技术。教师可以将授课内容通过RTMP协议实时推送到服务器,学生则通过拉流观看直播课程。这种方式不仅实现了远程教学,还提高了教学的互动性和实时性。

4. 远程监控

RTMP推流在远程监控系统中也有重要应用。摄像头采集到的音视频数据可以通过RTMP协议实时推送到监控服务器,管理人员可以随时查看监控画面,确保安全。RTMP推流在远程监控中的应用,提高了监控的实时性和准确性。

5. 其他应用场景

除了以上几个主要应用场景外,RTMP推流还可以用于社交媒体直播、企业内部培训等多种场景。随着5G、云计算等新技术的普及,RTMP推流的应用场景还将不断拓展和深化。

6. 功能支持

大牛直播SDK跨平台RTMP直播推送模块,始于2015年,支持Windows、Linux(x64_64架构|aarch64)、Android、iOS平台,支持采集推送摄像头、屏幕、麦克风、扬声器、编码前、编码后数据对接,功能强大,性能优异,配合SmartPlayer播放器,轻松实现毫秒级的延迟体验,满足大多数行业的使用场景。

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及以上版本。

GB28181设备接入模块

GB28181全称为《安全防范视频监控联网系统信息传输、交换、控制技术要求》,是我国音视频领域的一项关键标准,由公安部科技信息化局提出,并由全国安全防范报警系统标准化技术委员会(SAC/TC100)归口,公安部一所等多家单位共同起草。该标准旨在规范安全防范视频监控联网系统中信息传输、交换、控制的互联结构、通信协议结构,以及传输、交换、控制的基本要求和安全性要求。以下是GB28181的优缺点分析:

优点

  1. 协议统一:GB28181作为国家标准,具有统一的规范和标准,方便不同品牌、不同厂家的视频监控设备进行互联互通,降低了系统集成的难度和成本。这为用户提供了更多的选择和灵活性,能够构建符合自身需求的视频监控系统。

  2. 支持外网视频流出:GB28181协议支持视频流的推送模式,可以实现视频流出外网,便于远程监控和统一管理。这对于需要实时监控和应急处理的场景尤为重要,能够确保信息的及时传递和处理。

  3. 广泛应用:GB28181在智慧城市、应急指挥、公共安全等领域有广泛应用,能够满足大规模视频监控系统的集中管理和统一调度需求。通过与其他系统的集成和联动(如报警系统、门禁系统等),可以实现更加智能化的安防管理。

  4. 成本效益:由于GB28181协议的普及,设备厂商可以大规模生产符合标准的设备,从而降低生产成本。这对于用户来说,意味着可以以更低的价格购买到高质量的设备,降低了整体系统的建设成本。

  5. 高效性:GB28181协议确保了不同设备之间可以实现快速、稳定的数据传输,提高了系统的效率和响应速度。

  6. 良好的扩展性和兼容性:GB28181协议支持多种视频编码格式(如H.264、H.265等)和主流的设备类型(如IPC、DVR、NVR等),确保了与市面上大多数设备的兼容性。同时,它还支持与其他系统的集成,具有良好的扩展性。

缺点

  1. 功能相对简单:GB28181协议虽然定义了基本的通信字段,但在处理一些复杂的通信需求时显得功能相对简陋。例如,缺乏详细的异常处理和灵活的查询机制,这可能导致在平台对接过程中需要额外的协商和配置。

  2. 消息推送速度慢:在平台对接过程中,由于可能经过多级流媒体服务才能拿到视频流,导致消息推送速度较慢,影响实时性。这对于需要高度实时性的应用场景可能是一个挑战。

  3. 与SIP系统不完全兼容:尽管GB28181在信令层面使用了SIP协议,但两者并不完全兼容。因此,在需要将GB28181视频监控系统与其他基于SIP的通信系统进行融合时,需要通过SIP网关等工具来实现协议之间的转换和互通。

GB28181设备接入模块应用场景

GB28181是中国国家标准委员会发布的关于视频监控安防领域的网络视频监控系统技术规范,使用场景非常广泛,几乎涵盖了所有需要视频监控和安防管理的领域。通过实现视频监控设备的互联互通和实时视频传输,GB28181协议为各行各业提供了强有力的安全保障,特别是Android端的GB28181设备接入模块,可实现不具备国标音视频能力的 Android终端,通过平台注册接入到现有的GB/T28181服务,可用于如执法记录仪、智能安全帽、智能监控、智慧零售、智慧教育、远程办公、明厨亮灶、智慧交通、智慧工地、雪亮工程、平安乡村、生产运输、车载终端等场景,下面是一些典型场景介绍:

1. 公共安全领域
  1. 城市安防:GB28181协议在平安城市、智慧城市等项目中得到广泛应用,通过实现视频监控设备的互联互通,提升城市的安全防范能力。
  2. 交通监控:在交通管理系统中,GB28181协议支持交通监控设备的接入和实时视频传输,帮助交通管理部门实时监控交通流量、违章行为等,提高交通管理效率。
2. 企事业单位
  1. 企业园区监控:企业可以通过GB28181协议构建统一的视频监控系统,实现对园区内各个角落的实时监控,保障企业财产和员工安全。
  2. 办公区域监控:在办公区域部署支持GB28181协议的视频监控设备,可以实时监控办公区域的安全情况,防止盗窃、破坏等事件的发生。
3. 特定行业应用
  1. 智慧教育:在学校、幼儿园等教育场所,GB28181协议可以应用于校园监控系统,保障校园安全,防止校园暴力和其他安全问题。
  2. 智慧零售:在商场、超市等零售场所,GB28181协议可以支持监控设备的接入和实时视频传输,帮助商家实时监控店内情况,防止盗窃等事件的发生。
  3. 智慧工地:在建筑施工现场,GB28181协议可以应用于工地监控系统,实现对施工过程的实时监控和安全管理。
  4. 雪亮工程:作为农村治安防控体系建设的重要组成部分,GB28181协议在雪亮工程中发挥着重要作用,通过实现视频监控设备的互联互通,提升农村地区的安全防范能力。
4. 其他应用场景
  1. 远程办公:在远程办公场景中,GB28181协议可以支持视频会议系统的构建,实现远程沟通和协作。
  2. 明厨亮灶:在餐饮行业中,GB28181协议可以应用于厨房监控系统,实现厨房环境的实时监控和食品安全管理。
  3. 生产运输:在工业生产、物流运输等领域,GB28181协议可以支持监控设备的接入和实时视频传输,帮助管理者实时监控生产过程和运输状态。
5. 功能支持

以大牛直播SDK的Android平台GB28181设备接入模块为例,Android终端除支持常规的音视频数据接入外,还可以支持移动设备位置(MobilePosition)订阅和通知、图像抓拍、语音广播和语音对讲、历史视音频下载和回放,支持对接数据类型如下:

  1. 编码前数据(目前支持的有YV12/NV21/NV12/I420/RGB24/RGBA32/RGB565等数据类型),其中,Android平台前后摄像头数据,或者屏幕数据,或者Unity拿到的数据,均属编码前数据;
  2. 编码后数据(如无人机等264/HEVC数据,或者本地解析的MP4音视频数据);
  3. 拉取RTSP或RTMP流并接入至GB28181平台(比如其他IPC的RTSP流,可通过Android平台GB28181接入到国标平台)。

  •  [视频格式]H.264/H.265(Android H.265硬编码);
  •  [音频格式]G.711 A律、AAC;
  •  [音量调节]Android平台采集端支持实时音量调节;
  •  [H.264硬编码]支持H.264特定机型硬编码;
  •  [H.265硬编码]支持H.265特定机型硬编码;
  •  [软硬编码参数配置]支持gop间隔、帧率、bit-rate设置;
  •  [软编码参数配置]支持软编码profile、软编码速度、可变码率设置;
  •  支持横屏、竖屏推流;
  •  Android平台支持后台service推送屏幕(推送屏幕需要5.0+版本);
  • 支持纯视频、音视频PS打包传输;
  • 支持RTP OVER UDP和RTP OVER TCP被动模式(TCP媒体流传输客户端);
  • 支持信令通道网络传输协议TCP/UDP设置;
  • 支持注册、注销,支持注册刷新及注册有效期设置;
  • 支持设备目录查询应答;
  • 支持心跳机制,支持心跳间隔、心跳检测次数设置;
  • 支持移动设备位置(MobilePosition)订阅和通知;
  •  适用国家标准:GB/T 28181—2016;
  • 支持语音广播;
  • 支持语音对讲;
  • 支持图像抓拍;
  • 支持历史视音频文件检索;
  • 支持历史视音频文件下载;
  • 支持历史视音频文件回放;
  • 支持云台控制和预置位查询;
  •  [实时水印]支持动态文字水印、png水印;
  •  [镜像]Android平台支持前置摄像头实时镜像功能;
  •  [实时静音]支持实时静音/取消静音;
  •  [实时快照]支持实时快照;
  •  [降噪]支持环境音、手机干扰等引起的噪音降噪处理、自动增益、VAD检测;
  •  [外部编码前视频数据对接]支持YUV数据对接;
  •  [外部编码前音频数据对接]支持PCM对接;
  •  [外部编码后视频数据对接]支持外部H.264数据对接;
  •  [外部编码后音频数据对接]外部AAC数据对接;
  •  [扩展录像功能]支持和录像SDK组合使用,录像相关功能。

总结

RTMP推流作为一种高效、稳定的实时数据传输协议,在直播、视频会议、在线教育、远程监控、在线游戏等多个领域都有广泛应用。GB28181设备接入模块的使用场景也非常广泛,几乎涵盖了所有需要视频监控和安防管理的领域。通过实现视频监控设备的互联互通和实时视频传输,GB28181协议为各行各业提供了强有力的安全保障。以上是二者优缺点分析和使用场景探讨,还有功能描述,感兴趣的开发者,可以单独跟我沟通探讨。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • javase复习day22泛型、set、数据结构
  • USBCANFD卡在新能源BMS上位机的应用
  • Android CustomDialog圆角背景不生效的问题
  • String字符串
  • uniapp(H5)设置反向代理,设置成功后页面报错
  • AI教你学Python 第4天:函数和模块
  • MySQL下载安装
  • 可信多视图分类(TCM ETCM)算法实现数字序列的分类---基因致病的诊断
  • JAVA学习-练习试用Java实现“子集 II”
  • 代码随想录训练营 Day58打卡 图论part08 拓扑排序 dijkstra朴素版 + 堆优化版
  • 机器学习和深度学习的常见概念总结(多原创图)
  • 设计模式(Design Patterns)
  • Unity程序基础框架
  • Cisco Catalyst 9000 Series Switches, IOS XE Release 17.15.1 ED
  • Android应用性能优化
  • [nginx文档翻译系列] 控制nginx
  • Android开源项目规范总结
  • golang中接口赋值与方法集
  • input实现文字超出省略号功能
  • Laravel5.4 Queues队列学习
  • PHP的Ev教程三(Periodic watcher)
  • RxJS: 简单入门
  • web标准化(下)
  • Windows Containers 大冒险: 容器网络
  • 百度小程序遇到的问题
  • 从地狱到天堂,Node 回调向 async/await 转变
  • 分布式任务队列Celery
  • 聊聊spring cloud的LoadBalancerAutoConfiguration
  • 小程序测试方案初探
  • 小而合理的前端理论:rscss和rsjs
  • 再次简单明了总结flex布局,一看就懂...
  • 自制字幕遮挡器
  • ​Linux Ubuntu环境下使用docker构建spark运行环境(超级详细)
  • # .NET Framework中使用命名管道进行进程间通信
  • # 数仓建模:如何构建主题宽表模型?
  • (13)Latex:基于ΤΕΧ的自动排版系统——写论文必备
  • (3)(3.2) MAVLink2数据包签名(安全)
  • (4) openssl rsa/pkey(查看私钥、从私钥中提取公钥、查看公钥)
  • (C#)一个最简单的链表类
  • (delphi11最新学习资料) Object Pascal 学习笔记---第5章第5节(delphi中的指针)
  • (八)光盘的挂载与解挂、挂载CentOS镜像、rpm安装软件详细学习笔记
  • (超详细)2-YOLOV5改进-添加SimAM注意力机制
  • (二十五)admin-boot项目之集成消息队列Rabbitmq
  • (附源码)springboot美食分享系统 毕业设计 612231
  • (原+转)Ubuntu16.04软件中心闪退及wifi消失
  • (转) Android中ViewStub组件使用
  • (转)ORM
  • (转)真正的中国天气api接口xml,json(求加精) ...
  • .dwp和.webpart的区别
  • .net core 6 集成和使用 mongodb
  • .Net Core 生成管理员权限的应用程序
  • .NET MAUI学习笔记——2.构建第一个程序_初级篇
  • .NET Project Open Day(2011.11.13)
  • .Net程序帮助文档制作
  • .NET国产化改造探索(一)、VMware安装银河麒麟