ubuntu FFmpeg 开发环境搭建

VMware Fusion 虚拟机安装

mac(intel)ubuntu18.04ffmpeg4.2.1

VMware Fusion 13.0.0.
破解版本的

安装虚拟机、ubuntu系统:

  1. 首次打开 VMware Fusion 时,会直接显示新建虚拟机的窗口;
    在这里插入图片描述

  2. 将下载好的ubuntu-18.04.6-desktop-amd64.iso.镜像拖进去,点击下一步;

  3. Linux快捷安装,继续后直接点击完成。在这里插入图片描述

  4. 配置ubuntu硬盘、内存、存储(注意先关闭ubuntu电源),配置完成后再启动ubuntu系统;
    在这里插入图片描述在这里插入图片描述在这里插入图片描述
    注意:偶尔打不开系统后,可以选择重新启动电源。
    在这里插入图片描述

到这里,mac环境下使用ubuntu基本可以了

配置、下载、编译 FFmpeg

环境配置

创建目录

在home目录下创建

ffmpeg_sources:FFmpeg 源码
ffmpeg_build:编译后的库文件
bin:存储二进制文件(ffmpeg,ffplay,ffprobe,X264,X265,SDL等)

cd ~
mkdir ffmpeg_sources ffmpeg_build bin

安装依赖

更新 Ubuntu 操作系统中软件包列表

sudo apt-get update

安装需要的组件

sudo apt-get -y install \
autoconf \
automake \
build-essential \
cmake \
git \
libass-dev \
libfreetype6-dev \
libsdl2-dev \
libtool \
libva-dev \
libvdpau-dev \
libvorbis-dev \
libxcb1-dev \
libxcb-shm0-dev \
libxcb-xfixes0-dev \
pkg-config \
texinfo \
wget \
zlib1g-dev
autoconf
一个工具集,用于根据宏定义和模板文件自动生成软件包的配置脚本
automake
一个用于生成 Makefile 的工具,它通常与 autoconf 配合使用,用于简化跨平台软件包的构建过程
build-essential
一个针对 Ubuntu 和其他基于 Debian 的 Linux 发行版的软件包。它提供了一组基本的软件包和工具,用于构建(编译和链接)软件包的源代码。这些工具包括编译器、标准 C 库、头文件以及构建软件包所需的其他工具和库
cmake
一个跨平台的开源构建系统,用于管理软件项目的构建过程。与传统的基于 Makefile 的构建系统相比,CMake 提供了更简洁、更高层次的描述方式,使得项目的构建配置更加清晰和易于维护
git
一个分布式版本控制系统,它广泛用于跟踪和管理软件开发过程中的代码变化
libass-dev
一个开发库,用于在 Linux 系统上开发支持字幕渲染的应用程序。它是 libass(Advanced Substation Alpha/Substation Alpha)库的开发包,提供了在应用程序中使用 libass 所需的头文件和静态库文件
libfreetype6-dev
用于开发的 FreeType 2 字体渲染引擎的开发包。FreeType 2 是一个开源的字体渲染引擎,用于呈现字体文件中的字形。它提供了一套 API,使得开发者可以在其应用程序中以各种方式操作字形,包括加载字体文件、渲染文本、获取字形信息等
libsdl2-dev
用于开发的 SDL 2(Simple DirectMedia Layer 2)的开发包。SDL 2 是一个跨平台的多媒体库,提供了对图形、音频、输入设备和其他外设的简单统一访问。
libtool
一个用于创建可移植库的工具,它可以隐藏不同操作系统之间的库创建和使用的差异性,从而使开发人员能够更轻松地编写跨平台的代码。
libva-dev
用于开发的 Video Acceleration API(VA-API)的开发包。VA-API 是一个开放标准的多媒体编解码加速 API,用于提高视频处理应用程序在硬件加速支持的系统上的性能和效率
libvdpau-dev
用于开发的 Video Decode and Presentation API for Unix(VDPAU)的开发包。VDPAU 是一个用于多媒体编解码和呈现的 API,旨在提高视频处理应用程序在支持硬件加速的系统上的性能和效率。
libvorbis-dev
用于开发的 Vorbis 音频编解码库的开发包。Vorbis 是一个开放的音频编解码器,用于压缩和解压缩音频数据。它通常与 Ogg 容器格式一起使用,用于创建和播放高质量的音频文件
libxcb1-dev
用于开发的 X C Binding(XCB)库的开发包。XCB 是 X Window System 的下一代通信协议库,用于客户端和 X 服务器之间的通信
libxcb-shm0-dev
用于开发的 XCB Shared Memory Extension 库的开发包。XCB Shared Memory Extension 允许 X 窗口系统中的客户端之间共享内存,从而提高图形数据的传输效率
libxcb-xfixes0-dev
用于开发的 XCB XFIXES Extension 库的开发包。XCB XFIXES Extension 提供了对 X 窗口系统中窗口修复操作的支持,包括鼠标光标形状的隐藏和显示、窗口区域的修复等。
pkg-config
一个用于管理编译和链接时依赖的工具,它通常用于自动检测和配置软件包的编译选项
texinfo
一个用于创建和处理 Texinfo 文档的工具集
wget
一个用于从网络上下载文件的命令行工具。它支持 HTTP、HTTPS 和 FTP 协议,可以下载单个文件、递归下载整个网站以及断点续传等功能
zlib1g-dev
用于开发的 zlib 库的开发包。zlib 是一个流行的压缩库,用于在许多应用程序中对数据进行压缩和解压缩操作,它广泛用于文件压缩、网络通信和数据存储等领域

FFMpeg依赖库安装

sudo apt install -y nasm \
yasm \
libx264-dev \
libx265-dev \
libnuma-dev \
libvpx-dev \
libfdk-aac-dev \
libmp3lame-dev \
libopus-dev 
nasm
是一个汇编语言编译器,常用于编写和优化汇编语言代码
yasm
一个汇编语言编译器,也用于编写和优化汇编语言代码。与 NASM 不同,Yasm 具有更广泛的支持和更多的功能
libx264-dev
H.264 视频编码器的开发包,用于开发支持 H.264 编码的应用程序
libx265-dev
H.265/HEVC 视频编码器的开发包,用于开发支持 H.265/HEVC 编码的应用程序
libnuma-dev
用于开发支持 NUMA 架构的应用程序,通常在多处理器系统中使用
libvpx-dev
VP8 和 VP9 视频编解码器的开发包,用于开发支持 VP8 和 VP9 编解码的应用程序
libfdk-aac-dev
AAC 编解码库的开发包,用于开发支持 AAC 编解码的应用程序
libmp3lame-dev
LAME MP3 编码库的开发包,用于开发支持 MP3 编码的应用程序
libopus-dev
Opus 音频编解码器的开发包,用于开发支持 Opus 编解码的应用程序

FFMpeg编译与安装

cd ~/ffmpeg_sources 
wget -O ffmpeg-4.2.1.tar.bz2 https://ffmpeg.org/releases/ffmpeg-4.2.1.tar.bz2 
tar xjvf ffmpeg-4.2.1.tar.bz2 
cd ffmpeg-4.2.1 
PATH="$HOME/bin:$PATH" 
PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" 
CFLAGS="-O3 -fPIC"

 ./configure \
 --prefix="$HOME/ffmpeg_build" \
 --pkg-config-flags="--static" \
 --extra-cflags="-I$HOME/ffmpeg_build/include" \
 --extra-ldflags="-L$HOME/ffmpeg_build/lib" \
 --extra-libs="-lpthread -lm" \
 --bindir="$HOME/bin" \
 --enable-gpl \
 --enable-libass \
 --enable-libfdk-aac \
 --enable-libfreetype \
 --enable-libmp3lame \
 --enable-libopus \
 --enable-libvorbis \
 --enable-libvpx \
 --enable-libx264 \
 --enable-libx265 \
 --enable-pic \
 --enable-shared   \
 --enable-postproc \
 --enable-nonfree
 
PATH="$HOME/bin:$PATH" 
make -j4 
make install 
hash -r

关闭当前窗口,然后重新打开,使用ffmpeg -version测试,如果打印正常,则安装完成。
在这里插入图片描述如果报错

ffmpeg: error while loading shared libraries: libavdevice.so.58: cannot open shared object file: No such file or directory

错误原因

ubuntu通过源码安装软件未进行环境变量配置,找不到启动路径

所以需要添加路径

  • 执行命令:
sudo gedit /etc/ld.so.conf
  • 打开文本后在其中加入ffmpeg lib 路径
/home/lhf/ffmpeg_build/lib
  • 该路径获取方式
cd ~
cd ffmpeg_build/lib/
pwd

在这里插入图片描述

  • 关闭文件,然后更新配置:
sudo ldconfig
  • 查看版本号
ffmpeg -version

结束 !

  • 18
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值