服务器怎么建网站,公司广告宣传片拍摄,做网站推广代理,新手做电商哪个平台好Qt视频播放器实现#xff08;目录#xff09;
什么是视频
我们这里讲的视频#xff0c;通常也包括了音频。因为没有声音的画面播放几乎是不可接受的。
这样暗含了一个事实#xff0c;那就是视频总是包括视频数据和音频数据两部分。
Video 表示视频#xff1b;
Audio …Qt视频播放器实现目录
什么是视频
我们这里讲的视频通常也包括了音频。因为没有声音的画面播放几乎是不可接受的。
这样暗含了一个事实那就是视频总是包括视频数据和音频数据两部分。
Video 表示视频
Audio 表示音频
视频播放器播放什么
如同本专栏介绍描述的一样一个视频播放器通常可以播放本地的mp4等视频文件。
这些视频文件里都包括了视频数据和音频数据混在一起但是结构化的混在一起。
而不是杂乱无章的混在一起。
早期的本地视频播放器
这是最早的视频播放器比如 realplayer , 超级解霸。
这些播放器只能播放本地文件主打一个格式适配的多。
rmvb, mp4, avi , mov , 等等。 现在的播放器
现在随着网络视频的普及播放网络视频已经非常普遍。
播放网络视频通常是使用 rtmp webrtc 等视频传输协议把服务器端的视频流拉拉取到电脑内存里解码播放。比如抖音的客户端YouTube网页客户端。
这些播放器不管是在浏览器里的插件还是PC客户端的软件都是一样的。
都是拉流解码渲染 和早期的本地视频文件播放器一样网络上传回来的数据包也是视频包根音频包交叉在一起的。
就像传送带上又又萝卜又有白菜一样。 上图中有的包里是视频数据有的包里是音频数据。只有拿到包拆开才知道里面到底是音频还是视频数据。
显卡GPU
将YUV数据送给GPU显卡去计算按照对应的色彩空间解码转换为RGB数据才可以被显示器显示。
如果你的电脑没有独立显卡那么你的电脑也一定有集成显卡。
Windows电脑打开任务管理器可以看到GPU利用率。这就是你电脑的显卡。 如上图所示我的笔记本是Intel处理器内置集成显卡有两个计算单元。
声卡
声卡不是我们的重点因为计算量几乎都在视频数据部分。
解码器 FFmpeg
由于音视频格式五花八门在压缩解压缩各个阶段格式又不一样。所以工作量庞大二繁琐。
这样的格式又是标准的所以早就被大名鼎鼎的FFmpeg搞定了。
FFmpeg既可以编码也可以解码。
我们使用FFmpeg主要是用来从文件或者网络流中提取出Video 包和 Audio 包。
再利用FFmpeg将视频包解码得到H264格式以及音频包解码得到 AAC 格式。
FFmpeg在视频播放器中的工作主要是下图中绿色部分 播放器实现的主要工作
播放器主要的工作就是多线程处理上述各个模块的数据