/RTMP 拉流、推流、录像及轻量级 RTSP 服务的全能终端。 LibPublisherWrapper: 负责推流、录像、RTSP 服务及图层处理的封装。 我们不需要解码视频帧,而是直接从播放器底层 hook 住编码后的数据包(AVPacket),直接喂给推流器。 我们可以只录像不推流,也可以边推流边录像。底层支持自动切片(分段保存)。 全栈式的协议栈(Full-Stack Protocol Support): 一套代码打通了 RTSP/RTMP 拉流、RTMP 推流、轻量级 RTSP 服务端以及本地 MP4 录像。
通过 Android 端 RTSP 播放器模块及 YUV 数据回调机制,系统可在实时播放的同时进行 动态水印叠加、录像存档、二次编码以及轻量级 RTSP 服务再发布。 2️⃣ 多任务耦合导致系统割裂传统检测机器人的视频回传、录像、推流、控制往往由不同模块独立实现。这意味着时钟系统各自为政,延迟无法统一,录像与预览不同步、控制反馈滞后等问题频繁出现。 2️⃣ 播放解码层 主控端或 Android 终端通过大牛直播SDK 的 RTSP 播放器模块接入实时流。 SDK 内核以全自研内核实现全链路处理,保证了在嵌入式或定制系统中的可裁剪性与一致性。 3️⃣ 推送端:再编码与录像/再发布推送端收到帧数据后,通过 JNI 调用进入 SmartPublisherJniV2 的底层模块, 由其统一调度录像(MP4/FLV)与轻量级 RTSP/RTMP/HTTP-FLV (SmartPlayer)从 RTSP 拉流并解码; 2️⃣ 解码后帧通过 YUV 回调直接送入推送端接口(LibPublisherWrapper); 3️⃣ 推送端(SmartPublisher)负责二次编码与录像
技术背景上篇文章,我们介绍了Unity平台RTMP、RTSP播放器录像功能,这里,我们详细的介绍下,做个RTSP或RTMP拉流端录像模块有哪些需要考虑的技术点? 在我们常规的考量,RTMP或RTSP流录制,无非就是拉取数据写文件而已,接口设计StartRecorder()/StopRecorder()足矣。 后再录像;支持录像事件回调,从开始录像,到录像结束均有event callback上来。 除了上述的设计,还需要确保和RTSP、RTMP播放在一个实例下,确保播放的过程中可以随时录像,录像的过程中,可以随时播放。 call_back);对应录像回调:/*录像回调status: 1:表示开始写一个新录像文件. 2:表示已经写好一个录像文件file_name: 实际录像文件名*/typedef NT_VOID(NT_CALLBACK
技术背景我们在对接RTSP播放器相关的技术诉求的时候,遇到这样的需求,客户做特种设备巡检的,需要把摄像头拍到的RTSP流拉下来,然后添加动态水印后,再生成新的RTSP URL,供平台调用。 技术实现在此之前,大牛直播SDK有非常成熟的RTSP播放、轻量级RTSP服务和录像模块,要做的就是,拉取到RTSP流后,把解码后的YUV或RGB回调给上层,上层通过图层的形式,添加动态文字水印(图片水印亦可 ),然后,投递给轻量级RTSP服务,RTSP服务对外提供个拉流的RTSP URL,无图无真相:左侧就是我们基于Windows平台C#的播放器的demo,二次开发的,添加了软、硬编码设置(考虑到分辨率比较高 ,添加支持了硬编码选项设置)、动态水印设置、轻量级RTSP服务、实时录像和RTMP推送。 RTSP拉流二次编码,如果做到客户端尽量无感知,需要尽可能的压缩整体处理的延迟,确保从数据采集,到二次处理,到再次播放出来毫秒级,满足绝大多数场景下的技术需求。
目前,我们录像模块,涵盖了Windows/Linux/android/iOS 推送端(涵盖轻量级RTSP服务模块、RTMP推流模块和GB28181设备接入模块)和RTSP|RTMP播放端,主要实现了如下功能 : [拉流]支持拉取RTSP流录像; [拉流]支持拉取RTMP流录像; [推流端录像]支持RTMP|RTSP推送端同步录像; [轻量级RTSP服务录像]支持轻量级RTSP服务SDK同步录像; [推流端录像实时暂停 /恢复]支持推送端录像过程中实时暂停录像、恢复录像; [逻辑分离]大牛直播录像SDK不同于普通录像接口,更智能,和推送、播放、转发、内置轻量级RTSP服务SDK功能完全分离,支持随时录像; [url切换 = 1) { sb.Append("new file: "); } else if(status == 2) 专注做好一件事,极致做精一件事,口碑做成一件事,比快更快,让RTSP|RTMP直播播放器更适用于延迟要求苛刻的使用场景(如平衡控制、无人机、智能机器人等),是我们一直的追求。
RTSP协议探究RTSP播放器可广泛应用于对延迟要求比较高的场景下,比如协同操控相关的智能机器人或无人机、实时视频监控、远程视频会议、网络电视等。通过控制信令实现对流媒体数据的远程控制和传输管理。 如何实现RTSP播放器 本文以大牛直播SDK的Windows平台RTSP直播播放器为例,大概介绍下,如何集成RTSP直播播放能力。 RTMP/RTSP拉流端录像NT_SP_SetRecorderDirectory:设置录像目录NT_SP_SetRecorderFileMaxSize:设置单个文件最大大小NT_SP_SetRecorderFileNameRuler :设置录像文件名生成规则NT_SP_SetRecorderCallBack:设置录像回调接口NT_SP_SetRecorderAudioTranscodeAAC:设置录像时音频转AAC编码的开关, aac Length + 1];buffer3[buffer2.Length] = 0;Array.Copy(buffer2, buffer3, buffer2.Length);IntPtr file_name_ptr
前言:为什么我们需要“二次编码”?在安防监控、教育直播或庭审录像等场景中,我们往往不满足于仅仅把视频“拉下来看”。 本文将结合SmartMediakit(大牛直播SDK),详细拆解如何在Windows平台实现一个全能中间件”:它既是播放器(拉流解码),又是渲染引擎(GDI+绘制水印),更是推流器(二次编码推RTMP+ 本地录像)。 核心架构设计我们的目标是打造一个闭环的视频处理管道(Pipeline):[RTSP/RTMP源] ⬇️ (拉流)[SmartPlayer播放器] -> 解码 -> [RGB32/I420数据回调] 一、 播放器端:获取“纯净”的RGB数据首先,我们需要配置播放器,使其不直接上屏渲染(或在渲染的同时),将解码后的原始数据抛出来。
引言在本文中,我们将介绍如何基于大牛直播SDK构建一个功能强大的RTSP|RTMP播放器,该播放器利用自定义SDK解码视频、处理RGB帧,并将其推送到RTMP流中进行直播。 RTMP,实现RGB|YUV数据的二次编码和RTMP推送。 RTSP/RTMP播放器架构: 该播放器接收RTSP流,将其解码为RGB帧,处理后将这些帧推送到RTMP流进行直播广播。 它利用自定义SDK来处理视频解码、帧处理和流推送。 2. 设置事件回调播放器SDK提供了多个事件回调函数,这些回调函数会在特定事件发生时触发,比如接收到新的视频帧或遇到缓冲事件。这些回调函数在初始化时进行设置。 结论构建一个RTSP|RTMP播放器并进行RGB帧处理是实时媒体应用中的一项基本技能。通过使用SmartPlayer SDK,我们能够轻松地集成视频解码、帧处理和流推送在一个平台中。
技术实现废话不多说,下图先通过Android平台拉取RTSP流,然后把解码后的yuv或rgb数据回上来,以图层的形式投递到推送端,需要加水印的话,添加文字水印或图片水印(系动态水印)图层,底层做动态叠加后二次编码打包 ,通过启动轻量级RTSP服务,发布RTSP流,生成二次处理后的RTSP新的拉流url,如果需要推送至RTMP,只要调用推送RTMP的接口即可,本地录制,可以设置录制目录等信息,保存二次编码后的MP4文件到本地 int half_h = (height_+1)/2;y_row_bytes_ = align(width_,2);u_row_bytes_ = align(half_w, 2);v_row_bytes ");btnPusherPauseRecorder.setText("暂停录像");btnPusherPauseRecorder.setEnabled(false);isPauseRecording = RTSP服务、推送至RTMP服务的sample代码,如果需要本地录像,也可以本地录制,配合我们的RTMP、RTSP播放器,整体延迟毫秒级(实测非常低,有需要的开发者可以私聊我测试),可完全用于摄像头的控制
通过全自研技术框架,大牛直播SDK的RTSP播放器以功能齐全、性能优异、超低延迟、低代码低集成复杂度,在行业内享有较高的评价,服务了数百家B端用户。 快照与录像:支持在播放过程中进行快照和录像,方便用户保存重要画面或进行后续分析。 客户评价与市场认可客户反馈:数百家业内公司一致认可,大牛直播SDK的RTSP播放器在性能、稳定性和功能方面均表现出色。 ]完美支持和录像SDK组合使用。 RTSP播放器在超低延迟、稳定性、跨平台支持、功能丰富性、易用性与集成性等方面均表现出色,是一款值得推荐的流媒体播放解决方案。
好多开发者使用场景,除了实现基础的低延迟RTSP、RTMP播放外,还需要实现RTSP、RTMP流数据的本地录像功能。 本文以大牛直播SDK的Windows平台播放模块为例,介绍下如何实现RTSP、RTMP流录像。 功能设计 [拉流]支持拉取RTSP流录像; [拉流]支持拉取RTMP流录像; [逻辑分离]和播放、转发功能完全分离,支持随时录像; [参数设置]支持设置单个录像文件大小、录像路径等,并支持纯音频、纯视频 、音视频录制模式; [音频转码]支持音频(PCMU/PCMA,Speex等)转AAC后再录像; [265支持]支持RTSP/RTMP H.265录制到MP4文件; [事件回调]从开始录像,到录像结束均有 : 1:表示开始写一个新录像文件. 2:表示已经写好一个录像文件 * file_name: 实际录像文件名 */[UnmanagedFunctionPointerAttribute(CallingConvention.StdCall
RTMP超低延迟直播播放器SDK(支持RTMP H.265扩展播放); RTSP直播播放器SDK 支持RTSP H.265播放及扩展录像、业内为数不多真正好用的RTSP播放器SDK,支持IE浏览器 RTMP超低延迟直播播放器SDK(支持RTMP H.265扩展播放); RTSP直播播放器SDK 支持RTSP H.265播放及扩展录像、业内为数不多真正好用的RTSP播放器SDK; Unity3D RTMP/RTSP直播播放器SDK 业内首家Android支持Unity3D的超低延迟RTMP/RTSP直播播放器SDK,支持快照、录像、实时静音、view旋转、快速切换URL等特性; 录像SDK RTMP超低延迟直播播放器SDK(支持RTMP H.265扩展播放); RTSP直播播放器SDK 支持RTSP H.265播放及扩展录像、业内为数不多真正好用的RTSP播放器SDK; Unity3D RTMP/RTSP直播播放器SDK 业内首家iOS支持Unity3D的超低延迟RTMP/RTSP直播播放器SDK,支持快照、录像、实时静音、view旋转、快速切换URL等特性; 录像SDK 支持拉取
为了满足多路 RTSP 流的同时播放需求,基于大牛直播SDK开发了一款功能丰富、性能稳定的多路 RTSP 播放器。本文将深入解析该播放器的实现原理、代码架构以及关键功能模块。 二、整体架构设计(一)核心组件 SDK 封装层 :利用大牛直播SDK的SmartMediakit框架提供的 SmartPlayerJniV2 类,通过 JNI 调用原生库实现 RTSP 流的底层处理,包括播放 ├─ 播放状态控制(播放、暂停、停止) ├─ 录像功能管理 ├─ 截图功能实现 └─ 事件回调处理SDK 封装层(SmartPlayerJniV2) │ ├─ RTSP 然后,调用 SDK 的 SmartPlayerStartRecorder 方法开始录像,并更新播放器的录像状态。 该播放器具有以下优势: 多路播放能力 :能够同时播放多路 RTSP 流,满足视频监控、流媒体测试等场景的需求。 功能丰富 :支持播放、停止、截图、录像等多种功能,满足不同用户的使用需求。
2. :RTSP 视频源 → [RTSP 播放器 SDK] → 安卓 / Windows 播放界面推荐模块配置: 播放端使用 RTSP Player SDK(开启低延迟模式 + 硬解支持) 开启 YUV/RGB 为便于开发者快速了解各模块功能覆盖情况,现整理如下能力矩阵:模块类型支持平台播放协议推送协议解码方式数据回调录像能力网络策略拓展支持RTSP 播放器 SDKAndroid / iOS / Windows ––支持实时录制支持公网/内网穿透低延迟 P2P 交互SEI 数据扩展 SDK全平台任意支持视频流RTSP/RTMP–SEI 发送 / 接收可随流录制保存–支持图像标注 / AI 信息注入 注解说明: 案例2:Android 移动终端采集 + 推送 + 录像 场景描述:用于远程运维、巡检、教学、新闻移动直播等场景,需边拍边推 + 实时录像 推荐组合: RTMP 推送模块(支持摄像头采集、屏幕录制)
下面会详细说明2中常见的集成方式。2、视频流媒体集成2.1、WEB页面集成直接集成包含播放器的页面到业务系统中去,如 iframe 方式集成页面。 LiveGBS支持集成分享的直播页面,也可以集成云端录像或是设备录像回看页面2.1、视频流地址播放器集成通过接口或其它方式获取视频流的地址,设置到web播放器|APP播放器|PC播放器中,进行播放。 通过传递的type 区分是设备录像 还是 云端录像<iframe src="http://ip:10000/playback.html? 可以使用LivePlayer.js H5<em>播放器</em>播放。 、开启<em>RTSP</em>在基础配置 -> 流媒体服务配置中配置,<em>RTSP</em>端口,对应的 <em>RTSP</em> 端口需要在服务端开放 TCP4.2.8.2、配置<em>RTSP</em>流用户密码LiveSMS中配置文件中配置 livesms.ini
一个可实际落地的RTSP/RTMP直播播放模块,需要同时兼顾低延迟、首屏速度、软硬解兼容、横竖屏适配、录像快照、弱网状态监控、YUV/SEI回调以及播放器生命周期管理。 本文结合大牛直播SDK(SmartMediaKit)iOS版SmartiOSPlayerV2 Demo,系统梳理RTSP/RTMP直播播放器在iPhone/iPad端的集成方式和关键设计点。 关键词:SmartMediaKit、iOS播放器、RTSP播放器、RTMP播放器、低延迟直播、VideoToolbox、Metal、AVSampleBufferDisplayLayer、音视频开发移动端直播播放器 典型使用场景移动安防监控在安防项目中,iPhone或iPad常用于查看IPC、NVR或边缘设备输出的RTSP视频。播放器需要支持横屏查看、低延迟预览、快照留证、本地录像和异常状态提示。 本地录像和录像回放SmartiOSPlayerV2支持播放侧录像。
RTSP协议视频平台EasyNVR有直播版和录像版,录像版可以直接进行录像存储和回放,但是很多用户由于没有回放需求,就会使用硬盘录像机作为视频存储设备。 问题解决 1、首先判断是否为用户的rtsp的配置问题,因为有的用户硬盘录像机版本比较新,所以有一些旧的rtsp规则是不生效的,所以我们通过rtsp规则的替换来测试是否为rtsp规则地址配置错误: ? 2、如上图所示,在进行了rtsp地址的替换之后,视频页面刷新也是不在线,所以我们接入正常的摄像头来查看是否为服务的问题: ? 3、通过上图得知,其他的通道可以正常的进行播放,但是海康硬盘录像机同样也是不在线的,而且最奇怪的一点是海康的rtsp任何规则都无法播放,放到VLC播放器里面同样无效,但是在硬盘录像机的预览页面却是可以进行正常播放的 6、经过测试发现,当配置更改成视频流之后,并且调整帧率和码率,则rtsp流可以输出到EasyNVR或者VLC播放器。 ?
技术背景我们在对接RTSP直播播放器相关技术诉求的时候,好多开发者,除了选用成熟的RTSP播放器外,还想知其然知其所以然,对RTSP播放器的整体开发有个基础的了解,方便方案之作和技术延伸。 技术实现技术难点在探讨RTSP直播播放器技术实现之前,我们先来看,为什么RTSP播放器的开发看似简单,实则复杂,或者说做播放器容易,做个好的播放器,为什么就那么难? ]完美支持和录像SDK组合使用。 ,不会造成延迟累积;2. ;return false;}lib_player_.SetSmartPlayerEventCallbackV2(handle, new EventHandleV2());lib_player_.SmartPlayerSetBuffer
好多开发者提到,在目前开源播放器如此泛滥的情况下,为什么还需要做自研框架的RTSP播放器,自研和开源播放器,到底好在哪些方面?以下大概聊聊我们的一点经验,感兴趣的,可以关注 github: 1. 低延迟:大多数RTSP的播放都面向直播场景,如果延迟过大,严重影响体验,所以,低延迟是衡量一个好的RTSP播放器非常重要的指标,目前大牛直播SDK的RTSP直播播放延迟比开源播放器更优异(大牛直播SDK 延迟在1秒左右,开源播放器如VLC,延迟相对比较大),而且长时间运行下,大牛直播SDK播放端不会造成延迟累积,开源或第三方播放器,长时间运行,容易产生延迟累积; 2. 支持多实例:大牛直播SDK提供的RTSP直播播放SDK支持在设备性能允许的情况下,支持多实例播放RTSP流数据,大多开源播放器对多实例支持不太友好; 4. 长期运行稳定性:大牛直播SDK提供的RTSP直播播放SDK适用于长时间运行,开源播放器对长时间运行稳定性支持较差; 11.
如果需要把数据投递到轻量级RTSP服务也可以。系统设计架构图如下:1. 拉流:通过RTSP直播播放SDK的数据回调接口,拿到音视频数据;2. 录像:如果需要录像,借助RTSP直播播放SDK,拉到音视频数据后,直接存储MP4文件即可;4. ,实时静音;支持转发过程中,切换rtmp/rtsp url,此外,windows平台还支持切换本地flv文件;支持录像模块扩展,可边转发边录制,每个文件录制开始结束,均有状态回馈;支持内网RTSP网关模块扩展 转RTMP推送的demo界面,可以看到,这个demo,不是单纯的RTSP转RTMP推送的,还可以实现RTSP流获取后,回调上来解码后的数据,然后添加动态水印或其他处理后,把video数据二次编码推送出去 此外,还可以实现拉流的数据预览播放、把数据注入到轻量级RTSP服务模块,然后二次编码的数据,本地录像、快照等。