FFmpeg音视频处理技术:基于Linux下QT Creator的FFmpeg环境搭建(史上最全)

news2024/10/5 20:23:06

前言

  阅读本文章的小伙伴需要注意,本作者主要是从4个方面进行FFmpeg环境的搭建(完全适应利用常见操作系统平台进行FFmpeg音视频开发),大家根据需要自行选择相应的环境进行搭建:
(1)Linux(ubuntu)下FFmpeg命令行环境搭建
(2)Windows下FFmpeg命令行环境搭建
(3)Linux(ubuntu)下QT Creator的FFmpeg环境搭建
(4)Windows下QT Creator的FFmpeg环境搭建(后期更新…)

一、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

二、Windows下FFmpeg命令行环境搭建

注:需要去FFmpeg官网下载FFmpeg编译后的包,FFmpeg官网:

http://ffmpeg.org/

1、FFmpeg官网下载相应的包

本作者下载的是:FFmpeg4.2.2版本,大家可以根据实际需要下载相应的版本,如果找不到想要的版本,可以利用以下网址:http://ffmpeg.org/releases/
在这里插入图片描述

2、将下载好的FFmpeg包里的bin文件添加到系统环境变量Path里

在这里插入图片描述

3、测试下载好的FFmpeg环境,Windows下命令行工具cmd,输入命令:ffmpeg -version,如果出现版本信息,环境安装成功

在这里插入图片描述

4、可以测试一下能不能播放视频,cmd命令行工具输入:ffplay -x 800 -y 1000 C:/Users/lenovo/Desktop/meeting_01.mp4

在这里插入图片描述

在这里插入图片描述

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

注:由于本作者非FFmpeg专业,故参考以下博主(CSDN名:雲天之巔,博客号:qq214517703)发布的文章和视频链接进行环境搭建(其中本作者删减了H265编码部分),如有侵权,请原作者联系QQ:35175419,本作者会及时删除以保护原创者的合法权益

博主文章链接:

https://blog.csdn.net/qq214517703/article/details/106500008

博主视频链接:

https://www.bilibili.com/video/BV1Sz411v7Wm/?spm_id_from=888.80997.embed_other.whitelist&t=767&vd_source=8c0e94c43c8556178a1925558ef1ae3e

1、下载FFmpeg资源依赖包

(1)yasm包

链接:
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拷贝到虚拟机中并解压

在这里插入图片描述

3、开始安装FFmpeg依赖环境

(1)安装yasm

第一步:进入yasm文件中,打开终端,输入命令:./configure

在这里插入图片描述
在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

(2)安装nasm

第一步:进入nasm文件中,打开终端,输入命令:./configure

在这里插入图片描述
在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

(4)编译x264静态库

第一步:进入x264文件下,打开终端,输入命令:./configure --enable-static --prefix=…/x264 --enable-pic

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

(5)下载FFmpeg源码,并开始安装FFmpeg环境(注:之前装的FFmpeg命令行环境和这里装的FFmpeg环境不冲突)

第一步:下载FFmpeg源码,并拷贝到虚拟机中进行解压

在这里插入图片描述
在这里插入图片描述

第二步:进入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

在这里插入图片描述
##########################至此整个环境搭建完成 ##########################

  编译完成后,发现在路径下生成了ffmpeg文件夹(前面第三步),这是之前在编译时生成,该文件里生成了相应的动态库和静态库等
在这里插入图片描述

4、Linux下QT Creator搭建FFmpeg环境

(1)Linux下搭建QT Creator环境

本作者链接:https://blog.csdn.net/Mr_zhang1911116/article/details/132184656?spm=1001.2014.3001.5502

(2)QT Creator搭建FFmpeg环境

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

在这里插入图片描述

第二步:在QT_Test项目文件QT_Test.pro中,导入FFmpeg库
导入的内容如下:
INCLUDEPATH += $$PWD/ffmpeg/include
LIBS +=-L$$PWD/ffmpeg/lib -lavcodec -lavutil -lavformat -lavdevice -lavfilter -lpostproc -lswresample -lswscale
#注:-L是指在指定路径下,$$PWD是指当前路径

在这里插入图片描述

第三步:在主界面文件dialog.cpp(当然可以根据实际情况选择在哪个文件中添加)中,加入FFmpeg库文件
导入的内容如下:
extern "C"{
#include <libavcodec/avcodec.h>
#include <libavformat/avformat.h>
#include <libswscale/swscale.h>
#include <libavutil/imgutils.h>
#include <libswresample/swresample.h>
}   //可以根据自己需要进行添加即可,由于ffmpeg是C的库,故需要extern “C”进行引入

在这里插入图片描述

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

在这里插入图片描述

四、Windows下QT Creator的FFmpeg环境搭建

后期更新!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/860981.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Java并发】ReentrantLock的实现原理

文章目录 ReentrantLock是什么&#xff1f;ReentrantLock底层源码&#xff1a;ReentrantLock底层原理图解&#xff1a;&#xff08;以NonfairSync举例&#xff09; ReentrantLock是什么&#xff1f; synchronized关键字是一种隐式锁&#xff0c;即它的加锁与释放是自动的&…

Android 开发面试中,面试官最喜欢问那些问题?

作者&#xff1a;小谢 “你遇到过哪些高质量的Android面试&#xff1f;” [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3Pc1xZw5-1691675604271)(//upload-images.jianshu.io/upload_images/24388310-aa3c732481d0749f.png?imageMogr2/auto-orie…

自动脱扣型绝缘靴(手套)耐压支架操作步骤

一、概述 KDJS-8Q自动脱扣型绝缘靴&#xff08;手套&#xff09;耐压支架是根据《DLT 976-2017 带电作业工具、装置和设备预防性试验规程》、《DLT 1476-2015电力安全工器具预防性试验规程》、《GBT 17622-2008带电作业用绝缘手套》、《CB21148 2020足部防护 安全鞋》等…

【java】java项目在idea中Build Project或Rebuild Project一直进行不完

问题场景 我项目进行重新构建的时候&#xff0c;项目构建到某一个位置就一直不动了 解决方法 1.清理idea缓存 2.加大idea的内存 File -> Setting

在 Delphi 的 TRichEdit 中插入图片并保存为html文件

当在 Delphi 中使用 TRichEdit 组件时&#xff0c;有时需要将图片插入到文本中。下面详细介绍了如何在 TRichEdit 中插入图片。 引言&#xff1a; TRichEdit 组件是 Delphi 中常用的文本编辑控件&#xff0c;它不仅可以显示文本内容&#xff0c;还可以插入图片&#xff0c;丰富…

springboot汽车租赁后台java出租客户管理jsp源代码mysql

本项目为前几天收费帮学妹做的一个项目&#xff0c;Java EE JSP项目&#xff0c;在工作环境中基本使用不到&#xff0c;但是很多学校把这个当作编程入门的项目来做&#xff0c;故分享出本项目供初学者参考。 一、项目描述 springboot汽车租赁后台 系统有1权限&#xff1a;管理…

SCI论文中字体和图片字体大小的要求

SCI论文中字体和图片字体大小的要求 文章目录 1. American Chemical Society(ACS)要求2. Nature要求 1. American Chemical Society(ACS)要求 https://www.zhihu.com/question/380612293?utm_id0 2. Nature要求

章节1:HTTP协议回顾

章节1&#xff1a;HTTP协议回顾 HTTP请求方式 get请求&#xff1a;我们通常用其发起查询。 post请求&#xff1a;我们用其来向服务器提交数据。 HTTP请求格式 第一行为请求行。 HTTP响应格式 HTTP特点 请求应答模式灵活可扩展可靠传输无状态 stateless

网神 SecGate 3600 防火墙任意文件上传漏洞复现(HW0day)

0x01 产品简介 网神SecGate3600下一代极速防火墙&#xff08;NSG系列&#xff09;是基于完全自主研发、经受市场检验的成熟稳定网神第三代SecOS操作系统 并且在专业防火墙、VPN、IPS的多年产品经验积累基础上精心研发的高性能下一代防火墙 专门为运营商、政府、军队、教育、大型…

推出 Elasticsearch 查询语言 (ES|QL)

作者&#xff1a;Costin Leau 我很高兴地宣布&#xff0c;经过大约一年的开发&#xff0c;Elasticsearch 查询语言 (ES|QL) 已准备好与世界共享&#xff0c;并已登陆 Elasticsearch 存储库。 ES|QL 是 Elasticsearch 原生的强大声明性语言&#xff0c;专为可组合性、表现力和速…

网络加速与文件传输软件:如何通过优化网络提升文件传输速度

在信息化社会&#xff0c;文件传输是人们生活和工作中必不可少的一个环节。但是&#xff0c;由于网络环境的多样性和传输过程中可能出现的各种问题&#xff0c;文件传输速度经常受到影响。因此&#xff0c;如何优化网络以提高文件传输速度成为了一个重要的课题。本文将探讨网络…

Mybatis-plus 异常:Not Found TableInfoCache

标题&#xff1a;Mybatis-plus 异常&#xff1a;Not Found TableInfoCache Mybatis-plus 是一个流行的基于 Mybatis 的增强工具包&#xff0c;可以极大地简化数据库操作。然而&#xff0c;在使用 Mybatis-plus 过程中&#xff0c;可能会遇到一些异常情况&#xff0c;其中之一就…

mysql基础之触发器的简单使用

1.建立学生信息表 -- 触发器 -- 建立学生信息表 create table s1(id int unsigned auto_increment,name varchar(30),score tinyint unsigned,dept varchar(50),primary key(id) );2.建立学生补考信息表 -- 建立学生补考信息表 create table s2 like s1;3.建立触发器&#xf…

【excel技巧】excel公式如何隐藏?

Excel文件中最重要的除了数据还有就是一些公式了&#xff0c;但是只要点击单元格&#xff0c;公式就能显示出来&#xff0c;如果不想别人看到公式应该如何设置呢&#xff1f;今天分享隐藏excel单元格数据的方法。 选中单元格&#xff0c;点击右键打开【设置单元格格式】&#x…

【Linux】云服务器自动化部署VuePress博客(Jenkins)

前言 博主此前是将博客部署在 Github Pages&#xff08;基于 Github Action&#xff09;和 Vercel 上的&#xff0c;但是这两种部署方式对于国内用户很不友好&#xff0c;访问速度堪忧。因此将博客迁移到自己的云服务器上&#xff0c;并且基于 Jenkins&#xff08;一款开源持续…

最强自动化测试框架Playwright-(2)实用操作

元素定位 定位器是playwright自动等待和重试功能的核心部分。简而言之&#xff0c;定位器表示一种随时在页面上查找元素的方法。 Locators | Playwright Python 如下这些是推荐的 page.get_by_role&#xff08;&#xff09; 按显式和隐式辅助功能属性进行定位。 page.get…

Dockerfile 语法梳理及介绍

1. FROM FROM参数&#xff1a;从什么基础镜像构建新的镜像。 举例 &#xff1a; FROM centos&#xff0c; FROM ubuntu, FROM hello-world 使用 centos 镜像作为基础镜像。 注意&#xff1a;尽量使用官方的镜像作为基础镜像, 为了安全起见。 2. LABEL LABEL参数&#xff1a;从上…

交流汽车充电桩也有大功率的,为什么市场还是想做直流的?

新能源汽车交流充电桩和直流充电桩的区别是什么&#xff1f; 交流汽车充电桩也有大功率的&#xff0c;为什么市场还是想做直流的&#xff1f; 交流充电桩和直流充电桩最本质的区别是充电时车载设备的参与程度。 交流充电桩就好比是一双筷子&#xff0c;它把食物送到嘴里&#…

Windows 编译CEF源码详细记录

背景 默认的CEF不支持音视频功能&#xff0c;需要下载源码将ffmpeg开关打开&#xff0c;再进行编译。 Linux编译参考&#xff1a; 《Linux CEF源码下载编译详细记录》 创建目录结构 code/automate/automate-git.py <-- CEF build scriptchromium_git/cef/ …

Vue数组变更方法和替换方法

一、可以引起UI界面变化 Vue 将被侦听的数组的变更方法进行了包裹&#xff0c;所以它们也将会触发视图更新。这些被包裹过的方法包括&#xff1a; push()pop()shift()unshift()splice()sort()reverse() 以上七个数组都会改变原数组&#xff0c;下面来分别讲解它们的区别&…