本文转载自https://github.com/daniulive/SmarterStreaming
今天向大家介绍一下如何使用 librtmp 库推拉音视频直播流。虽然Adobe已经宣布不在维护 flash 了,但 flash使用的 rtmp 协议目前仍然是直播系统中最常用的传输协议。
写这篇博客主要是为了给新入门的流媒体开发者解惑,现在看到各种开发者的需求:网页播放RTSP摄像机、微信播放RTSP摄像机、网页播放摄像机SDK输出的视频流、网页播放第三方流媒体平台输出的视频流、包括Github有一些所谓的H5RTSPPlayer,这些都有一个共同点,就是H.264+AAC进行RTMP推流,当然SkeyeWebPlayer除外,SkeyeWebPlayer开创性的支持在浏览器端采用H5直接播放器RTSP流,下载地址:
时隔多年,在Enhancing RTMP, FLV With Additional Video Codecs And HDR Support(2023年7月31号正式发布)官方规范出来之前,如果RTMP要支持H.265,大家约定俗成的做法是扩展flv协议,CDN厂商携手给出的解决方案是给flv的videotag CodecID增加一个新类型(12)来表示h265(hevc),和h264不同的地方是要解析HEVCDecoderConfigurationRecord,从HEVCDecoderConfigurationRecord中解析出vps, sps, pps. 有了vps, sps, pps, 就可以解码。
今天,我们着重讲解的是视频输出中的RTMP推流功能,这也是我们EasyNVR功能组件中,最为重要的一个组成部分! EasyRTMP是一套封装了基础的RTMP推流协议,并提供了一套非常简单易用调用接口的功能组件,在Github上有多个基于EasyRTMP SDK的Demo。Github地址:https://github.com/EasyDSS/EasyRTMP, Demo中EasyRTMP_RTSP项目是将RTSP流获取到本地进行RTMP推送,可进行RTMP直播。
AIGC(Artificial Intelligence Generated Content)是指利用人工智能技术生成内容的能力。火爆的虚拟数字人,就是AIGC的典型代表,它可以通过学习大量数据和知识,生成与人类创作相似甚至超越人类水平的文本、图像、音频、视频等内容。AIGC是人工智能领域发展的新里程碑,能够加速内容生产,提高创作效率,降低创作成本,为人类提供更加便捷、高效、准确的内容生成服务。
核心设计 把RTC技术与CDN架构融合,一套架构同时支持WebRTC和RTMP 支持一对一,多人互动场景 支持直播,大规模分发场景 架构保持足够简单,降低运维成本 对RTMP协议的改造 如果要让webrtc和rtmp无缝互通,需要拓展rtmp对opus编码(48k采样)的支持,rtmp本身并不支持opus 同时在ffmpeg中拓展rtmp对opus编码(48k采样)的支持 边缘节点设计 边缘节点支持的能力: rtmp/webrtc推流,webrtc拉流 边缘节点不做任何的编解码操作,只作为接入点和分发点 支
编译librtmp需要用到openssl,所以先编译openssl,下载脚本OpenSSL。
EasyCVR基于云边端协同架构,具有强大的数据接入、处理及分发能力。平台可支持多协议、多类型的前端设备接入,包括市场主流标准协议与厂家私有协议及SDK,如:国标GB28181、RTMP、RTSP/Onvif、海康Ehome、海康SDK、宇视SDK等。
在本文之前,我们发布了Unity环境下的RTMP推流(Windows平台+Android平台)和RTMP|RTSP拉流(Windows平台+Android平台+iOS平台)低延迟的解决方案,今天做个整体汇总,权当抛砖引玉。
基于智慧教室或是会议的技术方案,一般主要是涉及到屏幕采集和推送,整体技术方案这块,一般建议走RTMP,说到这里,好人开发者提到,市面上也有RTSP的技术方案,甚至RTSP组播方案,这块,大牛直播SDK Github 也做过相关对比,总的来说60人智慧教室或类似同屏场景下,最可靠的还是RTMP的解决方案(不赘述,具体可自行测试对比)。
好多开发者提到,在目前开源播放器如此泛滥的情况下,为什么还需要做自研框架的RTMP播放器,自研和开源播放器,到底好在哪些方面?以下大概聊聊我们的一点经验,感兴趣的,可以关注 github:
最早应用广播电视,主要通过卫星和电视网络,随着互联网兴起,逐步转向互联网视频点播方式
当前视频直播非常火爆,手机端的视频直播也非常火爆,PGC、UGC的视频直播门槛都降低了很多。
播放网络视频,通常解析库我们可以有多个选择,如FFMPEG,Daniulive SDK 或者 vitamio。
EasyCVR平台可拓展性强、部署轻松、视频能力丰富,支持海量视频设备接入、视频汇聚与管理、转码与分发、告警上报、平台级联、智能分析、服务器集群等。平台支持多类型设备、多协议方式接入,支持设备通过国标GB28181、RTMP、RTSP/Onvif、海康SDK、大华SDK、Ehome等协议接入,对外可分发RTSP、RTMP、FLV、HLS、WebRTC等格式的视频流。
在刚提出4K视频的时候,大多数人都觉得没有必要,4K的出现,意味着更高的硬件规格和传输要求,1080P看的很爽、很清晰,完全满足了日常的需求。随着电视的尺寸越来越大,原本1080P成像已经无法满足人们对于细节的极致追求,4K视频不仅成像更细腻,在细节处理上优势也非常明显,颜色也更亮丽、饱满,逼真,给人身临其境的感觉。4K视频具有高分辨率、宽色域、高动态范围等优势,随着5G技术和H.265(HEVC)编码标准的出炉,4K视频直播迎来了曙光。
好多开发者一直反馈,Windows平台,做个推屏或者推摄像头,推RTMP或者RTSP出去,不知道哪些功能是必须的,哪些设计是可有可无的,还有就是,不知道如何选技术方案,以下是基于我们设计的Windows平台RTSP、RTMP直播推送模块,设计和使用说明,供大家参考。
- 当前网络传输的问题 - 随着互联网视频应用的快速发展,越来越多的平台和行业加入到直播行业,但是对于广大的主播群体来说,也面临着一些质量问题。比如: 传输卡顿 户外、公共场馆等场景,网络不稳定,造成传输丢包、延迟过大或抖动,从而引起推流和播放卡顿; 移动环境下的丢包问题 3G/4G/5G/WiFi环境下,由于物理层和链路层传输误码的问题,导致传输层丢包,但这种丢包并不意味着拥塞; 单一网络带宽不足 单一3G/4G/5G/WiFi网络链路带宽不足或抖动; 移动环境下多网切换问题 主播端在运动场景下,容
一直以来,好多开发者苦于如何实现RTMP导播数据源实时切换,以下是大牛直播SDK导播切换说明,支持只切换数据源模式,或音视频混音合成输出模式:
好多开发者疑惑,什么是内置RTSP网关,和轻量级RTSP服务又有什么区别和联系?本文就以上问题,做个简单的介绍:
EasyCVR视频融合平台基于云边端架构,能实现视频汇聚与集中管理、视频多端分发、多屏展示。平台可支持多协议与多类型设备接入,具体包括国标GB28181、RTMP、RTSP/Onvif、海康Ehome、海康SDK、大华SDK、宇视SDK等,能对外分发RTMP、RTSP、HTTP-FLV、WS-FLV、HLS、WebRTC等。今天来给大家详细介绍下EasyCVR视频融合云平台的设备接入步骤。
Application->Assembly name,大牛直播SDK按照APP名称授权,未授权版本,此处请改成“SmartPlayer”,如需授权,可直接联系商务;
介绍移动端RTMP、RTSP播放器实时音量调节之前,我们之前也写过,为什么windows播放端加这样的接口,windows端播放器在多窗口大屏显示的场景下尤其需要,尽管我们老早就有了实时静音接口,相对实时静音来说,播放端实时音量调节粒度更细,从[0, 100],用户体验更好。
EasyRTSPLive是由TSINGSEE青犀开放平台开发和维护的一个完善的行业视频接入网关,拉流IPC摄像机或者NVR硬盘录像机RTSP流转成RTMP推送到阿里云CDN/腾讯云CDN/RTMP流媒体服务器,支持多路RTSP流同时拉取并以RTMP协议推送发布。
EasyCVR平台支持多类型设备、多协议方式接入,包括市场主流标准协议国标GB/T28181、RTMP、RTSP/Onvif协议等,以及厂家私有协议,如海康SDK、大华SDK、海康Ehome等。平台可将接入的流媒体进行处理及分发,分发的视频格式包括RTSP、RTMP、FLV、HLS、WebRTC等。
鹏程,携程 Android 开发工程师,Android google jetpack和kotlin语言的拥护者。
EasyCVR具备较强的视频能力,可支持海量设备接入、汇聚与管理、视频监控、视频录像、云存储、回放与检索、智能告警、平台级联等功能。平台可支持多协议接入,包括:国标GB/T28181、RTMP、RTSP/Onvif协议,以及厂家的私有协议,如海康Ehome、海康SDK、大华SDK等,可覆盖市面上大多数的视频源设备。
我们在做RTSP、RTMP直播播放器的时候,有个比较重要的功能,就是拉流端实时录像,包括设置单个录像文件大小、文件前缀、audio转AAC、只录制视频或只录制音频、开始录像、停止录像事件状态回调等。
EasyCVR可拓展性强、视频能力灵活、部署轻快,可支持的主流标准协议有GB28181、RTSP/Onvif、RTMP等,以及厂家私有协议与SDK接入,包括海康Ehome、海大宇等设备的SDK等,能对外分发RTSP、RTMP、FLV、HLS、WebRTC等格式的视频流。
在使用腾讯的TRTC Web SDK可以在Web端实现主播的直播流推送和观众的拉流观看,但是由于 TRTC 采用 UDP 协议进行传输音视频数据,在直播时可能会遇到一些问题:
EasyCVR平台支持海量视频汇聚与管理,基于云边端一体化架构,具有强大的数据接入、处理及分发能力,在功能上,可提供视频直播、云端录像、云存储、录像检索与回看、智能告警、平台级联、智能分析等。近期我们正在对EasyCVR平台进行新功能的拓展,比如集群、电子地图与轨迹追踪、视频轮巡等等,欢迎大家关注我们的更新。
海康摄像机不仅可以支持分发RTSP协议流对接EasyNVR,也可以通过私有协议,用SDK去获取音视频源数据,然后对接EasyDSS互联网视频云服务,主要流程如下图:
功能强大,几乎所有你想要的场景它都有,用起来很顺手。可以将桌面、摄像头、程序窗口通过rtmp推送到流媒体服务器上。
CMakeList.txt 构建脚本如下 : 跟着该构建脚本 , 逐步向下排查 ;
安防视频监控系统EasyCVR平台可拓展性强、视频能力灵活、部署轻快,可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等,以及支持厂家私有协议与SDK接入,包括海康Ehome、海大宇等设备的SDK等。平台可拓展性强、视频能力灵活,能对外分发RTMP、RTSP、HTTP-FLV、WebSocket-FLV、HLS、WebRTC等视频流。今天我们来介绍一下关于EasyCVR(v3.4)开放协议的说明。
好多开发者一直搞不清我们轻量级RTSP服务SDK和RTSP推流SDK的区别,以下是相关区别:
RTMP或RTSP直播播放音量调节,主要用于多实例(多窗口)播放场景下,比如同时播放4路RTMP或RTSP流,如果音频全部打开,几路audio同时打开,可能会影响用户体验,我们通用的做法是支持播放端实时静音,更细粒度的做法是可以实时调节每一路RTMP/RTSP流的音量。
目前市面上大多一对一互动都是基于WebRTC,缺点如下: 服务器部署非常复杂,不利于私有部署,在一些私密性高的场景下,无法使用,如公安、市政等体系; 传输基于UDP,很难保证传输质量,由于UDP是不可靠的传输协议,在复杂的公网网络环境下,各种突发流量、偶尔的传输错误、网络抖动、超时等等都会引起丢包异常,都会在一定程度上影响音视频通信的质量; 难以应对复杂的互联网环境,如跨区跨运营商、低带宽、高丢包等场景; 整个框架体系不够灵活,代码复杂度高,行话说的好:从demo到实用,中间还差1万个WebRTC。 RTM
安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台可拓展性强、视频能力灵活、部署轻快,可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等,以及支持厂家私有协议与SDK接入,包括海康Ehome、海大宇等设备的SDK等。平台既具备传统安防视频监控的能力,也具备接入AI智能分析的能力,可拓展性强、视频能力灵活,能对外分发RTMP、RTSP、HTTP-FLV、WebSocket-FLV、HLS、WebRTC等视频流。
EasyCVR可支持设备通过国标GB28181、RTMP、RTSP/Onvif、海康SDK、大华SDK、Ehome等协议接入,对外可分发RTSP、RTMP、FLV、HLS、WebRTC等格式的视频流。平台支持海量视频汇聚管理,可提供视频监控直播、云端录像、云存储、录像检索与回看、智能告警、平台级联、智能分析、服务器集群等视频服务。
经过2018年小半年的闭关练功,即构ZEGO团队铸造了不少黑科技。本文将为你带来即构ZEGO实时语音视频SDK近半年新增能力和功能优化的最新进展。
无人机作为高速发展的高科技设备,技术日趋成熟,目前已经被广泛应用于农业、森林防护、医疗、交通物流等等场景。但随着城市化进程的加快,人类对自然环境日益严重的破坏,近十几年来,森林火灾的发生频率和失火严重程度一直在逐年增加。除去因自然环境导致的自燃,还有逢年过节进山放鞭炮、孔明灯等等易燃物品的因素。而传统的人工巡检方式效率低下,尤其是原始森林或未被开发的山林,还伴有野兽的袭击,护林员生命安全难以保障。因此,无人机在森林防护中的应用备受关注。
随着摄像头和显示设备技术的不断进步,视频监控系统将朝着更高的分辨率方向发展。高清和超高清画质可以提供更清晰、细节丰富的图像,有助于提升监控的效果和应用价值。
EasyCVR支持海量视频汇聚管理,可提供视频监控直播、云端录像、云存储、录像检索与回看、智能告警、平台级联、智能分析等视频服务。平台支持设备通过国标GB28181、RTMP、RTSP/Onvif、海康SDK、大华SDK、Ehome等协议接入,对外可分发RTSP、RTMP、FLV、HLS、WebRTC等格式的视频流。
EasyCVR平台支持海量视频汇聚与管理、处理与分发、智能分析等视频能力,在接入协议上,不仅支持国标GB28181协议、RTSP/Onvif、RTMP等标准协议,还支持HIKSDK、大华SDK、海康Ehome等厂家私有协议与SDK,可分发RTSP、RTMP、FLV、HLS、WebRTC等多种格式的视频流。平台可灵活拓展,能实现的视频功能包括视频监控直播、云端录像、云存储、录像检索与回看、智能告警、平台级联等。
低延时流,也叫acc流,相比普通观众流(也叫cdn流)而言,它只有400ms的延时,是主播们连麦、PK时需要低延时场景时拉取的流,通话效果更好。
EasyCVR视频融合平台可支持多协议、多设备接入,包括国标GB28181、RTMP、RTSP/Onvif、海康SDK、大华SDK、Ehome等协议,同时也能分发RTSP、RTMP、FLV、HLS、WebRTC等格式的视频流。平台兼容性强、开放度高,功能可灵活拓展,也支持MySQL数据库。
在我的blog里面,最近很少有提到iOS平台RTMP推送|轻量级RTSP服务和RTMP|RTSP直播播放模块,实际上,我们在2016年就发布了iOS平台直播推拉流、转发模块,只是因为传统行业,对iOS的需求比较少,所以一直没单独说明,本文主要介绍下,如何在iOS平台播放RTMP或RTSP流。
领取专属 10元无门槛券
手把手带您无忧上云