1.简介
学习音视频开发,首先从做一款播放器开始是比较合理的,每一章节,我都会将源码贴在最后,此专栏你将学习到以下内容:
1)音视频的解封装、解码;
2)Qt+opengl如何渲染视频;
3)音视频同步,如何seek到指定时间;
4)学习FFmpeg常用接口;
5)学习opengl的渲染原理;
6)Qt界面开发以及QSS样式表加载;
7)网络视频流的加载;
8)播放器跨平台移植;
9)Windows打包为exe包发布。
本项目使用Qt+ffmpeg+opengl实现视频播放器开发。
适合对音视频方向感兴趣以及想提升自己技术的同学。
- ffmpeg实现音视频的解码;
- opengl实现视频的渲染;
- Qt实现基础界面的开发;
视频播放器的基础流程简介如下:
视频播放器播放原理:
- 视频文件(MP4、flv、mkv等)进行播放,这些文件格式是封装好的格式。
- 首先要解封装,将视频流和音频流单独处理,解封装完成之后,音频得到的压缩数据aac、MP3等;视频得到的压缩数据H.264、H.265等数据。
- 然后解码,音频解码后的原始数据PCM,音频需要重采样,以适应各种音频设备;视频解码后原始数据YUV,需要转换为RGB进行渲染。
- 最后视频呈现,使用Qt来播放音频数据,opengl来渲染视频数据,音视频同步。
2.目录
专栏分为以下几个部分进行循序渐进介绍视频播放器的实现。
- 开发环境的准备
- ffmpeg视频处理原理和实现
- Qt界面设计以及opengl绘制视频
- ffmpeg音频处理原理和实现
- Qt音频播放
- 音视频同步、seek
3.软件展示界面
右键打开本地视频文件。
播放列表
打开网络流。
4.更多参考
https://sunnnnnn666.blog.csdn.net/article/details/103455766