目录
- 前言
- 正文
- 一、开发环境
- 二、搭建环境
- 三、测试代码
- 四、调用库的介绍
- End、遇到的问题
- 2、Qt 在线安装容易报错,断开问题
- 1、在线安装QMaintainTool很慢
- 2、Qt5.15 无法调试FFmpeg
- 参考
前言
FFmpeg是一个开源的跨平台多媒体处理框架,它包含了一组用于处理音频、视频、字幕等多媒体数据的库和工具。FFmpeg提供了强大的功能和灵活性,被广泛用于多媒体应用开发、视频编辑、流媒体传输以及音视频格式转换等领域。
以下是FFmpeg的一些主要特点和功能:
支持广泛的音视频格式:FFmpeg支持解码和编码大量的音视频格式,包括常见的如MP3、AAC、H.264、MPEG等,以及一些较为罕见的格式。
1、高性能和低延迟:FFmpeg经过高度优化,具有出色的性能和低延迟,能够高效地处理多媒体数据。
2、多媒体处理和编辑:FFmpeg提供了丰富的功能和工具,可以进行多媒体数据的剪切、合并、分离、转码、滤镜处理等操作,使开发者可以实现各种复杂的音视频处理需求。
3、流媒体传输:FFmpeg支持实时的音视频流媒体传输,可以将音视频数据推送到流媒体服务器,或者从流媒体服务器接收音视频数据。
4、跨平台支持:FFmpeg可在多个操作系统上运行,包括Windows、Linux、macOS等,使其具有广泛的应用和移植性。
5、命令行工具和API接口:FFmpeg提供了一组命令行工具,可以直接使用命令行进行音视频处理和转换。同时,它还提供了丰富的API接口,供开发者在自己的应用程序中集成和调用。
因此很有学习的必要,本系列文章,会在Qt的基础上,以最新的FFmpeg 的版本,不断的增添播放器的功能。
正文
一、开发环境
win11
Qt 5.15.2 MinGW 64 bit
二、搭建环境
参考这篇文章:ffmpeg(一) ffmpeg+QT开发环境搭建
这篇文章写了ffmpeg的下载以及基于Qt环境打搭建。
可以稍微参考一下。
FFmpeg 下载地址:FFmpeg下载地址
可以稍微注意一下下载的版本要下载哪一个。
三、测试代码
#include "mainwindow.h"
#include <QApplication>
#include <QDebug> // 利用打印函数
// ffmpeg 是纯 C 语言的代码,在 C++ 当中不能直接进行 include
extern "C" {
#include <libavcodec/avcodec.h>
}
int main(int argc, char *argv[])
{
qDebug() << "yeahhh"<< av_version_info();
QApplication a(argc, argv);
MainWindow w;
w.show();
return a.exec();
}
四、调用库的介绍
1、libavformat
用于各种音视频封装格式的生成和解析,包括获取解码所需信息以生成解码上下文结构和读取音视频帧等功能;音视频的格式解析协议,为 libavcodec 分析码流提供独立的音频或视频码流源
2、libavcodec
用于各种类型声音/图像编解码;该库是音视频编解码核心,实现了市面上可见的绝大部分解码器的功能,libavcodec 库被其他各大解码器 ffdshow,Mplayer 等所包含或应用
3、libavfilter
音视频滤镜库,该模块提供了包括音频特效和视频特效的处理,在使用FFmpeg的API进行编解码的过程中,直接使用该模块为音视频数据做特效处理是非常方便和高效的方式
4、libavutil
核心工具库,该模块是最基础的模块之一,许多其他模块都会依赖该库做一些基本的音视频处理操作
5、libswresample
该模块可用于音频重采样,可以对数字音频进行音声道、数据格式、采样率等多种进本信息的转换
6、libswscale
(原始视频格式转换)用于视频场景比例缩放、色彩映射转换;图像颜色空间或格式转换,如 rgb565,rgb888 等与 yuv420 等之间转换。
End、遇到的问题
2、Qt 在线安装容易报错,断开问题
下载在线安装包 QT 在线安装包链接,然后用以下命令启动安装包,切换成中科大的源,要不下载很慢
.\qt-unified-windows-x86-4.2.0-online.exe --mirror https://mirrors.ustc.edu.cn/qtproject
1、在线安装QMaintainTool很慢
打开cmd,执行C:\Qt\MaintenanceTool.exe --mirror https://mirrors.ustc.edu.cn/qtproject
2、Qt5.15 无法调试FFmpeg
参考:https://juejin.cn/post/7052201703281524750
以为是调试是需要增加其他的软件进行调试,但目前发现,好像用MinGW就可以进行调试了。
可能因为下载的库本身就是windows的,又没有经过VS2019进行交叉编译,所以在VS2019上使用Debug模式无法进行调试。
如果要使用VS2019的话,也可以使用,但估计无法进行调试。
参考
1、ffmpeg(一) ffmpeg+QT开发环境搭建
2、FFmpeg小白学习记录(一)信息查看