[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”

厚积薄发,登上山顶,不是为了饱览风光,是为了寻找更高的山峰,从敬畏到颠覆,以匠人之心,专注、极致、智慧,志在成为业内为数不多真正稳定可靠的流媒体技术方案缔造者。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/938019.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C语言实现八大排序算法

目录 1.插入排序 1.1 直接插入排序 1.2 希尔排序 2. 选择排序 2.1 直接选择排序 2.2 堆排序 *TopK问题: 3. 交换排序 3.1 冒泡排序 3.2 快速排序 1. Hoare版本 2. 挖坑法 3. 前后指针法 4. 快速排序优化 5. 非递归快速排序 4.归并排序 1.递归式归并…

走进 RAG 技术:一场智能数据交互的奇幻之旅

朋友们,咱身处的这个时代,科技那可是跟开了挂似的往前冲,其中人工智能更是厉害得没话说,宛如一个充满无限可能的魔法领域,时不时就给咱的生活来个大变样。而在这其中,RAG 技术就像是突然冒出来的一颗超亮眼…

商业化大前端在性能优化领域的探索与实践

导读:在业务飞速发展的过程中,用户体验是必不可少的一个环节,而页面性能是直接影响用户体验的重要因素。当页面加载时间过长、交互操作不流畅时,意味着业务可能会出现转化率降低、用户流失等业务问题。在过去一年,为了…

C# 位运算

一、数据大小对应关系 说明: 将一个数据每左移一位,相当于乘以2。因此,左移8位就是乘以2的8次方,即256。 二、转换 1、 10进制转2进制字符串 #region 10进制转2进制字符串int number1 10;string binary Convert.ToString(num…

YOLOv10改进,YOLOv10利用DLKAttention融合DCNv3、DCNv4形成全新的可变形大核注意力,并二次创新C2f结构,全网首发

理论介绍 完成本篇需要参考以下三篇文章,并已添加到YOLOv10代码中 YOLOv10改进,YOLOv10添加DCNv3可变性卷积与C2f结构融合(无需编译)YOLOv10改进,YOLOv10添加DCNv4可变性卷积(windows系统成功编译),全网最详细教程YOLOv10改进,YOLOv10添加DLKA-Attention可变形大核注意力…

Linux高性能服务器编程 | 读书笔记 | 8. 信号

8. 信号 信号是由用户、系统、进程发送给目标进程的信息,以通知目标进程某个状态的改变或系统异常。Linux信号可由以下条件产生: 对于前台进程,用户可通过输入特殊终端字符来给它发送信号,如输入CtrlC通常会给进程发送一个中断信…

记录学习《手动学习深度学习》这本书的笔记(五)

这一章是循环神经网络,太难了太难了,有很多卡壳的地方理解了好久,比如隐藏层和隐状态的区别、代码的含义(为此专门另写了一篇【笔记】记录对自主实现一个神经网络的步骤的理解)、梯度计算相关(【笔记】记录…

【git、gerrit】特性分支合入主分支方法 git rebase 、git cherry-pick、git merge

文章目录 1. 场景描述1.1 分支状态 2. 推荐的操作方式方法 1:git merge(保留分支结构)方法 2:git rebase(线性合并提交历史)直接在master分支执行git merge br_feature,再 执行 git pull --reba…

Python-基于Pygame的小游戏(天空之战)(一)

前言:不久前接触了Python的游戏制作的相关第三方库,于是学习了pygame的相关内容,想制作一款基于pygame的小游戏。因为还不太熟悉游戏制作和pygame,部分内容我参考了《Python-从入门到精通》这本书。那么好,话不多说,我…

探索 Cesium 的未来:3D Tiles Next 标准解析

探索 Cesium 的未来:3D Tiles Next 标准解析 随着地理信息系统(GIS)和 3D 空间数据的快速发展,Cesium 作为领先的开源 3D 地球可视化平台,已成为展示大规模三维数据和进行实时渲染的强大工具。近年来,随着…

Redis和数据库的一致性(Canal+MQ)

想要保证缓存与数据库的双写一致,一共有4种方式,即4种同步策略: 先更新缓存,再更新数据库;先更新数据库,再更新缓存;先删除缓存,再更新数据库;先更新数据库,再…

CNCF云原生生态版图-分类指南(一)- 观测和分析

CNCF云原生生态版图-分类指南(一)- 观测和分析 CNCF云原生生态版图-分类指南一、观测和分析(Observability and Analysis)(一)可观测性(Observablility)1. 是什么?2. 解决…

JVM运行时数据区内部结构

VM内部结构 对于jvm来说他的内部结构主要分成三个部分,分别是类加载阶段,运行时数据区,以及垃圾回收区域,类加载我们放到之后来总结,今天先复习一下类运行区域 首先这个区域主要是分成如下几个部分 下面举个例子来解释…

C语言学习day22:URLDownloadToFile函数/开发文件下载工具

简言: 在之前我们去下载某个东西都是用的迅雷之类的软件,但是现在,只要提供一个地址,或者一个链接,我们自己去做一个工具去下载。这就是我们这篇的主要内容。 也就是我们的winAPI:URLDownloadToFile函数 …

购物车案例--分模块存储数据,发送请求数据渲染,底部总计数量和价格

shift鼠标右键,打开powershell,新建项目 自定义 只有一个页面,不涉及路由,勾选vuex,css,babel 无需保存预设 回车项目开始创建 项目用vscode打开 将src里的内容全部清空 将第七天的课程准备代码复制粘贴到src中 刷新页面&…

SQL server学习06-查询数据表中的数据(中)

目录 一,聚合函数 1,常用聚合函数 2,具体使用 二,GROP BY子句分组 1,基础语法 2,具体使用 3,加上HAVING对组进行筛选 4,使WHERE记录查询条件 汇总查询:在对数…

YOLOv5-7.0训练过程中出现报错Example: export GIT_PYTHON_REFRESH=quiet

出现报错: This initial message can be silenced or aggravated in the future by setting the $GIT_PYTHON_REFRESH environment variable. Use one of the following values: - quiet|q|silence|s|silent|none|n|0: for no message or exception - warn…

从0到1实现vue3+vite++elementuiPlus+ts的后台管理系统(一)

前言:从这篇文章开始实现vue3vite的后台管理系统,记录下自己搭建后台系统图的过程。 这篇文章完成项目的初始化和基本配置,这一步可以直接跟着vue3官网进行。整个系列只有前端部分,不涉及后端。 vue3官网:https://cn.…

Spring Boot教程之二十五: 使用 Tomcat 部署项目

Spring Boot – 使用 Tomcat 部署项目 Spring Boot 是一个基于微服务的框架,在其中创建可用于生产的应用程序只需很少的时间。Spring Boot 建立在 Spring 之上,包含 Spring 的所有功能。如今,它正成为开发人员的最爱,因为它是一个…

java中操作线程

文章目录 前言创建与运行线程1. 创建线程①、方法1(直接new)②、方法2(使用Runnable配合Thread进行new操作)③、方法3(FutureTask对象实现)④、线程创建原理特别注意! 2查看与杀死线程①、 Windows下 :②、 Java下 : 3…