前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >live555 h265_live555推流rtsp

live555 h265_live555推流rtsp

作者头像
全栈程序员站长
发布2022-09-21 10:14:12
1.6K0
发布2022-09-21 10:14:12
举报
文章被收录于专栏:全栈程序员必看

大家好,又见面了,我是你们的朋友全栈君。

基于live555的视频直播 DM368IPNC RTSP分析

本文是 我对TI DM368IPNC RTSP直播部分的代码分析。

appro IPNC视频流直播部分用的RTSP,基于live555,通过改写wis-streamer实现的,在live555官网上有wis-streamer的代码下载,appro将其修改,在framedsource中加入了GetAVData接口,这样ipnc就可以直播了。

感慨:C++ 真的太好用了

现在懒了,文字部分就直接复制出来,源文档使用的是excel,

基于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://javaforall.cn/170214.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 基于live555的视频直播 DM368IPNC RTSP分析
相关产品与服务
云直播
云直播(Cloud Streaming Services,CSS)为您提供极速、稳定、专业的云端直播处理服务,根据业务的不同直播场景需求,云直播提供了标准直播、快直播、云导播台三种服务,分别针对大规模实时观看、超低延时直播、便捷云端导播的场景,配合腾讯云视立方·直播 SDK,为您提供一站式的音视频直播解决方案。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档