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 文件引入目录下的文件夹,你可以按照以下步骤操作:
- 创建 .pri 文件:在你希望的目录下创建一个 .pri 文件,比如 FFmpeg.pri。
- 添加新文件
- 命名
已添加
在 .pri 文件中添加文件:打开刚创建的 .pri 文件,使用 SOURCES 和 HEADERS 变量来添加目录下的源文件和头文件。比如,如果你想引入 src 文件夹下的所有 *.cpp 和 *.h 文件,可以添加如下内容: SOURCES = $PWD/ffmpeg/*.cpp HEADERS = $PWD/ffmpeg/*.h 修改主 .pro 文件:在你的主 .pro 文件中,使用 include() 函数引入你刚刚创建的 .pri 文件。比如,如果你的 .pri 文件与主 .pro 文件在同一目录下,你可以这样写:
- 确保路径正确:如果你的
.pri
文件不在主.pro
文件的同一目录下,请确保提供正确的相对路径或绝对路径。 - 重新构建项目:保存所有修改后,请重新运行 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()//打印版本信息函数,然后运行整个工程,如果出现版本信息,说明环境安装完成
运行
【到这一步,证明我们所有的配置都没问题,音视频开发之路随之打开】
实战小例子
>>>
- 视频文件格式:
- 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 等。
- 视频编码格式:
- H.264:常用的高效视频编码格式,广泛应用于在线视频和蓝光光盘。
- H.265/HEVC:比 H.264 更高效的编码格式,提供更高的压缩率。
- VP8/VP9:Google 开发的高效视频编码格式,常用于 WebM。
- MPEG-2、MPEG-4、AV1 等。
- 音频格式:
- FFmpeg 也支持多种音频格式,诸如 MP3、AAC、WAV、FLAC、OGG 等。视频文件通常会伴随音频轨道。
- 图像格式:
- FFmpeg 还可以处理静态图像格式,像 JPG、PNG、BMP、TIFF 等,可以将视频帧导出为图像序列,或将图像序列合成视频。
并使用 Qt 的 QLabel 来显示视频帧。我们假设已经有一个 QLabel 在你的 UI 中用于显示视频画面,命名为 label_video。 .ui设计
这里我就随便用剪映制作一个视频。
直接拖到linux
点击运行
总结 资源获取
>>>
- 本次linux Qt FFmpeg成功搭建;
- 实现了播放视频;
- 相关资源获取如下:
项目源码 工具:github获取(推荐)但是FFmpeg没有加入,文件太大,加群领取吧。 |
---|
工宗号:Qt历险记 |