[2015~2024]SmartMediaKit音视频直播技术演进之路
技术背景
2015年,因应急指挥项目需求,我们实现了RTMP推送音视频采集推送(采集摄像头和麦克风数据)模块,在我们做好了RTMP推送模块后,苦于没有一个满足我们毫秒级延迟诉求的RTMP播放器,于是第一款低延迟的RTMP播放器,就这么诞生了。
随着时间的推进,大牛直播SDK(SmartMediaKit)已经成为音视频高稳定、低延迟的代名词,涵盖跨平台(Windows、Linux(x64_64架构|aarch64)、Android、iOS)的实时RTMP推流、RTMP/RTSP直播播放(支持RTSP|RTMP H.265,Enhanced RTMP H.265)、GB28181设备接入、推送端播放端实时录像、多路流媒体转发(RTSP转RTMP,RTMP转RTMP,RTSP|RTMP转GB28181)、音视频导播、动态视频合成、音频混音、一对一互动直播、内置轻量级RTSP服务、RTSP网关服务等,已然成为业内为数不多的比快更快,真正稳定可靠的超低延迟直播SDK(毫秒级延迟,低延迟模式下150~300ms)。
低延迟的音视频直播技术解决方案适用于在线教育、智慧教室|无纸化推屏|会议、运营商视频云平台、执法记录、电力巡检、智慧水利、智慧煤矿、管廊隧道、平衡操控、虚拟仿真实训教学、VR教育、云展会、金融双录、远程医疗、智能可视门禁对讲、智慧安防、智能家居、物联网、智能车载、传统硬件领域、媒体移动直播、应急指挥调度(针对保险、城管、交警、消防、公安等职能管理部门的单兵应急执法系统)、远程专家诊断、可视化巡检、(如电信/电力线路/铁路沿线/水利设施/油田/消防设施巡检)、移动视频安防监控,企业内训、监控对接等场景。
技术特点
大牛直播SDK是一套功能强大的跨平台流媒体内核组件,具有以下特点和优势:
功能丰富:
- 多种数据采集与推送:支持多摄像头、屏幕、麦克风等数据采集与推送功能。可以选择摄像头列表、设置摄像头的分辨率和帧率等参数;对于屏幕采集,支持屏幕裁剪,可根据帧率和推送分辨率自动推荐码流,并且默认帧率可调整。还支持外部 H.264 接口输入等扩展数据采集方式。
- 灵活的合成与叠加:支持摄像头和屏幕的多种合成与叠加模式,如摄像头叠加到屏幕、屏幕叠加到摄像头等,并支持实时关闭叠加层。此外,还能设置实时水印,包括文字水印、实时时间水印和图片水印,以及设置透明度处理(遮盖)等功能。
- 音频处理全面:支持扬声器和麦克风音频混音输出,可采集电脑输出的音频或麦克风音频。在音频编码方面,默认是 AAC 编码模式,如需码率更低,也可选择 SPEEX 编码模式。同时具备音频 “端点检测(VAD)”、回音消除、噪音抑制、自动增益控制等音频处理功能。
- 推送与播放功能多样:支持多种音视频格式的推送,如 H.264、AAC、Speex、PCMA、PCMU 等。在播放方面,支持 RTMP、RTSP 直播播放,提供软解码、硬解码设置,具有实时静音、快照、view 旋转、秒开等功能,还支持多实例播放以及网络状态和 buffer 状态等回调。
- 录像与文件处理:支持 RTMP、RTSP 流录制,音频转 AAC 后录制,以及只录制音频或视频等模式,并且文件可自动切分。支持设置录像文件前缀、录像文件大小、录像文件是否增加日期和时间等。
- 内置服务与设备接入:具有内置轻量级 RTSP 服务,支持对外提供 RTSP 服务,可同时开启多个 service,提供小规模并发访问;还支持 GB28181 设备接入,可实现不具备国标音视频能力的 Android 终端通过平台注册接入到现有的 GB/T28181 服务。
技术优势明显:
- 低延迟:能够将播放延迟稳定地控制在较低水平,在低延迟模式下可达到 150 - 300ms,这对于对实时性要求较高的直播、互动等场景非常重要,能够显著提升用户体验。
- 高稳定性:可以长时间稳定运行,减少因播放器故障导致的直播中断等问题,适用于需要长时间持续运行的应用场景。
- 全自研框架与模块化设计:采用全自研框架,具备高度可扩展性与自适应算法,资源占用低,灵活性强。开发者可以根据自己的需求选择功能模块进行组合使用。
- 多平台支持:支持 Windows、Linux、Android、iOS 等多个平台,满足不同设备和应用场景的需求。
应用场景广泛:
- 在线教育:教师可通过该 SDK 进行实时授课,支持屏幕共享、文档展示、PPT 讲解等功能,实现远程协作和讨论,还可用于教学视频的实时录制、回放和分享。
- 智慧安防:用于城市监控、企业安防、智能家居等场景的实时视频流传输和录制,为应急指挥调度工作提供低延迟、高稳定性的直播服务。
- 媒体直播:适用于新闻直播、体育赛事直播、娱乐直播等移动直播场景,以及演唱会、发布会、展览等活动的现场直播,支持远程观众与现场活动的实时互动。
- 远程医疗:医生可进行远程会诊,与异地专家进行实时视频交流和病例讨论,还支持手术过程的实时直播和录制,为医学教育和手术观摩提供便捷途径。
- 其他行业:如可视化购物、远程专家诊断、可视化巡检等场景也能得到很好的应用。
近十年的技术积累,让大牛直播SDK凭借其丰富的功能、优秀的技术优势和广泛的应用场景,为开发者提供了强大的流媒体解决方案,在直播、安防、教育、医疗等多个领域具有较高的应用价值。
我们始终相信:Faster than “Fastest”,Smarter than “Smartest”,Stabler than “Stablest”。
厚积薄发,登上山顶,不是为了饱览风光,是为了寻找更高的山峰,从敬畏到颠覆,以匠人之心,专注、极致、智慧,志在成为业内为数不多真正稳定可靠的流媒体技术方案缔造者。
相关文章:

[2015~2024]SmartMediaKit音视频直播技术演进之路
技术背景 2015年,因应急指挥项目需求,我们实现了RTMP推送音视频采集推送(采集摄像头和麦克风数据)模块,在我们做好了RTMP推送模块后,苦于没有一个满足我们毫秒级延迟诉求的RTMP播放器,于是第一…...

redis 使用Lettuce 当redis挂掉重启之后 网络是怎么重新连接
Lettuce是一个高性能的Java Redis客户端,支持同步、异步和反应式编程模式 Lettuce的核心功能包括: 高性能:通过使用Netty作为底层网络通信框架,实现了非阻塞IO,提高了性能。丰富的API:提供了丰富…...

【IntelliJ IDEA 集成工具】TalkX - AI编程助手
前言 在数字化时代,技术的迅猛发展给软件开发者带来了更多的挑战和机遇。为了提高技术开发群体在繁多项目中的编码效率和质量,他们需要一个强大而专业的工具来辅助开发过程,而正是为了满足这一需求,TalkX 应运而生。 一、概述 1…...

二叉搜索树Ⅲ【东北大学oj数据结构8-3】C++
二叉搜索树 III B:在二叉搜索树II中加入delete指令,创建程序对二叉搜索树T执行如下指令。 插入 k:将key k 插入到 T 中。 find k:报告T中是否存在key k。 delete k:删除key为 k 的节点。 打印:使用中序树遍…...

【面试笔记】CPU 缓存机制
CPU 缓存机制 1. CPU Cache 与 MMU1.1 MMU 是什么?TLB 又是什么?他们是怎么工作的?2.2 简述 Cache 与 MMU 的协作关系?2.3 简述 Cache 与 MMU 的协作工作流程? 2. CPU 多层次缓存2.1 什么是 CPU 的多层次缓存结构&…...

MySQL基础函数使用
目录 简介 1. 单行函数 1.1 字符串函数 1.2 日期函数 1.3 数值函数 1.4 转换函数 1.5 其他函数 2. 多行函数 示例: 3. 数据分组 示例: 4. DQL单表关键字执行顺序 示例: 5. 多表查询 示例: 6. 表与表的外连接 示例…...

解决docker环境下aspose-words转换word成pdf后乱码问题
描述 环境:docker 部署工具:Jenkins 需求:本地上传的word文档需要转换成pdf 问题:转换之后的pdf文档出现小框框(乱码) 转换成PDF的操作 pom: <dependency><groupId>org.apach…...

C# 生成随机数的方法
C# 提供了一种强大而方便的工具类 Random ,用于生成随机数。这里将分类讨论如何通过 C# 实现随机数生成,以及应用于实际情况中的一些具体方案。 一、Random 类概述 Random 类表示一个伪随机数生成器,用于生成满足随机性统计要求的数字序列。…...

ip_done
文章目录 路由结论 IP分片 数据链路层重谈Mac地址MAC帧报头局域网的通信原理MSS,以及MAC帧对上层的影响ARP协议 1.公司是不是这样呢? 类似的要给运营商交钱,构建公司的子网,具有公司级别的入口路由器 2.为什么要这样呢?? IP地…...

3D可视化引擎HOOPS Visualize与HOOPS Luminate Bridge的功能与应用
HOOPS Visualize HPS / HOOPS Luminate Bridge为开发者提供了强大的工具,用于在CAD应用中集成逼真的渲染能力。本文旨在梳理该桥接产品的核心功能、使用方法及应用场景,为用户快速上手并充分利用产品特性提供指导。 桥接产品的核心功能概述 HOOPS Lumi…...

Docder 搭建Redis分片集群 散片插槽 数据分片 故障转移 Java连接
介绍 使多个 Redis 实例共同工作,实现数据的水平扩展。通过将数据分片到多个节点上,Redis 集群能够在不牺牲性能的前提下扩展存储容量和处理能力,从而支持更高并发的请求。Redis 集群不仅支持数据分片,还提供了自动故障转移和高可…...

校园交友app/校园资源共享小程序/校园圈子集合二手物品交易论坛、交友等综合型生活服务社交论坛
多客校园社交圈子系统搭建 校园交友多功能系统源码: 1、更改学校为独立的模块。整体UI改为绿色,青春色,更贴近校园风格。2、圈子归纳到学校去进行运营。每个学校可建立多个圈子。和其他学校圈子互不干扰。3、增加用户绑定学校,以后进入将默认…...

Chaos Mesh云原生的混沌测试平台搭建
Chaos Mesh云原生的混沌测试平台搭建 一.环境准备 确认已经安装helm,如要查看 Helm 是否已经安装,请执行如下命令: helm version二.使用helm安装 1.添加 Chaos Mesh 仓库 在 Helm 仓库中添加 Chaos Mesh 仓库: helm re…...

Vue3之组合式API详解
Vue 3引入了一种新的API风格——组合式API(Composition API),旨在提升组件的逻辑复用性和可维护性。本文将详细阐述Vue 3中的组合式API,包括其定义、特点、使用场景、优势等,并给出具体的示例代码。 一、定义 组合式…...

大模型的构建与部署(3)——数据标注
版权声明 本文原创作者:谷哥的小弟作者博客地址:http://blog.csdn.net/lfdfhl1. 数据标注的重要性 1.1 增强数据可解释性 数据标注通过为原始数据添加标签或注释,显著增强了数据的可解释性。在机器学习和深度学习领域,模型的训练依赖于大量带标签的数据。这些标签不仅帮助…...

AI发展与LabVIEW程序员就业
人工智能(AI)技术的快速发展确实对许多行业带来了变革,包括自动化、数据分析、软件开发等领域。对于LabVIEW程序员来说,AI的崛起确实引发了一个值得关注的问题:AI会不会取代他们的工作,导致大量失业&#x…...

本地事务 + 消息队列事务方案设计
Spring Boot 和 RocketMQ 在Spring Boot项目中实现“本地事务 消息队列事务”的方案,可以按照以下步骤实现: 先执行MySQL本地事务操作(未提交)随后发送消息到消息队列(如RocketMQ事务消息)等待消息队列确…...

pinctrl子系统学习笔记
一、背景 cpu的gpio引脚可以复用成多个功能,如可以配置成I2C或者普通GPIO模式。配置方式一般是通过写引脚复用的配置寄存器,但是不同芯片厂商配置寄存器格式内容各不相同,设置引脚复用无法做到通用且自由的配置,只能在启动初始化…...

使用vue-element 的计数器inputNumber,传第三个参数
使用vue-element 的计数器inputNumber。 其中的change 事件中,默认自带两个参数,currentValue和oldValue,分别代表改变后的数和改变前的数, 如果想要传第三个参数, change"(currentValue, oldValue) > numCha…...

如何从0构建一个flask项目,直接上实操!!!
项目结构 首先,创建一个项目目录,结构如下: flask_app/ │ ├── app.py # Flask 应用代码 ├── static/ # 存放静态文件(如CSS、JS、图片等) │ └── style.css # 示例…...

Mongoose连接数据库操作实践
文章目录 介绍特点:Mongoose 使用:创建项目并安装:连接到 MongoDB:定义 Schema:创建模型并操作数据库:创建文档:查询文档:更新文档:删除文档:使用钩子&#x…...

centos 7.9 freeswitch1.10.9环境搭建
亲测版本centos 7.9系统–》 freeswitch1.10.9 一、下载插件 yum install -y git alsa-lib-devel autoconf automake bison broadvoice-devel bzip2 curl-devel libdb4-devel e2fsprogs-devel erlang flite-devel g722_1-devel gcc-c++ gdbm-devel gnutls-devel ilbc2...

Gitlab服务管理和仓库项目权限管理
Gitlab服务管理 gitlab-ctl start # 启动所有 gitlab 组件; gitlab-ctl stop # 停止所有 gitlab 组件; gitlab-ctl restart # 重启所有 gitlab 组件; gitlab-ctl status …...

LLMs之Llama-3:Llama-3.3的简介、安装和使用方法、案例应用之详细攻略
LLMs之Llama-3:Llama-3.3的简介、安装和使用方法、案例应用之详细攻略 目录 相关文章 LLMs之LLaMA:LLaMA的简介、安装和使用方法、案例应用之详细攻略 LLMs之LLaMA-2:LLaMA 2的简介(技术细节)、安装、使用方法(开源-免费用于研究和商业用途…...

OpenCV函数及其应用
1. 梯度处理的Sobel算子函数 功能 Sobel算子是一种用于边缘检测的离散微分算子,它结合了高斯平滑和微分求导,用于计算图像亮度的空间梯度。 参数 src:输入图像。 dst:输出图像。 ddepth:输出图像的深度。 dxÿ…...

vulnhub靶场【DriftingBlues】之3
前言 靶机:DriftingBlues-3,IP地址192.168.1.60 攻击:kali,IP地址192.168.1.16 都采用虚拟机,网卡为桥接模式 主机发现 使用arp-scan -l或netdiscover -r 192.168.1.1/24 信息收集 使用nmap扫描端口 网站探测 访…...

文件上传—阿里云OSS对象存储
目录 一、OSS简介 二、OSS基本使用 1. 注册账号 2. 基本配置 (1) 开通OSS (2) 创建存储空间 (3) 修改权限 (4) 配置完成,上传一张图片,检验是否成功。 (5) 创建AccessKey 三、Java项目集成OSS 1. 导入依赖 2. Result.java代码: …...

mybatis-plus超详细讲解
mybatis-plus (简化代码神器) 地址:https://mp.baomidou.com/ 目录 mybatis-plus 简介 特性 支持数据库 参与贡献 快速指南 1、创建数据库 mybatis_plus 2、导入相关的依赖 3、创建对应的文件夹 4、编写配置文件 5、编写代码 …...

【Linux】--- 进程的概念
【Linux】--- 进程的概念 一、进程概念二、PCB1.什么是PCB2.什么是task_struct(重点!)3.task_struct包含内容 三、task_struct内容详解1.查看进程(1)通过系统目录查看(2)通过ps命令查看…...

Unity NTPComponent应用, 实现一个无后端高效获取网络时间的组件
无后端高效获取网络时间的组件 废话不多说,直接上源码m_NowSerivceTime 一个基于你发行游戏地区的时间偏移, 比如北京时区就是 8, 巴西就是-3,美国就是-5using Newtonsoft.Json; 如果这里报错, 就说明项目没有 NewtonsoftJson插件…...