前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >音视频实战开源项目学习第二期!

音视频实战开源项目学习第二期!

作者头像
用户6280468
发布2023-08-31 10:44:44
1960
发布2023-08-31 10:44:44
举报
文章被收录于专栏:txp玩Linux

前言:

大家好,今天继续分享音视频开源学习第二期,在前面的一期里面,我已经给大家演示了如何去跑起这个开源项目,包括源码下载;

音视频实战开源项目学习第一期!

今天继续来讲解这个开源项目。

不过在讲解这期内容之前,给大家分享这周和网友交流的一些音视频问题,也算是是一种经验积累和视野积累:

问题一:用vlc或者ffplay播放器拉流播放的时候,会出现一帧模糊(跟花屏有点不一样的显示):

问题二:解码花屏,问题出现在从摄像头rtsp拉流,然后给算法处理得到的frame,然后再次经过ffmpeg编码处理,再通过rtmp推流到流媒体服务上,然后拉流播放的时候,出现下面这种情况:

个人经验感想:

首先这个可以抓包分析是否掉帧了,如果出现掉帧肯定是会出现第一种现象或者可以通过ffplay播放的时候来查下看显示信息来查看;一般来说解码出现问题,详细来说有可能是编码端配置没有配置好,或者封装码流的时候,没封装好,比如到h264的pps或者sps信息找不到,那解码肯定不行的!这里我没说网络传输问题,这种情况也是有的!

我之前给大家分享跨距的问题,也就是你的分辨率没配置好,所谓没有配置好的意思是对于芯片内存访问像素点,不是按照他的内存对齐方式去访问,所以在播放的时候,会出现像很早之前的黑白电视那种画面一样!

当然向第二种那种实现,可能还要进行一个时间戳的转换!这个是技术点实现的细节问题!

当然大家在实际工作当中遇到这种解码的问题,看看还有哪些坑,欢迎来交流,一起进步!

ok下面开始分享本期内容:

一、rtsp_server的软件框架:

由于这个项目比较简单,但是其实也不简单,我一直在之前的文章或者直播里面给大家分享过,现在做rtsp这块的开发,在企业里面更多的是使用sdk提供的接口来开发,所以很多rtsp的实现小小细节你是不知道的,所以呢,这也是写这个系列开源项目的学习意义所在,当然后面会写更多的开源项目个人学习心得!

首先我们来看软件流程图,因为是第二期,我暂时没有把整个里面的流程划分出来,我想先一步步来,你可以跟着这个系列走,当然你学习的快,可以快我一步,哈哈哈哈!

核心的在RtspServer类里面的类方法实现,当然里面还有父类的一些继承,后面我画流程图全部捋清楚分享给大家:

这是整个入口,看起来是不是非常简单,核心的RtspServer类里面封装了什么,不过在讲解这些东西之前,我在这里给大家分享点小建议,前提是你必须对rtsp里面的client和server会话交互以及发送码流还有sdp的处理,得有一些了解才行,不必死记硬背,特别是协议头和协议体那块,倒是写代码得时候,直接找到对应得那部分看就行,关于这些基础知识你可以看我之前得直播讲解rtsp基础知识讲解或者呢您也可以看一些网上写的博客去学习,等你有了这些基础,你再来看我现在分享的这个开源项目,那么学习起来就非常轻松了。

现在我们来单独来看类里面的封装了些什么:

这些代码,我已经写了注解,大家看的时候应该能够明白!

嗯,这期内容,我也不写太多,一步步来,争取每个环节,我们都弄的清清楚楚,明明白白!

这里给大家提示一下,如果对c++不熟悉的朋友,可以查找刚才代码中出现的容器:list、map!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-06-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 txp玩Linux 微信公众号,前往查看

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

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

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