摘要:
一、前言 前面只是开了个异步线程来同时解码音频和视频,音频和视频的解码没有分开,同时将这个异步线程封装成类。这里实现三个类: XAudioThread:音频解码线程 XVideoThread:视频解码线程 XDemuxThread:“生产者” 线程,生产 AVPacket 添加到音频或视频队列,进而 阅读全文
摘要:
一、前言 在上一篇中我们只实现了 OpenGl 播放视频,现在我们实现播放音频功能,播放音频首先要实现音频重采样,然后通过 Qt 的 QAudioOutput 类实现播放音频。 二、XResample类的实现(重采样) 新创建个工程,命名为 XPlayer_4。然后我们看下 XDemux 类要实现哪 阅读全文
摘要:
一、前言 这里我们加入 Qt 来设计播放器界面,解码出的 RGB 数据使用 OpenGl 来进行渲染绘制,这样比直接转换成 QImage 在 QLabel 等控件上显示效率更高。 二、XVideoWidget类的实现(渲染绘制RGB) 新创建个工程。然后我们先看下 XVideoWidget 的头文件 阅读全文
摘要:
一、前言 在上一篇中我们实现了视频和音频的解封装、解码及写文件,但其基本是堆出来的代码,可复用性以及扩展性比较低,现在我们对它进行类的封装。这里我们先只实现解封装类和解码类。 二、XDemux类的实现(解封装) 新创建个工程 XPlayer_2。然后我们看下 XDemux 类要实现哪些函数: #if 阅读全文