基于live555的rtsp播放器:开篇

笑着哭i 提交于 2020-12-23 14:26:48

很久没写博客了,今天准备开始接着写。

一直以来对音视频这块都比较感兴趣,从我博客中可以看出,很久之前就开始学习WebRTC,并且转发了一些流媒体的文章,但因为工作中主要是做Qt客户端开发的,音视频学习只能断断续续进行。今年由于年初疫情,隔离在家,时间比较充裕,于是又捡起了心中所好。

说起rtsp,自然会想到开源的跨平台流媒体框架live555。live555兼容的摄像机种类多,文档丰富,而且大名鼎鼎的VLC播放器中关于rtsp的推拉流使用的就是live555,因此决定撸起袖子从VLC源码看起.......

转眼间,一年就快过去了,基于live555的rtsp播放器也略有小成,支持Windows、Linux和Mac三个平台,先上几张图:

开发环境:

Qt5.12.2+live555+ffmpeg4.3.1+SDL2.0.12+faac1.30+soundtouch2.2

主要功能:

1.支持多路视频显示

Windows和Linux支持Qt widget、SDL和Qt OpenGL三种方式渲染,Mac上支持Qt widget和Qt OpenGL两种方式渲染。SDL在Mac中嵌入Qt会有问题。

2.支持多种音视频编码格式

视频支持H264和H265,音频支持AAC、G711a、G711u和G726

3.支持抓图

使用ffmpeg编码视频数据为jpg格式并保存

4.支持录制

使用ffmpeg同步录制音频和视频为mp4,支持包含b帧视频流的录制

5.支持音量调节

支持声音的打开/关闭和音量大小的调节

6.参数设置

支持摄像机列表的添加、视频和图片存储路径设置、流传输模式设置和网络抖动缓冲时间设置

大概就这些功能,后面会分章节写各部分的具体实现,播放器还有很多待完善的地方,比如cpu占用率较高、soundtouch加速实时流时会有杂音,因此写博客的过程是一个边写边完善的过程。

 

原创不易,转载请标明出处:https://blog.csdn.net/caoshangpa/article/details/111500438

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!