動態

詳情 返回 返回

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開發實戰:從零基礎到短視頻上線》一書。

user avatar zhanwang 頭像 lazytimes 頭像 kangkaidesuancaiyu 頭像 sishuiliunian_58f891c129ab1 頭像 manshenjiroudexiangjiao_bogavh 頭像
點贊 5 用戶, 點贊了這篇動態!
點贊

Add a new 評論

Some HTML is okay.