rtmp 推送h264 + aac 的数据】的更多相关文章

相关源码下载: http://download.csdn.net/detail/keepingstudying/8340431 需要libfaac,librtmp 的支持, 1.帧的划分 1.1 H.264帧 对于H.264而言每帧的界定符为00 00 00 01或者00 00 01. 比如下面的h264文件片断这就包函三帧数据 00 00 00 01 67 42 C0 28 DA 01 E0 08 9F 96 10 0000 03 00 10 00 00 03 01 48 F1 83 2A 0…
前言 好多开发者在调用Android平台RTMP推送或轻量级RTSP服务接口时,采集到的video数据类型多样化,如420sp.I420.yv12.nv21.rgb的,还有的拿到的图像是倒置的,如果开发者在上层转换后,传到底层编码处理,无疑加大了上层处理负担,而且容易因为低效率影响体验,本文以大牛直播SDK的Android平台RTMP推送SDK编码前video数据对接接口为例,看看常用的数据格式有哪些,相关资料,可参考 Github: 1. Android摄像头前后camera通过OnPrevi…
好多开发者问道,既然有了OBS,你们为什么还要开发SmartPublisher? 的确,在我们进行Windows平台RTMP推送模块开发之前,市面上为数不多的Windows平台RTMP推流工具当属OBS了,不得不说,OBS是一款很好用的直播软件,它的优势在于,几乎可以直播所有直播平台,不需要每个直播平台都下载相关平台的专用直播软件,可以直播游戏,显示器,word,浏览器等. 今天,我们以OBS和大牛直播SDK开发的SmartPublisher为例,就Windows平台RTMP推流工具,做个简单的…
好多开发者提到,为什么大牛直播SDK的Android平台RTMP推送接口怎么这么多?不像一些开源或者商业RTMP推送一样,就几个接口,简单明了. 不解释,以Android平台RTMP推送模块常用接口,看看这些接口有没有存在的意义?本文简单介绍,全当抛砖引玉,相关资料,可参考 Github: 1. 初始化Publisher接口,返回推送实例句柄: /** * Open publisher(启动推送实例) * * @param ctx: get by this.getApplicationConte…
本文转自EasyDarwin团队Kim的博客:http://blog.csdn.net/jinlong0603 Demo项目介绍 EasyRTMP Demo代码下载地址https://github.com/EasyDarwin/EasyRTMP 本文介绍Demo中EasyRTMP_SDK的项目.该项目是通过调用IP Camera自己的SDK获取到音视频流,然后通过libEasyRTMP推送到RTMP服务器进行直播.这样就可以将普通的不支持RTMP的IP Camera接入RTMP服务器进行直播推送…
我们在<EasyNVR摄像机网页直播中,推流组件EasyRTMP推送RTMP扩展支持HEVC(H.265)的方案>中描述了关于EasyRTMP进行RTMP HEVC(H.265)推流的概括性实现描述,其中,对于Metadata数据结构,很多流媒体开发者还存在不清楚的地方,这里对RTMP推送Metadata的结构进行详解. 首先, 我们先讲解下 H.264/AVC metadata 语法,方便大家理解,这相关的文章大家在网上很容易找到,如果大家比较熟悉可以跳过: 参考:<ISO/IEC 1…
===================================================== Flash流媒体文章列表: 最简单的基于Flash的流媒体示例:RTMP推送和接收(ActionScript) 最简单的基于Flash的流媒体示例:网页播放器(HTTP,RTMP,HLS) ===================================================== 本文记录一些基于Flash的流媒体处理的例子.Flash平台最常见的流媒体协议是RTMP.此前…
本文转自EasyDarwin团队Kim的博客:http://blog.csdn.net/jinlong0603/article/details/52965101 前面已经介绍过EasyRTMP,这里不再多说,可以网上搜索相关内容. 本文讲述下基于libEasyRTMP推送库实现的MP4文件的直播推送.Github中Demo的下载地址https://github.com/EasyDarwin/EasyRTMP.Demo中EasyRTMP_FILE的工程是将MP4文件进行解析推送.主要使用MP4De…
本文转自EasyDarwin开源团队成员Kim的博客:http://blog.csdn.net/jinlong0603/article/details/74161115 引言 最近在测试EasyNVR时遇到了部分手机上无法正常播放HLS直播流的问题.EasyNVR的介绍参考http://blog.csdn.net/jinlong0603/article/details/73456831,主要功能是能同时接入区域或公网中多路RTSP摄像头,拉取RTSP流转RTMP推送,同时输出RTMP流和HLS流…
本案例适用于开发者入门理解Azure Functions/ IoT Hub / Service Bus / Power BI等几款产品. 主要实战的内容为: 将设备遥测数据上传到物联网中心, 将遥测数据路由到消息中间件的Topic中, 使用Azure Function解析消息中间件Topic中的消息并推送到大屏 . 先了解下Azure Functions的基本概念: https://v.qq.com/x/page/j3031z2zlns.html 在Azure Portal 创建Function…
本文转自EasyDarwin团队Kim的博客:http://blog.csdn.net/jinlong0603/article/details/52963378 EasyRTMP Android版demo中,通过使用AudioRecord录音,然后将每一帧数据通过MediaCodec编码成LATM格式音频,然后就发送给服务器就OK了. AudioRecord的使用 public void startRecord() { try { init(); mAudioRecord.startRecord…
EasyRTMP是将H264流以及AAC流以RTMP协议推送到RTMP服务器上进行直播.EasyRTMP推送库中会从H264流中提取中SPS.PPS进行解析,开发的时候遇到过有些SPS解析有误,获取到的宽高不正确,导致播放的时候画面被拉长的问题.下面给出一份比较完善的SPS解析 SPS解析 定义sps结构 typedef struct { int i_id; int i_profile_idc; int i_level_idc; int b_constraint_set0; int b_cons…
很多朋友都会问到rtsp如何通过rtmp协议推送到服务端,正好前段时间开发了这个功能写在这里,和大家分享下. 首先我想说的是:ffmpeg可以实现这个功能.ffmpeg支持rtsp协议,也支持rtmp.在这个案例中rtsp是输入, rtmp是输出,ffmpeg实现了转码的功能.下面可出一个整体思路流程图. 图1 如图1所示:在获取都rtsp流以后,解复用(demux)获取ES流packet,最后将ES流封装成rtmp格式并发送 到服务端. 基本思路完毕,下面上代码. 一:初始化ffmpeg库 v…
本案例适用于开发者入门理解Azure Functions/ IoT Hub / Service Bus / Power BI等几款产品. 主要实战的内容为: 将设备遥测数据上传到物联网中心, 将遥测数据路由到消息中间件的Topic中, 使用Azure Function解析消息中间件Topic中的消息并推送到大屏 . 本文主要是本案例的准备工作,即(第1条和第2条的内容): 1.创建IoT Hub: https://v.qq.com/x/page/h3031pnaxi8.html 2.创建Serv…
  症状是这样的:用librtmp推流aac后,用vlc能收到推流的声音,但是用flash却播放不了推流的声音.   查了几天,用工具抓取推流的数据,发现rtmp数据包中的头部信息有一个Chunk Stream ID的字段. 这个字段应该在不同类型的包类型中应该是不一样的.   在下列三种包类型中,Chunk Stream ID字段应该是不同的值 Metadata VideoSpsPps,VideoTag AacSpec,AudioTag 这三种rtmp包类型中,Chunk Stream ID应…
1.下载最新srs源码 https://github.com/ossrs/srs/releases 2.编译(进入~/srs-2.0-r4/trunk目录) ./configure --with-librtmp --without-ssl make 3.启动srs ./objs/srs -c conf/srs.conf tailf ./objs/srs.log 4.编译srs_h264_raw_publish.c(进入~/srs-2.0-r4/trunk/research/librtmp目录)…
1 .windows下安装openssh for windows工具,下载地址 https://www.mls-software.com/opensshd.html 2.修改openssh安装目录下etc/sshd_config 3.新建windows账号for ssh服务器用于登录,默认使用Administrator是不允许登录的 4.用ssh-keygen.exe -C ahwater…
这段时间在捣腾基于 RTMP 协议的流媒体直播框架,其间参考了众多博主的文章,剩下一些细节问题自行琢磨也算摸索出个门道,现将自己认为比较恼人的 AAC 音频帧的推送和解析.H264 码流的推送和解析以及网上没说清楚的地方分享给各位. RTMP 协议栈的实现,Bill 直接使用的 libRTMP,关于 libRTMP 的编译.基本使用方法,以及简单的流媒体直播框架,请参见博文[C++实现RTMP协议发送H.264编码及AAC编码的音视频],言简意赅,故不再赘述. 言归正传,我们首先来看看 AAC …
这段时间在捣腾基于 RTMP 协议的流媒体直播框架,其间参考了众多博主的文章,剩下一些细节问题自行琢磨也算摸索出个门道,现将自己认为比较恼人的 AAC 音频帧的推送和解析.H264 码流的推送和解析以及网上没说清楚的地方分享给各位. RTMP 协议栈的实现,Bill 直接使用的 libRTMP,关于 libRTMP 的编译.基本使用方法,以及简单的流媒体直播框架,请参见博文[C++实现RTMP协议发送H.264编码及AAC编码的音视频],言简意赅,故不再赘述. 言归正传,我们首先来看看 AAC …
方案介绍 目前互联网直播的CDN和标准RTMP流媒体服务器通常只能接收RTMP格式的音视频推流.目前市场上有一些自带RTMP推流的摄像机和编码器,可以直接在其rtmp推流配置里面配置推送到RTMP流媒体服务器上.但是大部分的安防网络摄像机还是不带推流功能,尤其是海康.大华.宇视等通用性价比高的摄像机,是不支持的,所以,对于这种摄像机只能通过二次开发的方式,先获取摄像机实时视频流并封装成RTMP/FLV格式进行推送,再由RTMP流媒体服务器进行转发/分发. 获取摄像机实时视频流的方式可以调用摄像机…
本文转自EasyDarwin团队Kim的博客:http://blog.csdn.net/jinlong0603/article/details/52960750 问题简介 EasyRTMP是EasyDarwin团队开发的一套简单易用的RTMP推送SDK.本文想讲述下开发过程中遇到的一个问题.问题的现象是使用EasyRTMP推送音视频流到自己搭建的nginx-rtmp服务器,使用ffplay和vlc播放器都能够正常播放,但是使用网页flash播放时,总是会卡住,无法正常播放. 问题解决 开始时有些…
需求分析 众所周知,EasyDSS与EasyNVR最大的区别是,EasyDSS被动接受前端设备的推流,将推送过来的直播流进行直播转码.智能处理.视频分发,在通过CDN分发节点分发到终端播放SDK.而EasyNVR则是通过RTSP协议,主动拉取前端设备的直播流,同样分发出RTMP.HTTP-FLV.HLS.RTSP格式的直播流.EasyDSS前端采用的是一套调用简单.功能完善.高效稳定的EasyRTMP推流组件,支持RTMP推送断线重连.环形缓冲.智能丢帧.网络事件回调,支持Windows.Lin…
本文转自EasyDarwin开源团队成员Kim的博客:http://blog.csdn.net/jinlong0603/article/details/52938980 EasyRTMP介绍 EasyRTMP是EasyDarwin团队开发的一套支持Windows.Linux.arm.Android.iOS等各种平台的 高效RTMP推送库.接口调用非常简单,Gitbub上有相关Demo代码,地址:https://github.com/EasyDarwin/EasyRTMP. EasyRTMP De…
本文转自Holo的博客:http://blog.csdn.net/u013758734/article/details/50834770 最近在研究EasyDarwin的Push库EasyPusher,EasyPusher可以推送H264视频到EasyDarwin服务器,终端可以通过rtsp协议访问该实时流,达到手机直播的功能,延迟基本在2秒以内. EasyDarwinQQ群:496258327 本文主要记录一下最近研究的关于Android手机如何获取实时画面,并将数据编码为H264的格式的视频…
EasyRTMP EasyRTMP是什么? EasyRTMP是一个EasyDarwin配套使用,也可以单独使用的RTMP推送库,通过EasyRTMP我们就可以避免接触到稍显复杂的RTMP推送流程,只需要调用EasyRTMP的几个API接口,就能轻松.稳定地把流媒体音视频数据推送给Red5.Ngnix.crtmpserver等RTMP服务器: EasyRTMP_RTSP:将RTSP/RTP数据获取到本地,再通过EasyRTMP推送到RTMP服务器: EasyRTMP_SDK:将SDK回调的数据进行…
众所周知,RTMP标准协议实际是不支持HEVC(H.265)编码格式的,同样,现行的H5标准里面,也没有对H.265的描述,所以,在很大程度上,H5网页浏览器是无法接入HEVC(H.265)的,但是,在很多原生客户端中,对HEVC(H.265)的需求是非常大的,那么,像EasyNVR中,如果需要接入HEVC(H.265)流的时候,我们应该如何支持呢? 不久前刚实现EasyRTMP扩展支持h265推送,当时在网上也查找了很多资料,发现都不尽详细,而官方也没有更新对HEVC(H265,后文统称HEV…
前言 本文将使用一个NuGet公开的组件技术来实现数据订阅推送功能,由服务器进行推送数据,客户端订阅指定的数据后,即可以接收服务器推送过来的数据,包含了自动重连功能,使用非常方便 nuget地址:https://www.nuget.org/packages/HslCommunication/            github地址:https://github.com/dathlin/HslCommunication                                 如果喜欢可以s…
本文主要是我在刚开始学习 SignalR 的技术总结,网上找的学习方法和例子大多只是翻译了官方给的一个例子,并没有给出其他一些经典情况的示例,所以才有了本文总结,我在实现推送简单的数据后,就想到了如何去推送复杂的数据,以及推送一个实时的图表数据,文本为我原创,转载请注明出处:Richard.Hu,先上一堆乱七八糟的说明先: SignalR的官方地址是: https://www.asp.net/signalr 网上给出例子是一个聊天的例子,官网地址是:https://docs.microsoft.…
关键字: 主动推送, 推送数据, 客户端推送, 获取Session, 发送数据, 回话快照 通过Session对象发送数据到客户端   前面已经说过,AppSession 代表了一个逻辑的 socket 连接,基于连接的操作都应该定义在此类之中. 这个AppSession 类也封装了通过 socket 发送数据的方法. 你可以使用 AppSession 的方法 "Send(...)" 来发送数据到客户端: session.Send(data, 0, data.Length); or s…
本文转自EasyDarwin开源团队Kim的博客:http://blog.csdn.net/jinlong0603/article/details/52950948 EasyRTMP 前面介绍过EasyRTMP是高效的跨平台的RTMP推送库,内部rtmp协议部分使用了librtmp( RTMPDump Real-Time Messaging Protocol API). libEasyRTMP的基本操作 RTMP_Alloc() :用于创建一个RTMP会话的句柄. RTMP_Init():初始化…