提高网站建设管理水平,如何取消网站备案号,建设摩托车质量怎么样,网站关键词百度搜不到因需要#xff0c;从个人的理解顺序和需求角度对live555的分析与开发整理#xff0c;包含RTSP Server与RTSP Client、如何直播H.264流与JPEG流等#xff0c;均进行了探讨#xff0c;对live555的初学者有一定的指导意义。 本人习惯使用excel归档#xff0c;所以本文均为exc…因需要从个人的理解顺序和需求角度对live555的分析与开发整理包含RTSP Server与RTSP Client、如何直播H.264流与JPEG流等均进行了探讨对live555的初学者有一定的指导意义。 本人习惯使用excel归档所以本文均为excel的截图源文件可以再资源中下载。 基于live555的视频直播 DM368IPNC RTSP分析 appro IPNC视频流直播部分用的RTSP基于live555通过改写wis-streamer实现的在live555官网上有wis-streamer的代码下载appro将其修改在framedsource中加入了GetAVData接口这样ipnc就可以直播了。 感慨C 真的太好用了 现在懒了文字部分就直接复制出来源文档使用的是excel 文档下载地址http://www.kuaipan.cn/file/id_48923272389066806.html 基于live555的视频直播 DM368IPNC RTSP分析 一、描述 appro利用live555实现了三种视频流以及一种音频流的直播 1、MJPEG Video 2、H264 Video 3、MPEG4 Video 4、PCM Audio live555是一个开源的RTSP C类库默认实现音视频文件的点播但是可以通过继承相关类重写相关方法实现视频直播 live555提供的实现直播的通用步骤是 截图来自之前的《live555分析与开发.xlsx》 appro也是按照此种方法实现 二、Appro的添加的live555源文件 之所以文件复杂是由于实现了多种音视频流如果只留其一源文件将非常简洁 下图是appro源码的UML类图 APPROInput类 类似于设计模式中的简单工厂模式用于创建具体的FramedSource对于WISServerMediaSubsession类来说处理FramedSource的接口是相同的 但是对于FramedSource来说VideoSource与AudioSource的具体的帧获取是不同的 这样就需要利用APPROInput来分别创建VideoSource和AudioSource。 类APPROInput的videoSource()方法 返回VideoOpenFileSource类的实例 类APPROInput的audioSource()方法 返回AudioOpenFileSource类的实例 三、重要的FramedSource FramedSource类的doGetNextFrame()方法用于获得音视频的帧数据子类需要实现这个方法 OpenFileSource中的incomingDataHandler1调用了虚函数readFromFile这个函数与底层相关 所有由OpenFileSource的子类 VideoOpenFIleSource和AudioOpenFileSource类实现 在appro的ipnc中不管是视频还是音频数据均是通过GetAVData()函数来获得 所以VideoOpenFileSource类和AudioOpenFIleSource类的readFromFile方法中封装了GetAVData()这个函数。 具体获得哪种类型的数据是由类OpenFileSource中的属性APPROInput fInput来传递的 在main函数中有关FramedSource操作的所有代码如下图以H264为例 启示在移植appro的live555到高清相机中我认为最好的方法就是按照IPNC的GetAVData()函数结构 封装高清相机的GetAVData()函数高层的live555RTSP部分可不做任何改动 四、RTSP直播 main主程序 这与普通的live555 rtsp service结构并无太多区别只是由于要传输的视频类型较多所以多了很多if else这部分比较简单不作分析。 appro也是按照此种方法实现 转载于:https://www.cnblogs.com/jiangu66/p/3249113.html