背景
简介
QtAV是基于Qt和FFmpeg的多媒体播放库。它可以帮助您以前所未有的精力编写播放器。
强大的功能
QtAV可以满足您的最大需求
- 硬件解码支持:DXVA2,VAAPI,VDA / VideoToolbox,CedarX,CUDA(第一个播放器在Linux上支持CUDA吗?)
- OpenGL和ES2支持几乎所有格式,包括Hi10P视频(第一个播放器/库在ES2中支持10bit?VLC,XBMC,mplayer现在不支持)
- 实时预览
- RGB和YUV格式的视频捕获
- OSD和自定义过滤器
- libavfilter中的过滤器,例如stero3d,模糊
- 字幕轨道选择。动态更改FFmpeg和libass引擎
- 逐帧播放
- 播放速度控制
- 各种流:区域设置文件,http,rtsp等以及您的自定义流
- 音频通道,轨道和外部音频轨道
- 播放时动态更改渲染引擎。
- 动态更改视频解码器
- 1个播放器的多个视频输出
- 视频均衡器(软件和OpenGL):亮度,对比度,饱和度,色相
- QML支持。大多数播放API与QtMultimedia模块兼容
- 兼容性:QtAV可以同时使用Qt4和Qt5,FFmpeg(> = 1.0)和Libav(> = 9.0)来构建。建议使用最新的FFmpeg版本。
QtAV的编译
以下是我在windows平台使用的过程,其它平台的还没有验证过
前期准备
- 下载QtAV源码
git clone https://github.com/wang-bin/QtAV.git
cd QtAV && git submodule update --init
- 下载FFmpeg
您可以下载最新的预构建FFmpeg,也可以自己构建。
对于Windows,请下载http://sourceforge.net/projects/qtav/files/depends/QtAV-depends-windows-x86%2Bx64.7z/download,并且bin, include, lib在软件包中使用就可以构建。
目前我是windows下面构建的,所以直接选择的下载上面这个软件包。
环境设置
你必须让编译器知道FFmpeg的头文件和库所在的位置,否则待会儿编译QTAV的时候会因为找不到对应的库文件而报错。
软件包下载的文件解压后如下图所示