首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏RTSP/RTMP直播相关

    Windows平台如何实现RTSP|RTMP录像?

    ​好多开发者使用场景,除了实现基础的低延迟RTSP、RTMP播放外,还需要实现RTSP、RTMP流数据的本地录像功能。 本文以大牛直播SDK的Windows平台播放模块为例,介绍下如何实现RTSP、RTMP录像。 功能设计 [拉流]支持拉取RTSP流录像; [拉流]支持拉取RTMP录像; [逻辑分离]和播放、转发功能完全分离,支持随时录像; [参数设置]支持设置单个录像文件大小、录像路径等,并支持纯音频、纯视频 、音视频录制模式; [音频转码]支持音频(PCMU/PCMA,Speex等)转AAC后再录像; [265支持]支持RTSP/RTMP H.265录制到MP4文件; [事件回调]从开始录像,到录像结束均有 | 0x5, /*断开连接*/ NT_SP_E_EVENT_ID_NO_MEDIADATA_RECEIVED = NT_SP_E_EVENT_ID_BASE | 0x8, /*收不到RTMP

    70310编辑于 2024-10-01
  • 来自专栏RTSP/RTMP直播相关

    iOS平台如何实现RTSP|RTMP播放端录像

    ​技术背景我们在做RTSP、RTMP直播播放器的时候,有个比较重要的功能,就是拉流端实时录像,包括设置单个录像文件大小、文件前缀、audio转AAC、只录制视频或只录制音频、开始录像、停止录像事件状态回调等 我们录像模块,覆盖了RTMP、轻量级RTSP服务、RTSP|RTMP播放端录像,平台覆盖了Windows、Linux、Android、iOS,主要功能设计如下: [拉流]支持拉取RTSP流录像; [拉流 ]支持拉取RTMP录像; [推流端录像]支持RTMP|RTSP推送端同步录像; [轻量级RTSP服务录像]支持轻量级RTSP服务SDK同步录像; [推流端录像实时暂停/恢复]支持推送端录像过程中实时暂停录像 /PCMA,Speex等)转AAC后再录像; [265支持]支持RTSP/RTMP H.265录制到MP4文件; [推送端265录像]推送端SDK支持H265录像; [推送端外部编码数据对接录像]支持推送端外部编码后数据 总结RTSP、RTMP播放端录像,我们的设计,是播放和录像分离,可以只录像或只播放,如果同时录像和播放,只需要一个拉流实例来完成。​

    65200编辑于 2024-02-11
  • 来自专栏RTSP/RTMP直播相关

    Windows平台如何实现多路RTSP|RTMP流合成后录像或转发RTMP服务

    ​技术背景我们在对接Windows平台RTSP|RTMP直播播放模块的时候,有开发者提出来这样的技术需求,他们做驾考、全景摄像头、多路会议录制等场景的时候,希望把多路视频流数据,合并到一路保存或者对外推送到 RTMP服务。 技术实现多路RTSP|RTMP流合流,实际上我们2016年就有这块demo,当时合流的数据是本地采集的摄像头或屏幕数据,和外部RTSP、RTMP流,合成后输出(类似于传统意义的连麦操作)。 这里大概说下思路,外部的RTSP|RTMP流数据,解码后,把YUV或RGB数据回调上来,然后,按照图层的形式,分别贴摄像头、屏幕数据或解码后的流数据。 );if (add_layer_config(text_layer, type))text_layer_index_ = index++;return index > 0;}合成后数据,可以对外推送到RTMP

    54010编辑于 2024-07-15
  • 来自专栏RTSP/RTMP直播相关

    Unity下如何实现RTMP或RTSP播放端录像

    好多开发者问我们,Unity环境下,除了RTSP或RTMP的播放,如果有录像诉求,怎么实现?实际上录像相对播放来说,更简单一些,因为不涉及到绘制,只要拉流下来数据,直接写mp4文件就好了。 (考虑到磁盘读写IO,Windows平台一般不建议多录录制),录像的话,需要考虑的是,设置好文件录制规则,比如,是否录制纯音频或纯视频、单个录制文件大小、文件录制目录等,并设置录像回调事件:/* * SmartPlayerWinMono.cs file_name); } else if (status == 2) //status 2:表示已经写好一个录像文件 { Debug.Log("RecordCallBack, 已生成一个录像文件 NTSmartPlayerSDK.NT_SP_Close(videoctrl[sel].player_handle_); videoctrl[sel].player_handle_ = IntPtr.Zero; }}以上是Unity平台RTMP 或RTSP播放端录像相关接口设计和调用实例,感兴趣的开发者可以参考。

    51400编辑于 2023-09-11
  • 来自专栏RTSP/RTMP直播相关

    Android平台RTMP推送端实现外部数据对接推送和录像

    ​ 背景 好多开发者在做Android平台RTMP推送对接的同时,除了编码前的数据外,还有些外部编码数据推送诉求,他们希望外部的编码音视频数据不止可以实现RTMP推送,还可以同时在推送端实时录制下来,本文以我们 (官方)Android平台RTMP直播推送模块为例,介绍下外部数据对接流程和数据录制流程。 对接流程 开始推送 private boolean StartPush() { if (isPushing) return false; //relayStreamUrl = "rtmp * *@param channels 通道数, 如果需要录像的话必须传正确的值, 一般是1或者2 * * @return {0} if successful playerHandle); playerHandle = 0; } return false; } isRecording = true; return true; } 停止录像

    1.2K20发布于 2021-06-21
  • 来自专栏TSINGSEE青犀视频

    EasyDSS修改RTMP推流端口后直播无法回放录像问题优化

    部分情况下,EasyDSS视频流的存在与否就取决于kernel中配置文件参数的正确与否,本文分享的案例就是EasyDSS直播无回放录像的问题。 在EasyDSS-kernel中配置文件参数push rtmp中端口未根据easydss.ini的参数rtmp推流端口而修改,所以在修改该端口时,导致nginx没有推流到录像文件,直播无回放录像。 配置文件如下: 此处我们添加push rtmp参数的正则表达式,在获取到dss_rtmp_port端口发生变化时,根据正则表达式从kernel的配置文件中找到push rtmp该参数的值,并修改该端口 正则表达式:PatternConfPushRTMPPort = push+\s+rtmp.+:(\d+)/record/; 参考代码如下:

    78320发布于 2021-07-30
  • 来自专栏RTSP/RTMP直播相关

    Windows平台RTMP、RTSP播放器录像模块精细化控制

    ​技术背景上篇文章,我们介绍了Unity平台RTMP、RTSP播放器录像功能,这里,我们详细的介绍下,做个RTSP或RTMP拉流端录像模块有哪些需要考虑的技术点? 在我们常规的考量,RTMP或RTSP流录制,无非就是拉取数据写文件而已,接口设计StartRecorder()/StopRecorder()足矣。 后再录像;支持录像事件回调,从开始录像,到录像结束均有event callback上来。 除了上述的设计,还需要确保和RTSP、RTMP播放在一个实例下,确保播放的过程中可以随时录像录像的过程中,可以随时播放。 录像模块设计无图无真相,先看录像设置:图片开始录像、停止录像:图片Windows平台,我们提供了C++和C#的接口,本文以C++接口设计为例:先说录像设置:设置录制纯音频或纯视频: /**

    1.3K00编辑于 2022-12-24
  • 来自专栏RTSP/RTMP直播相关

    Windows平台RTMP推送|轻量级RTSP服务录像模块如何支持中文路径?

    ​技术背景 我们在做Windows平台RTMP推送、轻量级RTSP服务录像模块的时候,部分开发者抱怨路径无法设置中文,只能设置为英文。 、暂停录像、停止录像为例,调用逻辑如下,可以看到除了中文路径诉求,录像模块还可以添加前缀、添加文字、水印: public bool StartRecorder() { NTSmartPublisherSDK.NT_PB_StopRecorder(handle_); try_close_handle(); } 开始录像录像完成后 break; } EventGetPublisherEventMsg(event_log); } 总结 Windows平台RTMP 推送、轻量级RTSP服务配套的录像模块,除了设置录像保存路径外、还可以设置录像文件前缀、是不是添加日期、时间等,还有就是单个录像文件大小,超过这个大小后,会自动切换到下个文件。

    42710编辑于 2024-01-14
  • 来自专栏RTSP/RTMP直播相关

    Windows平台RTSP|RTMP播放器如何实现细粒度录像控制

    技术设计本文以大牛直播SDK的Windows平台RTSP|RTMP直播播放录制功能设计为例,谈谈我们的接口的细粒度设计。 目前,我们录像模块,涵盖了Windows/Linux/android/iOS 推送端(涵盖轻量级RTSP服务模块、RTMP推流模块和GB28181设备接入模块)和RTSP|RTMP播放端,主要实现了如下功能 : [拉流]支持拉取RTSP流录像; [拉流]支持拉取RTMP录像; [推流端录像]支持RTMP|RTSP推送端同步录像; [轻量级RTSP服务录像]支持轻量级RTSP服务SDK同步录像; [推流端录像实时暂停 ; [音频转码]支持音频(PCMU/PCMA,Speex等)转AAC后再录像; [265支持]支持RTSP/RTMP H.265录制到MP4文件; [推送端265录像]推送端SDK支持H265录像; [ 专注做好一件事,极致做精一件事,口碑做成一件事,比快更快,让RTSP|RTMP直播播放器更适用于延迟要求苛刻的使用场景(如平衡控制、无人机、智能机器人等),是我们一直的追求。

    95110编辑于 2024-04-17
  • 来自专栏TSINGSEE青犀视频

    EasyCVR平台接入RTMP协议,接口调用提示获取录像错误该如何解决?

    EasyCVR平台支持海量视频汇聚与管理、处理与分发、智能分析等视频能力,在接入协议上,不仅支持国标GB28181协议、RTSP/Onvif、RTMP等标准协议,还支持HIKSDK、大华SDK、海康Ehome 等厂家私有协议与SDK,可分发RTSP、RTMP、FLV、HLS、WebRTC等多种格式的视频流。 平台可灵活拓展,能实现的视频功能包括视频监控直播、云端录像、云存储、录像检索与回看、智能告警、平台级联等。 图片有用户反馈,EasyCVR平台的历史视频查看接口出现了异常,返回获取录像失败,请求我们排查协助。图片收到反馈后,立即让其将调用的接口提交技术人员,经查验调用接口并无问题。 再次远程排查,发现其他的协议接入的云端录像都能正常返回,但是rtmp_push推上来的则返回上述错误。我们初步猜测,按时间段调用的接口,可能不适用于RTMP推流这种接入协议。

    70810编辑于 2022-07-06
  • 来自专栏RTSP/RTMP直播相关

    Windows平台Unity下实现camera场景推送RTMP|轻量级RTSP服务|实时录像

    ​技术背景我们在对接Unity平台camera场景采集的时候,除了常规的RTMP推送、录像外,还有一些开发者,需要能实现轻量级RTSP服务,对外提供个拉流的RTSP URL。 Windows平台Unity下数据源可采集到以下部分:采集Unity camera场景;采集摄像头;采集屏幕;采集Unity声音;采集麦克风;采集扬声器;Unity PCM混音;对外提供的技术能力有:RTMP 直播推送;轻量级RTSP服务;实时录像、暂停|恢复录像;实时预览。 { StopPushRTMP(); btn_rtmp_pusher_.GetComponentInChildren<Text>().text = "推送RTMP 推送、录像、轻量级RTSP服务,在虚拟仿真、医疗、教育等场景下,应用非常广泛。

    44510编辑于 2023-11-22
  • 来自专栏TSINGSEE青犀视频

    EasyGBS平台出现录像无法播放并存在RTMP重复推流现象,是什么原因?

    EasyGBS国标视频云服务可支持通过国标GB28181协议将设备接入,实现视频的实时监控直播、录像、语音对讲、云存储、告警、级联等功能,也支持将接入的视频流进行全终端、全平台分发,分发的视频流包括RTSP 、RTMP、FLV、HLS、WebRTC等格式,实现Web浏览器、手机浏览器、微信端、PC客户端等各终端无插件播放。 有用户反馈,在EasyGBS平台开启录像后,出现了不能播放的情况。对此情况,我们进行了排查和解决。 1)查看内核日志,发现存在重复推流的现象:2)在调用RTMP推流库推流的地方打断点调试,发现每过几秒就会重复调用推流。进一步排查发现,代码中存在定时任务检测录像是否开启。 如果开启了录像,但是不在推流就会重新推流,但是实际场景中设备一直都在推流。

    45720编辑于 2022-07-22
  • 来自专栏ccf19881030的博客

    视沃科技-大牛直播SDK

    /PCMA,Speex等)转AAC后再录像,业内为数不多的支持RTSP/RTMP H.265录制到MP4文件的录像SDK; RTMP/RTSP一对一互动SDK 基于标准协议(RTMP或RTSP) 支持Unity3D的超低延迟RTMP/RTSP直播播放器SDK,支持快照、录像、实时静音、view旋转、快速切换URL等特性; 录像SDK 支持拉取rtmp/rtsp流实时录像模块/实时快照功能 ,支持纯音频、纯视频、音视频录制模式,支持音频(PCMU/PCMA,Speex等)转AAC后再录像,业内为数不多的支持RTSP/RTMP H.265录制到MP4文件的录像SDK; RTMP/RTSP ,支持音频(PCMU/PCMA,Speex等)转AAC后再录像,业内为数不多的支持RTSP/RTMP H.265录制到MP4文件的录像SDK; RTMP/RTSP多路流媒体转RTMP推送SDK Windows/Android/iOS录像SDK [拉流]支持拉取RTSP流录像; [拉流]支持拉取RTMP录像; [推流端录像]支持RTMP|RTSP推送端同步录像; [轻量级RTSP服务录像

    5.3K30发布于 2020-10-28
  • 来自专栏RTMP推送

    SmartMediaKit 模块化音视频框架实战指南:场景链路 + 能力矩阵全解析

    : 多路拉流同时转发,支持 RTMP 和 GB28181 双向通道配置 同步边转边录,便于后续回放与存证 支持设备端配置 UI/控制接口 场景四:播放端录像与截图归档系统(多终端支持)适用场景:安防录像备份 –软解YUV / PCM–自动重连适配移动播放,轻量引入RTMP 推送 SDKAndroid / iOS / Windows–RTMP硬编 / 软编YUV 输入 / SEI 注入是(推送端录像)自动重连 Linux–GB28181––可选录像主动/被动注册云台控制、设备能力上报一对一互动 SDK(RTSP/RTMP)Android / iOS / WindowsRTSP / RTMPRTSP / RTMP 案例2:Android 移动终端采集 + 推送 + 录像 场景描述:用于远程运维、巡检、教学、新闻移动直播等场景,需边拍边推 + 实时录像 推荐组合: RTMP 推送模块(支持摄像头采集、屏幕录制) 推荐组合: 推送端:RTMP 推送模块 + SEI 扩展数据注入 地面接收端:RTMP 播放模块 + 播放端录像模块 分发中继端:RTMP 录制 + 前端播放 部署环境:无人机安卓终端 + 控制中心

    44910编辑于 2025-08-06
  • 来自专栏用户1692782的专栏

    手撕Rtmp协议细节(3)——Rtmp Body

    上一篇讲了RTMP数据包中关于Header的数据组织格式,不过一个完整的RTMP数据包除了Header之外,紧跟着的是RTMP Body,这一篇就继续来说一下RTMP Body的数据组织结构了。 说到RTMP Body的数据包组织格式,就不得不提到AMF。 那么AMF和RTMP Body又有什么关系呢,不才,RTMP数据包的序列化就是按照AMF的格式进行的。 说完AMF,再回到我们的RTMP Body,RTMP Body就是按照AMF0规范,将数据包进行组织,然后再通过网络发送的。 好了,接下来就结合wireshark实际抓到的RTMP数据包,一起熟悉AMF0,同时也熟悉RTMP Body的数据包组织方式。 先看一下_result的数据包。 ?

    3.3K40发布于 2020-05-20
  • 来自专栏用户1692782的专栏

    手撕rtmp协议细节(2)——rtmp Header

    rtmp的协议的数据包,总的来讲分为两大部分,一部分是Rtmp Header,另一部分为Rtmp Body,这一篇我们来主要讲解一下Rtmp Header的组织形式。 RTMP header的长度不固定,可能的长度为12字节,8字节,4字节,1字节。具体长度为多少个字节,由RTMP header数据包的第一个字节的高2位决定。 ? 抓包看下,RTMP HEADER的长度。 图中,RTMP Header的第一个字节为0x03,高两位的值为00,所以,整个RTMP Header的长度就是4个字节了。 知道了RTMP header的第一个字节的作用以后,接下来我们看下几种不同长度的RTMP Header。 12字节的RTMP Header ?

    4.5K40发布于 2020-05-20
  • 来自专栏RTSP/RTMP直播相关

    多路RTSP-RTMPRTMP定制版

    大牛直播SDK(Github)多路RTMP/RTSP转RTMP转发软件,系原有转发SDK基础上,官方推出的Windows平台定制版。 如监控类摄像机、NVR等,通过厂商说明或Onvif工具,获取拉流的RTSP地址,图形化配置,完成拉流转发等操作,轻松实现标准RTMP服务器(或CDN)对接。 地址; ² 推流RTMP地址:需要转推的RTMP地址; ² 推流播放地址:需要预览的播放地址; ² 音视频转发选项:可选择之转发音频或视频,亦或同时转发音视频; ² 录像参数配置:可选择录制音频或视频, ,在完成“录像全局配置”的前提下,选中配置项,点击“录像”即可; [image] 如需停止录像,选中配置项,点击“停止录像”即可。 ); [image] 录像全局配置: ² 支持设置录像存储目录; ² 支持设定单个录像文件大小; ² 支持设置文件是否增加日期、时间; ² 支持设置是否音频自动转AAC编码后存储。

    3.2K30发布于 2019-09-11
  • 来自专栏EasyNVR

    NVR硬件录像机web无插件播放方案功能实现之相关接口注意事项说明

    ,无法想EasyNVR配置摄像机一样,走一个标准的协议去完成相应的全部功能,因此,我们 都是 通过不同的 SDK来实现对应品牌的录像机的接入,我们 无法做到,满足全部的录像机接入,但是可以做到支持市面大多数主流录像机的接入 ,随着需求的变化,后续会不断增加的; 获取对应时间段录像信息 就接触到的客户反馈而言,大多数的客户都是直接了当的说明,只是希望获取到对应的时间段的录像信息,对于这种明明白白的需求,我们是必须要简简单单的实现的 ,RTMP表示RTMP录像视频流,Handle表示流唯一标识 调用demo /* *param:当前播放通道号 */ function recordPlayer(param){ var 流地址,但是并不完整,我们 需要 根据EasyNVR自身的rtmp端口,拼接出一个完整的RTMP;同时也会生成HLS流地址,根据自身需求,播放对应的地址来达到对应时间端录像的回放; 相信大家也注意到,在调用这个获取录像流地址时 将停止录像播放。

    1.1K10发布于 2020-04-23
  • 来自专栏全栈程序员必看

    rtmp协议详解_rtmp服务器

    前言 最近在学习rtmp协议,在看官方文档的时候总是懵懵懂懂,硬生生看了两天,现在基本上了解rtmp协议了,想用自己觉得比较清晰的方式来讲解rtmp协议,希望能够对向我一样的初学者有所帮助。 本文将通过以下四部分讲解rtmp协议。 1、消息 2、块 3、rtmp的消息类型 4、实例分析rtmp传输过程 一、消息 消息是rtmp的基本数据单元,服务端和客户端通过在网络上发送RTMP消息进行通讯。 消息格式 RTMP消息头和载荷两部分。 上面已经详解讲解了rtmp的数据格式了,下面来讲解具体的rtmp协议内容。 载荷 块的载荷就是消息的载荷内容。 总结一下:消息是rtmp的基本数据单元,块是用于将消息重新封装在网络上传输。

    3.6K12编辑于 2022-11-01
  • 来自专栏性能优化

    RTMP协议

    RTMP 基础 RTMP 概念 与 HTTP(超文本传输协议)同样是一个基于 TCP 的 Real Time Messaging Protocol(实时消息传输协议)。 当然我们也可以借助一些实现了 RTMP 协议的开源库来完成这一过程。 RTMPDump RTMPDump 是一个用来处理 RTMP 流媒体的开源工具包。 变量 file(GLOB rtmp_source *.c) # 编译静态库 add_library(rtmp STATIC ${rtmp_source} ) 在 中导入这个 CMakeLists.txt #XXX需要链接rtmp库 target_link_libraries(XXX rtmp ...) RTMP 视频数据 RTMP 视频流格式与 FLV 很相似,通过查看 FLV 的格式文档,就能够知道 RTMP 视频数据应该怎么拼接。

    2.2K02发布于 2020-11-24
领券