各种RTMP直播流播放权限_音视频_数据花屏_问题检测与分析工具EasyRTMPClient
之前的一篇博客《网络摄像机IPCamera RTSP直播播放网络/权限/音视频数据/花屏问题检测与分析助手EasyRTSPClient》,我们介绍了RTSP流的检测和分析工具EasyRTSPClient,可以说已经是深入了我的平时运维工作中了,当我们发现有任何RTSP源或者摄像机无法播放的时候,我用EasyRTSPClient工具运行检测一下,就立即能够知道问题原因,真是非常非常方便;
EasyRTSPClient方案Github:https://github.com/EasyDSS/EasyRTSPClient
有librtmp,为什么还要做EasyRTMPClient?
毋庸置疑,librtmp是RTMP领域的巨人之一,无论是RTMP-Client,还是RTMP-Push,无数的项目都在引用librtmp实现播放器、手机直播、编码器等功能,实际上我们做RTMPClient也无需再实现一套,直接使用librtmp就可以了,但是,librtmp距离我们商用的RTMPClient的需求总是差这么或者那么几个功能:
自动重连:
实际自动重连功能在librtmp外围调用也是可以实现的,但是由于开发者的水平参差不齐,要非常好地实现重连回收,做稳定重连这个功能点,是非常困难的,尤其是各种内存和对象以及重连时机的选择,我们选择在底层进行RTMPClient重连,为上层开发者减少由于协议带来的学习成本和开发成本,这样,哪怕上层开发者不懂RTMP技术,也可以非常好地实现一个稳定、高效的RTMP播放器客户端;
裸数据回调:
librtmp回调出来的flv数据,就好比RTSP客户端回调出来的有时候是RTP数据,这些数据比较难被H.264工具做gop和关键帧的分析,只有都统一在底层将flv封装成H.264数据类型,上层无论是做解码显示,还是录像存储,还是数据分析,都非常简单了,不用再在上次做sps、pps解析,做flv合并;
错误码及错误信息回调:
遇到无法播放的RTMP流是,librtmp没有很好地统一将对应的错误码,比如:无法访问错误、socket错误、401错误等等,我们需要这些回调以一个统一的出口回调到上层,再由上层进行对应的处理方案;
小而美:
实际上述锁描述的功能点ffmpeg都是能做到的,但是ffmpeg只做一个RTMPClient功能的话,过于庞大,导致整个App的包会比较大,我们需要的是一个小而美的工具组件,被集成在用户的App中,开发者和用户能以极低的学习成本,就能轻松掌握需要开发的功能点;
EasyRTMPClient
EasyRTMPClient是一套非常稳定、易用、支持重连接的RTMPClient工具,以SDK形式提供,接口调用非常简单。该EasyRTMPClient库未使用或参考现有的任何RTMP库,完全自主实现,因此,EasyRTMPClient更易于维护,稳定性、可扩展性得以提升,同时,本RTMP库全平台支持(包括windows/linux 32&64,ARM各平台,android, ios)!
Github:https://github.com/EasyDSS/EasyRTMPClient
调用流程
RTMPSourceCallBack数据回调说明
EasyRTMPClient可以回调出多种类型的数据:
#define EASY_SDK_VIDEO_FRAME_FLAG /*视频帧数据*/
#define EASY_SDK_AUDIO_FRAME_FLAG /*音频帧数据*/
#define EASY_SDK_EVENT_FRAME_FLAG /*事件帧/日志数据*/
EASY_SDK_VIDEO_FRAME_FALG 数据可支持的视频格式:
#define EASY_SDK_VIDEO_CODEC_H264
视频帧标识支持
#define EASY_SDK_VIDEO_FRAME_I /* I帧 */
#define EASY_SDK_VIDEO_FRAME_P /* P帧 */
#define EASY_SDK_VIDEO_FRAME_B /* B帧 */
当回调出RTSP_FRAME_INFO-codec为EASY_SDK_VIDEO_CODEC_H264数据,RTSP_FRAME_INFO->type为EASY_SDK_VIDEO_FRAME_I关键帧时,我们输出的数据结构为SPS+PPS+I的组合:
|-----sps-----|-----sps-----|-------I Frame-------|
| | | |
|---------reserved1-----reserved2-------------length
EASY_SDK_AUDIO_FRAME_FLAG数据可支持多种音频格式:
#define EASY_SDK_AUDIO_CODEC_AAC /* AAC */
#define EASY_SDK_AUDIO_CODEC_MP3 /* MP3 */
如果以上格式无法满足您的需求,可联系我们进行定制开发。
获取更多信息
邮件:support@easydarwin.org
QQ交流群:587254841
EasyDarwin开源流媒体服务器:www.EasyDarwin.org
EasyDSS商用流媒体解决方案:www.EasyDSS.com
EasyNVR无插件直播方案:www.EasyNVR.com
Copyright © EasyDarwin Team 2012-2017
各种RTMP直播流播放权限_音视频_数据花屏_问题检测与分析工具EasyRTMPClient相关推荐
- C++ RTMP直播流播放器
抛开flash,自己开发实现C++ RTMP直播流播放器 众所周知,RTMP是以flash为客户端播放器的直播协议,主要应用在B/S形式的场景中.本人研究并用C++开发实现了RTMP直播流协议的播放器 ...
- 将音视频中的花屏、绿屏、黑屏问题一网打尽
今天继续给大家分享一下知识星球里面的干货. 创建知识星球快两个月了,目前已经积累了不少干货,主要得益于星球里大佬们的分享以及小伙伴的提问. 星球里面邀请的大佬都是在头条.快手等知名 IT 企业从事过音 ...
- 抛开flash,自己开发实现C++ RTMP直播流播放器
https://www.cnblogs.com/haibindev/p/3466094.html
- java做flv直播服务器_一种RTMP直播流到HTTPFLV直播流实时转换系统及其工作方法与流程...
本发明属于互联网的音视频技术领域,具体涉及一种RTMP直播流到HTTP FLV直播流实时转换系统及其工作方法. 背景技术: 在传统互联网直播领域,PC端采用RTMP协议进行视频直播,国内一部分CDN服 ...
- ps流 转发_一种国标PS流转RTMP直播流的实时转换方法与流程
本发明属于视频技术领域,具体涉及一种国标ps流转rtmp直播流的实时转换方法. 背景技术: ps流全称是节目流(programstream),将一个节目的多个组成部分按照它们之间的互相关系进行组织并加 ...
- Vue 播放rtmp直播流
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 Vue 播放rtmp直播流 前言 一.vueVideo.vue封装 二.调用方式 前言 该组件是在vue-video-player基础 ...
- 浏览器不支持flash插件之后,h5播放rtmp直播流的解决方案
浏览器不支持flash插件之后,h5播放rtmp直播流的解决方案使用http-flv 原文链接 目录: 相关资源: 背景 几种视频流比较 http-flv搭配flv.js播放方案 flv.js延迟问题 ...
- LiveQing直播点播流媒体如何关闭指定类型的流播放HTTP-FLV直播流|WS-FLV直播流|HLS(m3u8)直播流|RTMP直播流
流媒体服务可以分发输出,HTTP-FLV直播流.WS-FLV直播流.HLS(m3u8)直播流.RTMP直播流,在某些场景下,我们不希望用户播放指定类型的流,那么如何做呢? RTMP直播点播流媒体服务 ...
- ffmpeg实现摄像头拉流_[FFmpeg] 如何通过实时摄像头帧图片生成 rtmp 直播流?
背景 已经完成用 Python 对摄像头硬件实时提取帧图像并进行一系列机械视觉处理 客户突然提出, 一定要通过 rtml:// 进行远程工作状态的监控 分析 因为硬件驱动的原因 系统中一个 usb c ...
最新文章
- AI Studio 对于波士顿房价的线性回归
- 机器学习(MACHINE LEARNING)MATLAB模拟退火算法【SA】
- bzoj 4832 抵制克苏恩
- 单一课和综合课的划分依据_武夷岩茶产地如何划分?
- Intel PAUSE指令变化影响到MySQL的性能,该如何解决?
- python网络爬虫 爬取新闻标题、时间、内容
- 基于FPGA----VGA显示跳动的小白框设计
- 编译原理教程_8 静态语义分析和中间代码生成
- 【iCore4 双核心板_ARM】例程三:EXTI中断输入实验——读取ARM按键状态
- php和jsp有什么区别,php和jsp之间的区别是什么
- STM32入门开发: 采用IIC硬件时序读写AT24C08(EEPROM)
- 旺旺的计算机无法打开,电脑任务栏中点击阿里旺旺图标无法打开界面的解决方法...
- VirtualBox安装CentOS5.5 Insert Guest Additions CD image…(HOST+D)
- 前端如何在本地启动一个服务,跑打包后的项目
- 从“七宗罪”角度,看互联网产品与人性的深沉纠缠
- 运营 | 做自媒体应该从哪方面入手?
- 用MSN Cartoon做的卡通自画像
- DDD第3篇 - 事件风暴
- ThinkPHP模版引擎之变量输出详解
- 全景虚拟漫游实现(three.js)