Linux编译FFmpeg libx264 libx265 libfdk-aac libmp3lame libvpx libopus等

本文主要是介绍Linux编译FFmpeg libx264 libx265 libfdk-aac libmp3lame libvpx libopus等,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

强烈推荐使用系统源安装ffmpeg,例如: sudo apt install ffmpeg for Ubuntu。
当不能满足需求的时候再手动编译吧。


更多FFmpeg第三方库编译集成,详见我的新博客:https://blog.lmshao.com/how-to-build-ffmpeg.html


有些Linux发行版可以在线安装ffmpeg,但是因为版权关系不能包含我们所需的编码器,有时候还是需要手动编译。
下面介绍一些常见编码器的安装。libx264libx265libfdk-aaclibmp3lamelibvpxlibopuslibaom for AV1。不需要的可以不安装,最终ffmpeg configure不指定特定的编码器就可以了。
对版本没要求的,可以使用发行版对应的应用仓库的命令进行安装。
不想自己编译的可以直接下载我编译好的,GNU C Library (GNU libc) 版本大于等于2.17的系统都可以使用。常见的CentOS 7和Ubuntu13.04以上都应该都可以。
https://github.com/lmshao/FFmpegBinary/releases

编译第三方库

nasm

nasm是汇编编译器,有些编码器包含汇编代码,需要使用nasm。有些系统命令安装的nasm版本比较低,比如centos7 yum版本2.10。可以选择手动编译安装2.15版本。

wget https://www.nasm.us/pub/nasm/releasebuilds/2.15.05/nasm-2.15.05.tar.xz
tar Jxvf nasm-2.15.05.tar.xz
pushd nasm-2.15.05./configure
make && make installpopd

libx264

libx264是市面上评价比较高的H.264编码器,很多高清电影都是使用x264压缩的。

wget https://code.videolan.org/videolan/x264/-/archive/master/x264-master.tar.bz2
tar jxvf x264-master.tar.bz2
pushd x264-master./configure --enable-shared
make && make installpopd

Ubuntu系统在线安装

sudo apt install libx264-dev

libx265

hg类似于git,好多系统可以在线安装这个命令。apt install mercurial / yum install mercurial
默认8bit编码模式,可以在配置时把 HIGH_BIT_DEPTH=ON 选择10bit。

hg clone http://hg.videolan.org/x265
pushd x265/build/linux/
cmake ../../source -DHIGH_BIT_DEPTH=ON
make && make installpopd

Ubuntu系统在线安装

sudo apt install libx265-dev

libfdk-aac

libfdk-aac是目前评价最高的开源aac编码器。Ubuntu仓库没有这个,必须手动编译安装。

wget -O fdk-aac-2.0.1.tar.gz https://sourceforge.net/projects/opencore-amr/files/fdk-aac/fdk-aac-2.0.1.tar.gz/download
tar zxvf fdk-aac-2.0.1.tar.gz
pushd fdk-aac-2.0.1./configure
make && make installpopd

libmp3lame

libmp3lame 是mp3编码器。

wget -O lame-3.100.tar.gz https://sourceforge.net/projects/lame/files/lame/3.100/lame-3.100.tar.gz/download
tar zxvf lame-3.100.tar.gz
pushd lame-3.100./configure
make && make installpopd

Ubuntu系统在线安装

apt install libmp3lame-dev

libvpx

libvpx 是开源视频编码格式 VP8/VP9 的编码器。

wget https://github.com/webmproject/libvpx/archive/v1.10.0/libvpx-1.10.0.tar.gz
tar zxvf libvpx-1.10.0.tar.gz 
pushd libvpx-1.10.0mkdir libvpx-build && cd libvpx-build
../configure --enable-shared --disable-static
make && make installpopd

Ubuntu系统在线安装

apt install libopus-dev

libopus

libopus 是编码opus格式用的。

wget https://archive.mozilla.org/pub/opus/opus-1.3.1.tar.gz
tar zxvf opus-1.3.1.tar.gz
pushd opus-1.3.1./configure --enable-shared --disable-static
make && make installpopd

Ubuntu系统在线安装

apt install libopus-dev

libaom

新出的 AV1 视频编码器

git clone https://aomedia.googlesource.com/aom
git checkout v3.2.0 -b v3.2.0 #可指定版本
mkdir build && pushd build
cmake .. -DBUILD_SHARED_LIBS=1
make && make install

Intel Media SDK - Intel 硬件加速 qsv

下载Intel-Media-SDK,https://github.com/Intel-Media-SDK/MediaSDK/releases
,运行install_media.sh 默认安装在/opt/目录下了。

export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/opt/intel/mediasdk/lib64/pkgconfig

ffmepg 配置参数

--enable-libmfx

编译FFmpeg

需要的编码器按照上述的文档安装完后,在配置ffmpeg的时候使用特定的参数指定就可以集成进去了。

wget https://www.ffmpeg.org/releases/ffmpeg-4.4.tar.bz2
tar jxvf ffmpeg-4.4.tar.bz2
pushd ffmpeg-4.4export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig/:$PKG_CONFIG_PATH
./configure --enable-shared --disable-static --enable-gpl --enable-nonfree \--enable-libx264 \--enable-libx265 \--enable-libfdk-aac \--enable-libmp3lame \--enable-libvpx \--enable-libopus \--enable-libaommake && make installpopd

make install 后 ffmpeg 命令和相应的动态库就安装到系统目录了,默认一般是/usr/local/bin//usr/local/lib/目录,可以使用./configure --prefix=./xxxxx来指定安装目录。

编译 ffplay

默认编译可能没有编译出来ffplay,可以通过以下方法编译ffplay。

安装SDL2

sudo apt install libsdl2-dev  # Ubuntu

configure 参数

--enable-ffplay

不想动手的,可以下载这个FFmpeg 4.4.1 Binary。

这篇关于Linux编译FFmpeg libx264 libx265 libfdk-aac libmp3lame libvpx libopus等的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


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

相关文章

Linux中的more 和 less区别对比分析

《Linux中的more和less区别对比分析》在Linux/Unix系统中,more和less都是用于分页查看文本文件的命令,但less是more的增强版,功能更强大,:本文主要介绍Linu... 目录1. 基础功能对比2. 常用操作对比less 的操作3. 实际使用示例4. 为什么推荐 less?5.

linux lvm快照的正确mount挂载实现方式

《linuxlvm快照的正确mount挂载实现方式》:本文主要介绍linuxlvm快照的正确mount挂载实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux lvm快照的正确mount挂载1. 检查快照是否正确创建www.chinasem.cn2.

Linux给磁盘扩容(LVM方式)的方法实现

《Linux给磁盘扩容(LVM方式)的方法实现》本文主要介绍了Linux给磁盘扩容(LVM方式)的方法实现,涵盖PV/VG/LV概念及操作步骤,具有一定的参考价值,感兴趣的可以了解一下... 目录1 概念2 实战2.1 相关基础命令2.2 开始给LVM扩容2.3 总结最近测试性能,在本地打数据时,发现磁盘空

Linux网络配置之网桥和虚拟网络的配置指南

《Linux网络配置之网桥和虚拟网络的配置指南》这篇文章主要为大家详细介绍了Linux中配置网桥和虚拟网络的相关方法,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 一、网桥的配置在linux系统中配置一个新的网桥主要涉及以下几个步骤:1.为yum仓库做准备,安装组件epel-re

windows和Linux安装Jmeter与简单使用方式

《windows和Linux安装Jmeter与简单使用方式》:本文主要介绍windows和Linux安装Jmeter与简单使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录Windows和linux安装Jmeter与简单使用一、下载安装包二、JDK安装1.windows设

Kali Linux安装实现教程(亲测有效)

《KaliLinux安装实现教程(亲测有效)》:本文主要介绍KaliLinux安装实现教程(亲测有效),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、下载二、安装总结一、下载1、点http://www.chinasem.cn击链接 Get Kali | Kal

linux服务之NIS账户管理服务方式

《linux服务之NIS账户管理服务方式》:本文主要介绍linux服务之NIS账户管理服务方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、所需要的软件二、服务器配置1、安装 NIS 服务2、设定 NIS 的域名 (NIS domain name)3、修改主

Linux实现简易版Shell的代码详解

《Linux实现简易版Shell的代码详解》本篇文章,我们将一起踏上一段有趣的旅程,仿照CentOS–Bash的工作流程,实现一个功能虽然简单,但足以让你深刻理解Shell工作原理的迷你Sh... 目录一、程序流程分析二、代码实现1. 打印命令行提示符2. 获取用户输入的命令行3. 命令行解析4. 执行命令

ubuntu16.04如何部署dify? 在Linux上安装部署Dify的技巧

《ubuntu16.04如何部署dify?在Linux上安装部署Dify的技巧》随着云计算和容器技术的快速发展,Docker已经成为现代软件开发和部署的重要工具之一,Dify作为一款优秀的云原生应用... Dify 是一个基于 docker 的工作流管理工具,旨在简化机器学习和数据科学领域的多步骤工作流。它

Linux高并发场景下的网络参数调优实战指南

《Linux高并发场景下的网络参数调优实战指南》在高并发网络服务场景中,Linux内核的默认网络参数往往无法满足需求,导致性能瓶颈、连接超时甚至服务崩溃,本文基于真实案例分析,从参数解读、问题诊断到优... 目录一、问题背景:当并发连接遇上性能瓶颈1.1 案例环境1.2 初始参数分析二、深度诊断:连接状态与