QtAV:基于Qt和FFmpeg的跨平台高性能音视频播放框架

目录

一.简介

1.特性

2.支持的平台

3.简单易用的接口

二.编译

1.下载依赖包

2.开始编译

2.1克隆

2.2修改配置文件

2.3编译

三.试用


一.简介

QtAV:基于Qt和FFmpeg的跨平台高性能音视频播放框架_第1张图片
官网地址:http://www.qtav.org/
Github地址:https://github.com/wang-bin/QtAV

1.特性

●支持大部分播放功能
●播放、暂停、播放速度、快进快退、字幕、音量、声道、音轨、动态渲染器切换、视频均衡器、帧上和渲染器上的自定义滤镜、网络流、裁减、一个视频多渲染器、GPU硬件解码等... 由于使用 FFmpeg, QtAV 可以支持几乎所有格式而不需要安装其他解码器。
●ASS 字幕,正确渲染 ASS 字幕样式
●多重字幕
●实时预览
●高清高帧率视频
●多平台 GPU 硬件解码
●Android MediaCodec 解码 + 零拷贝渲染
●DXVA2 HEVC 硬件解码
●CUDA 支持 Windows、Linux. 性能最好的CUDA解码和渲染
●CUDA Hi10P 硬解
●较新的 NVIDIA 显卡已经支持 10bit H.264 解码。性能超越了其他任何播放器。
●OpenGL、OpenGL ES2 渲染 10bit 视频

2.支持的平台

QtAV 可以运行于 Windows桌面、Windows Phone、Linux、OSX、iOS、Android、MeeGo、Sailfish OS。 其他平台比如 BlackBerry 也会支持,但是缺少开发环境和测试设备。

3.简单易用的接口

下面的例子演示了如何将QtAV应用于QtWidget和QML中
●用于QtWidget

#include 
#include 
...
GLWidgetRenderer2 renderer;
renderer.show();
AVPlayer player;
player.setRenderer(&renderer);
player.play("test.avi");

●用于QML

import QtQuick 2.0
import QtAV 1.6
Item {
    VideoOutput2 {
        anchors.fill: parent
        source: player
    }
    AVPlayer { //or MediaPlayer
        id: player
        source: "test.mp4"
    }
    MouseArea {
        anchors.fill: parent
        onClicked: player.play()
    }
}

二.编译

1.下载依赖包

编译QtAV需要FFmpeg和OpenAL, 先去https://sourceforge.net/projects/qtav/files/depends/下载依赖包。

QtAV:基于Qt和FFmpeg的跨平台高性能音视频播放框架_第2张图片

解压缩之后,里面有构建时需要用到的头文件和库,分别在include、lib和bin目录下。

QtAV:基于Qt和FFmpeg的跨平台高性能音视频播放框架_第3张图片

2.开始编译

官方编译指导:https://github.com/wang-bin/QtAV/wiki/Build-QtAV

2.1克隆

git clone https://github.com/wang-bin/QtAV.git
cd QtAV && git submodule update --init

将QtAV克隆到QtAV-depends-windows-x86+x64同级目录

2.2修改配置文件

用记事本打开源码中的.qmake.conf文件,在最后添加依赖包的头文件和库文件

INCLUDEPATH += $$PWD/../QtAV-depends-windows-x86+x64/include
LIBS += -L$$PWD/../QtAV-depends-windows-x86+x64/lib/x64

QtAV:基于Qt和FFmpeg的跨平台高性能音视频播放框架_第4张图片

2.3编译

注意这里配置的是64位环境,所以Qt也要用64位的
用Qt Creator打开源码中的QtAV.pro文件,编译无报错,下面是我用的套件。

QtAV:基于Qt和FFmpeg的跨平台高性能音视频播放框架_第5张图片

三.试用

编译目录下的QMLPlayer.exe是一个完整的播放器,功能齐全,把界面稍微美化一下就能打造一个属于自己的播放器啦。

QtAV:基于Qt和FFmpeg的跨平台高性能音视频播放框架_第6张图片
用QMLPlayer.exe播放汪汪队的效果如下: 

你可能感兴趣的:(Qt优秀开源项目,qt,ffmpeg,音视频,QtAV)