首页 > 系统相关 >FFmpeg开发笔记(十)Linux环境给FFmpeg集成vorbis和amr

FFmpeg开发笔记(十)Linux环境给FFmpeg集成vorbis和amr

时间:2024-03-31 12:23:04浏览次数:26  
标签:enable FFmpeg -- vorbis Linux libvorbis amr opencore

​FFmpeg内置了aac音频格式,在《FFmpeg开发实战:从零基础到短视频上线》一书的“5.2.2  Linux环境集成mp3lame”又介绍了如何给FFmpeg集成mp3格式,常见的音频文件除了这两种之外,还有ogg和amr两种格式也较常用。其中ogg格式的编解码依赖于libogg和libvorbis,而amr格式的编解码依赖于opencore-amr。因此要先安装编译这三个库,再让FFmpeg开启ogg和amr支持,在Linux环境的操作过程包含四个步骤:安装libogg、安装libvorbis、安装opencore-amr、重新编译FFmpeg,分别说明如下。

1、安装libogg

libogg支持解析ogg文件结构,也可用于封装ogg格式,它的安装步骤说明如下。
(1)到https://www.linuxfromscratch.org/blfs/view/svn/multimedia/libogg.html下载最新的libogg源码,比如2021年6月发布的libogg-1.3.5,该版本的源码下载地址是https://downloads.xiph.org/releases/ogg/libogg-1.3.5.tar.gz。将下载好的压缩包上传到服务器并解压,也就是依次执行以下命令。

tar zxvf libogg-1.3.5.tar.gz
cd libogg-1.3.5

(2)进入解压后的libogg目录,运行下面命令配置libogg。

./configure

(3)运行下面命令编译libogg。

make

(4)编译完成后,运行下面命令安装libogg。

make install

2、安装libvorbis

Vorbis是一种免费的音频编码标准,libvorbis是Vorbis音频的编解码库。因为Vorbis音频通常封装在ogg格式中,所以libvorbis依赖于libogg,它的安装步骤说明如下。
(1)到https://www.linuxfromscratch.org/blfs/view/svn/multimedia/libvorbis.html下载最新的libvorbis源码,比如2020年7月发布的libvorbis-1.3.7,该版本的源码下载地址是https://downloads.xiph.org/releases/vorbis/libvorbis-1.3.7.tar.gz。将下载好的压缩包上传到服务器并解压,也就是依次执行以下命令。

tar zxvf libvorbis-1.3.7.tar.gz
cd libvorbis-1.3.7

(2)进入解压后的libvorbis目录,运行下面命令配置libvorbis。

./configure

(3)运行下面命令编译libvorbis。

make

(4)编译完成后,运行下面命令安装libvorbis。

make install

3、安装opencore-amr

opencore-amr是AMR音频的编解码库,支持对AMR-NB和AMR-WB格式的音频进行编解码,它的安装步骤说明如下。
(1)到https://sourceforge.net/projects/opencore-amr/files/opencore-amr/下载最新的opencore-amr源码,比如2022年10月发布的opencore-amr-0.1.6,该版本的源码下载地址是https://nchc.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-0.1.6.tar.gz。将下载好的压缩包上传到服务器并解压,也就是依次执行以下命令。

tar zxvf opencore-amr-0.1.6.tar.gz
cd opencore-amr-0.1.6

(2)进入解压后的opencore-amr目录,运行下面命令配置opencore-amr。

./configure

(3)运行下面命令编译opencore-amr。

make

(4)编译完成后,运行下面命令安装opencore-amr。

make install

4、重新编译FFmpeg

由于FFmpeg默认未启用ogg和amr,因此需要重新配置FFmpeg,标明启用ogg和amr,然后重新编译安装FFmpeg。FFmpeg的Linux环境完整编译过程参见《FFmpeg开发实战:从零基础到短视频上线》一书的“1.2.3  自行编译与安装FFmpeg”,详细的启用步骤说明如下。
(1)回到FFmpeg源码的目录,执行以下命令重新配置FFmpeg,主要增加启用ogg和amr。(增加了选项--enable-libvorbis --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-version3)

./configure --prefix=/usr/local/ffmpeg --enable-shared --disable-static --disable-doc --enable-zlib --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-libdavs2 --enable-libmp3lame --enable-libfreetype --enable-libass --enable-libfribidi --enable-libxml2 --enable-fontconfig --enable-sdl2 --enable-libvorbis --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-version3 --enable-iconv --enable-gpl --enable-nonfree

(2)运行下面命令编译FFmpeg。

make clean
make -j4

(3)执行下面命令安装FFmpeg。

make install

(4)运行以下命令查看FFmpeg的版本信息。

ffmpeg -version

查看控制台回显的FFmpeg版本信息,找到“--enable-libvorbis --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-version3”,说明FFmpeg正确启用了新增的音频格式ogg和amr。

标签:enable,FFmpeg,--,vorbis,Linux,libvorbis,amr,opencore
From: https://www.cnblogs.com/aqi00/p/18078414

相关文章

  • Linux——共享内存
    Linux——共享内存什么是共享内存共享内存原理Linux下共享内存的接口创建/获取共享内存:shmgetftok函数映射共享内存到进程地址空间:shmat解除共享内存映射:shmdt删除共享内存段:shmctl利用共享内存进行通信我们之前学习了匿名管道,命名管道来进行进程之间的通信,其实除......
  • 在Linux中,如何创建、删除和修改文件?
    在Linux系统中,文件管理是一项基本且重要的操作。以下是关于如何在Linux中创建、删除和修改文件的详细步骤。1.创建文件使用touch命令:touch命令是创建空文件最常用的方法。打开终端,使用以下命令:touchfilename.txt这将创建一个名为filename.txt的空文件。使用echo命令:......
  • 在Linux中,什么是文件权限?它们是如何工作的?
    在Linux中,文件权限是一套用于控制用户和用户组对文件或目录访问行为的权限系统。这些权限确保了文件系统的安全性,防止未经授权的访问、修改或执行文件。Linux文件权限的核心特点包括:三种基本权限:读权限(r):允许用户读取文件内容。对于目录,读权限允许用户列出目录中的文件和子目......
  • 在Linux中,什么是管道?它是如何工作的?
    在Linux中,管道(Pipeline)是一种将多个命令连接起来的技术,使得一个命令的输出可以直接作为另一个命令的输入。这种机制通过管道符号|来实现,它极大地提高了命令行操作的效率和灵活性。1.管道的概念管道的概念源自于UNIX系统,它允许用户将简单的命令组合成强大的、复杂的命令序列。......
  • 在Linux中,如何使用grep命令查找文件中的内容?
    在Linux中,grep命令是一个非常强大的文本搜索工具,它允许用户搜索文件中的特定字符串或模式。grep的名称来源于“globalregularexpressionprint”,意为全局正则表达式打印。以下是使用grep命令查找文件内容的详细步骤和常见用法:1.基本语法grep命令的基本语法如下:grep[选项]'......
  • 在Linux中,如何查看系统的磁盘使用情况?
    在Linux系统中,查看磁盘使用情况是非常重要的系统管理任务之一,它有助于了解磁盘空间的分配和使用情况,以便进行合理的磁盘空间管理。以下是几种常用的查看磁盘使用情况的方法:1.df命令df(DiskFree)命令用于显示文件系统的磁盘空间占用情况。它可以报告各个挂载点的总空间、已用空......
  • 计算linux磁盘空间
     可以准确获取某个挂载点的硬盘空间,已使用空间。现在问题就出在挂载点的判断和类型过滤上面。 #include<iostream>#include<fstream>#include<sstream>#include<vector>#include<string>#include<sys/statvfs.h>#include<map>structDISK_......
  • [转帖]linux expect 详解
    介绍expect是由DonLibes基于Tcl(ToolCommandLanguage)语言开发的,主要应用于自动化交互式操作的场景,借助Expect处理交互的命令,可以将交互过程如:ssh登录,ftp登录等写在一个脚本上,使之自动化完成。尤其适用于需要对多台服务器执行相同操作的环境中,可以大大提高系统管理人员......
  • linux物理内存,虚拟内存的获取
    使用文件流的方式,解析   cat/proc/meminfo 文件里面的数据 #include<iostream>#include<fstream>#include<sstream>#include<string>#include<unordered_map>#include<map>structBASE_INFO_S{unsignedlonglongMemTot......
  • Linux服务器准备java运行环境
    安装JAVA下检查是否安装了JAVAjava-version提示"java:commandnotfound"则表示没有安装,如果安装了会显示JAVA版本信息CentOS安装JAVAsudoyuminstalljava-11-openjdk-devel 安装完成再执行一下:java-version 说明安装成功,没问题设置环境变量设置JAVA_HO......