FFmpeg开发笔记(六十五)Linux给FFmpeg集成LC3音频的编码器liblc3

《FFmpeg开发实战:从零基础到短视频上线》一书的第五章介绍了FFmpeg如何处理常见的MP3音频和AAC音频,其中MP3格式常用于音乐文件,而AAC格式常用于视频文件。

除此以外,近年又出现了专用于蓝牙音频的LC3格式,其全称是低复杂度通信编解码器(Low Complexity Communications Codec)。2020年9月15日,蓝牙技术联盟正式发布LC3技术规范,所有的蓝牙音频规范将强制使用LC3音频编解码器。

LC3和LC3 Plus是专为低延迟音频传输而设计的音频编解码器,LC3 Plus在LC3的基础上还提出了以下功能:

1、每帧音频的持续时间为2.5ms或5ms。

2、采用高分辨率模式,采样率为48KHz或96KHz。

liblc3是一个开源的LC3音频编解码库,同时内置了LC3和LC3 Plus功能,从7.1版本开始的最新FFmpeg源码已经支持LC3音频的编码器liblc3。

接下来以华为的欧拉系统为例,介绍如何在Linux环境给FFmpeg集成LC3音频的编码器liblc3,具体的操作步骤说明如下:

一、安装liblc3

liblc3是一款LC3音频的编解码库。它的源码托管页面在https://github.com/google/liblc3,最新版本是2025年2月发布的liblc3-1.1.3,该版本的源码包下载地址是https://codeload.github.com/google/liblc3/tar.gz/refs/tags/v1.1.3。

liblc3的安装步骤说明如下。

1、安装编译工具meson和ninja

这两个工具已经在之前libdav1d的安装过程中安装了,这里不再赘述。

2、将下载好的压缩包上传到服务器并解压,也就是依次执行以下命令。

复制代码
cd /usr/local/src
tar zxvf liblc3-1.1.3.tar.gz
cd liblc3-1.1.3

3、进入解压后的build目录,运行下面命令配置liblc3。

复制代码
mkdir build
cd build
meson setup

4、运行下面命令编译liblc3。

复制代码
ninja

5、编译完成后,运行下面命令安装liblc3。

复制代码
ninja install

二、让FFmpeg启用liblc3

由于FFmpeg默认未启用liblc3,因此需要重新配置FFmpeg,标明启用liblc3,然后重新编译安装FFmpeg。

先下载最新的FFmpeg源码(版本号需大于等于7.1),再把FFmpeg源码包上传到Linux服务器的/usr/local/src目录下。接着登录Linux服务器的控制台,执行下面命令解压源码包:

复制代码
cd /usr/local/src
unzip ffmpeg-n7.1.1.zip

确保Linux环境已经按照《FFmpeg开发实战:从零基础到短视频上线》该书第一章的"1.2 Linux系统安装FFmpeg"安装了H.264的编码器libx264和H.265的编码器libx265,并且按照之前的文章安装了H.266的编码器libvvenc,然后执行以下的liblc3启用步骤。

1、回到FFmpeg源码的目录,执行以下命令重新配置FFmpeg,主要增加启用liblc3。(增加了选项" --enable-liblc3")

复制代码
cd ffmpeg-n7.1.1
export LD_LIBRARY_PATH=/usr/local/lib64:$LD_LIBRARY_PATH
export PKG_CONFIG_PATH=/usr/local/lib64/pkgconfig:$PKG_CONFIG_PATH
./configure --prefix=/usr/local/ffmpeg --enable-shared --disable-static --disable-doc --enable-zlib --enable-libx264 --enable-libx265 --enable-libvvenc --enable-liblc3 --enable-iconv --enable-gpl --enable-nonfree

2、运行下面命令编译FFmpeg。

复制代码
make clean
make -j4

3、执行下面命令安装FFmpeg。

复制代码
make install

三、查看FFmpeg的安装结果

运行下面命令查看FFmpeg的安装版本:

复制代码
ffmpeg -version

上面命令返回的FFmpeg版本信息如下:

复制代码
ffmpeg version 7.1.1 Copyright (c) 2000-2025 the FFmpeg developers
built with gcc 10.3.1 (GCC)
configuration: --prefix=/usr/local/ffmpeg --enable-shared --disable-static --disable-doc --enable-zlib --enable-libx264 --enable-libx265 --enable-libvvenc --enable-liblc3 --enable-iconv --enable-gpl --enable-nonfree
libavutil      59. 39.100 / 59. 39.100
libavcodec     61. 19.101 / 61. 19.101
libavformat    61.  7.100 / 61.  7.100
libavdevice    61.  3.100 / 61.  3.100
libavfilter    10.  4.100 / 10.  4.100
libswscale      8.  3.100 /  8.  3.100
libswresample   5.  3.100 /  5.  3.100
libpostproc    58.  3.100 / 58.  3.100

根据以上返回的版本信息,可知已安装的FFmpeg版本号为7.1.1,同时configuration这行找到"--enable-liblc3",说明FFmpeg已经启用了LC3音频的编解码库liblc3。

更多详细的FFmpeg开发知识参见《FFmpeg开发实战:从零基础到短视频上线》一书。

相关推荐
美狐美颜sdk2 小时前
直播APP源码可以直接接入视频美颜sdk吗?技术方案详解
android·人工智能·音视频·美颜sdk·直播美颜sdk
揽秀亭长3 小时前
从音频到五线谱|扒谱过程中的关键技术环节
人工智能·音视频
乐橙开放平台7 小时前
智慧连锁客流检测和离岗检测怎么对接
大数据·人工智能·笔记·物联网·自动化·音视频·智能家居
Anhty9 小时前
2026最新免费手机音频处理工具 !!
android·功能测试·ios·智能手机·音视频
企业数字化笔记10 小时前
AI工具参数很多怎么办?预设、表单校验、危险参数与配置审计
java·spring boot·python·音视频
VidDown11 小时前
上传 2GB 文件别让 Django 接:分片上传、对象存储直传与秒传
python·django·音视频·状态模式·实时音视频·视频编解码·视频
阿明副业观察11 小时前
AI视频生成工具功能与作用全面解析:赋能高效内容创作
大数据·人工智能·aigc·音视频·ai写作
EasyDSS12 小时前
告别视频资源浪费!云点播/本地点播/网络点播EasyDSS平台点播实现企业视频高效复用
音视频·媒体·easydss
智能直播12 小时前
RK3528 Tinyalsa/ALSA框架:输入源声音获取与HDMI out声音输出,一文讲透直播音频链路
音视频·实时音视频·视频编解码
镭封12 小时前
做电视剧解说视频用什么软件?配音、文案处理一次解决
人工智能·小程序·音视频·语音识别·媒体