前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >实现音视频编解码(播放一个中秋节快乐视频为例)Qt | AI+Qt6.5.3+ubuntu20.04+FFmpeg

实现音视频编解码(播放一个中秋节快乐视频为例)Qt | AI+Qt6.5.3+ubuntu20.04+FFmpeg

原创
作者头像
Qt历险记
修改2024-09-26 22:12:28
140
修改2024-09-26 22:12:28
举报
文章被收录于专栏:Linux高端玩家Qt6 研发工程师

01、下载

>>>FFmpeg下载官网:https://ffmpeg.org//

本次选择下载linux版本的

环境准备

Qt6.5.3

ubuntu+虚拟机

FFmpeg

02、Linux(ubuntu)下FFmpeg命令行环境搭建

>>>1、Linux终端输入命令:sudo apt update或sudo apt-get update 2、Linux终端输入命令:sudo apt install ffmpeg或sudo apt-get install ffmpeg 3、测试FFmpeg是否安装成功,Linux终端输入命令:ffmpeg -version,如果出现版本信息,环境安装成功 4、如果需要卸载FFmpeg,终端输入命令:sudo apt-get purge ffmpeg或sudo apt purge ffmpeg

03、Linux(ubuntu)下QT Creator的FFmpeg环境搭建

>>>1、下载FFmpeg资源依赖包 链接: http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz (2)nasm包 链接: https://www.nasm.us/pub/nasm/releasebuilds/2.14.02/nasm-2.14.02.tar.bz2 3)x264包 链接: http://ftp.videolan.org/pub/videolan/x264/snapshots/ (4)x265包(可以根据需要进行下载) 链接: http://ftp.videolan.org/pub/videolan/x265/ 2、将下载好的yasm、nasm、x264、x265拷贝到虚拟机中并解压

04、开始安装FFmpeg依赖环境yasm

>>>1)安装yasm 第一步:进入yasm文件中,打开终端,输入命令:./configure tar -zxvf yasm-1.3.0.tar.gz 

./configure 

第二步:终端继续输入命令:make或sudo make进行编译

第三步:终端继续输入命令:make install或sudo make install(注:最好使用sudo提升权限)进行下载

05、开始安装FFmpeg依赖环境nasm

>>>2)安装nasm 第一步:进入nasm文件中,打开终端,输入命令:./configure tar -xvf nasm-2.14.02.tar.bz2

./configure 

第二步:终端继续输入命令:make或sudo make

第三步:终端继续输入命令:make install或sudo make install(注:最好也要加sudo提升权限)

3)安装cmake(x265编码构建时需要,故可安装也可不安装),打开终端,输入命令:sudo apt install cmake -y或apt install cmake -y

06、开始安装FFmpeg依赖环境x264

>>>4)编译x264静态库x264-snapshot-20180331-2245-stable.tar.bz2(下载时这个网址有点毛病,下载这个版本先试一试) 第一步:进入x264文件下,打开终端,输入命令:./configure --enable-static --prefix=…/x264 --enable-pic tar -xf x264-snapshot-20180331-2245-stable.tar.bz2

第二步:终端继续输入命令:sudo make -j16或make -j16

第三步:终端继续输入命令:sudo make install或make install

07、开始安装FFmpeg依赖环境x265

>>>(5)编译x265(只编译静态库) tar xvf x265_3.2.tar.gz

cd x265_3.2/build/linux/ cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX="../../../x265" -DENABLE_SHARED:bool=off ../../source

make -j16

make install

08、开始安装FFmpeg依赖环境(重头戏)

>>>5)下载FFmpeg源码,并开始安装FFmpeg环境(注:之前装的FFmpeg命令行环境和这里装的FFmpeg环境不冲突) 第一步:下载FFmpeg源码,并拷贝到虚拟机中进行解压

tar -xf ffmpeg-7.0.2.tar.xz 

第二步:进入FFmpeg-6.0文件夹,打开终端,输入命令:export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:../x264/lib/pkgconfig

第三步:终端继续输入命令:./configure --enable-shared --enable-nonfree --enable-gpl --enable-pthreads --enable-libx264 --prefix=../ffmpeg

第四步:终端继续输入命令:sudo make -j64或make -j64 //这一步花的时间比较多 第五步:终端继续输入命令:sudo make install或make install

【安装成功】

09、Linux下QT Creator搭建FFmpeg环境

>>>(1)Linux下搭建QT Creator环境

Qt | ubuntu20.04安装Qt6.5.3并创建一个app完整教程(涉及诸多开发细节,商用慎重)

第四章 | Ubuntu20.04安装Qt6.5.3教程成功版

>>>第一步:建立QT Creator工程(本作者工程命名:QT_FFmpegTest),将之前生成的ffmpeg文件拷贝到QT_FFmpegTest项目文件中

>>>{【引用 这里实际可不用,但是有必要说一下,方便管理项目】 在 Qt 工程中,如果你希望通过 .pri 文件引入目录下的文件夹,你可以按照以下步骤操作:

  1. 创建 .pri 文件:在你希望的目录下创建一个 .pri 文件,比如 FFmpeg.pri。
  2. 添加新文件
  1. 命名

已添加

在 .pri 文件中添加文件:打开刚创建的 .pri 文件,使用 SOURCES 和 HEADERS 变量来添加目录下的源文件和头文件。比如,如果你想引入 src 文件夹下的所有 *.cpp 和 *.h 文件,可以添加如下内容: SOURCES += $PWD/ffmpeg/*.cpp HEADERS += $PWD/ffmpeg/*.h 修改主 .pro 文件:在你的主 .pro 文件中,使用 include() 函数引入你刚刚创建的 .pri 文件。比如,如果你的 .pri 文件与主 .pro 文件在同一目录下,你可以这样写:

  1. 确保路径正确:如果你的 .pri 文件不在主 .pro 文件的同一目录下,请确保提供正确的相对路径或绝对路径。
  2. 重新构建项目:保存所有修改后,请重新运行 qmake 和构建项目,以确保新加入的文件被成功识别。执行qmake

并未使用,.pri的头文件和源文件一般最好在第一级目录,不然加载不进来。

}

>>>第二步:在QT_FFmpegTest项目文件QT_FFmpegTest.pro中,导入FFmpeg库 右键点击

添加外部库

这种方式每次只能添加一个库,比较鸡肋。

加入库后,会自动添加头文件路径,选择linux即可

预览

.pro

【这里我们直接采用手动添加方式2】 # lib # 导入的内容如下: INCLUDEPATH += $$PWD/ffmpeg/include LIBS +=-L$$PWD/ffmpeg/lib -lavcodec -lavutil -lavformat -lavdevice -lavfilter -lpostproc -lswresample -lswscale #注:-L是指在指定路径下,$$PWD是指当前路径

第三步:在主界面文件mainwindow.cpp(当然可以根据实际情况选择在哪个文件中添加)中,加入FFmpeg库文件

第四步:在程序文件中,调用任意一个库函数,例如:av_version_info()//打印版本信息函数,然后运行整个工程,如果出现版本信息,说明环境安装完成

运行

【到这一步,证明我们所有的配置都没问题,音视频开发之路随之打开】

实战小例子

>>>

  1. 视频文件格式
    • MP4:广泛使用的格式,通常包含 H.264 编码的视频和 AAC 编码的音频。
    • AVI:包含视频和音频流,支持多种编码格式。
    • MKV(Matroska):能够容纳多种视频、音频和字幕轨道。
    • MOV:Apple 的 QuickTime 格式,通常用于影片制作和分发。
    • WMV:Windows 媒体视频格式,适合于 Windows 系统使用。
    • FLV:Flash 视频格式,常用于视频流和在线播放。
    • WEBM:用于网页视频的格式,通常包含 VP8/VP9 编码的视频和 Vorbis/Opus 编码的音频。
    • MPEG:一种视频压缩标准,包含 MPEG-1、MPEG-2 等。
  2. 视频编码格式
    • H.264:常用的高效视频编码格式,广泛应用于在线视频和蓝光光盘。
    • H.265/HEVC:比 H.264 更高效的编码格式,提供更高的压缩率。
    • VP8/VP9:Google 开发的高效视频编码格式,常用于 WebM。
    • MPEG-2MPEG-4AV1 等。
  3. 音频格式
    • FFmpeg 也支持多种音频格式,诸如 MP3、AAC、WAV、FLAC、OGG 等。视频文件通常会伴随音频轨道。
  4. 图像格式
    • FFmpeg 还可以处理静态图像格式,像 JPG、PNG、BMP、TIFF 等,可以将视频帧导出为图像序列,或将图像序列合成视频。

    并使用 Qt 的 QLabel 来显示视频帧。我们假设已经有一个 QLabel 在你的 UI 中用于显示视频画面,命名为 label_video。 .ui设计

这里我就随便用剪映制作一个视频。

直接拖到linux

点击运行

总结+资源获取

>>>

  1. 本次linux+Qt+FFmpeg成功搭建;
  2. 实现了播放视频;
  3. 相关资源获取如下:

项目源码+工具:github获取(推荐)但是FFmpeg没有加入,文件太大,加群领取吧。

工宗号:Qt历险记

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 01、下载
  • 02、Linux(ubuntu)下FFmpeg命令行环境搭建
  • 03、Linux(ubuntu)下QT Creator的FFmpeg环境搭建
  • 04、开始安装FFmpeg依赖环境yasm
  • 05、开始安装FFmpeg依赖环境nasm
  • 06、开始安装FFmpeg依赖环境x264
  • 07、开始安装FFmpeg依赖环境x265
  • 08、开始安装FFmpeg依赖环境(重头戏)
  • 09、Linux下QT Creator搭建FFmpeg环境
  • 实战小例子
  • 总结+资源获取
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档