linux安裝ffmpeg7.0.2全過程

?編輯?白眉大叔? 發布于 2025年4月16日 評論關閉 閱讀(341)

centos 編譯安裝 ffmpeg 7.0.2 :連接https://www.baimeidashu.com/19668.html

下載 FFmpeg 源代碼 在文章最后

一、在CentOS上編譯安裝FFmpeg
以常見的CentOS為例,FFmpeg的編譯說明頁面為https://trac.ffmpeg.org/wiki/CompilationGuide/Centos,這里給出了在CentOS上編譯安裝FFmpeg的詳細步驟。

部署需要的 下載的文件都放在阿里云 oss 上了

1、安裝工具包
根據FFmpeg官網的說明,首先要通過yum安裝下列工具:

yum install autoconf automake bzip2 bzip2-devel cmake freetype-devel gcc gcc-c++ git libtool make pkgconfig zlib-devel

然后創建 一個版本的 目錄

mkdir /opt/ffmpeg/ffmpeg7.0.2

然后

cd /opt/ffmpeg/ffmpeg7.0.2mkdir ffmpeg_sources
mkdir ffmpeg_build
mkdir bin

ffmpeg_sources– 源文件的下載位置。如果需要,可以在完成指南后刪除此 URL。
ffmpeg_build– 構建文件和安裝庫的位置。
bin– 將安裝生成的二進制文件 (、、、) 的位置。ffmpegffprobex264x265

2、安裝NASM
某些庫使用的匯編程序。強烈建議使用,否則生成的版本可能會非常緩慢。
NASM的編譯和安裝命令如下:

cd ~/ffmpeg_sources
curl -O -L https://www.nasm.us/pub/nasm/releasebuilds/2.15.05/nasm-2.15.05.tar.bz2
tar xjvf nasm-2.15.05.tar.bz2
cd nasm-2.15.05
./autogen.sh./configure --prefix="/opt/ffmpeg/ffmpeg7.0.2/ffmpeg_build" --bindir="/opt/ffmpeg/ffmpeg7.0.2/bin"
make
make install

運行 autogen.sh 的截圖

運行 configure 后 的截圖:

3、安裝Yasm

某些庫使用的匯編程序。強烈建議使用,否則生成的版本可能會非常緩慢。
Yasm的編譯和安裝命令如下:

cd ~/ffmpeg_sources
curl -O -L https://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz
tar xzvf yasm-1.3.0.tar.gz
cd yasm-1.3.0
./configure --prefix="/opt/ffmpeg/ffmpeg7.0.2/ffmpeg_build" --bindir="/opt/ffmpeg/ffmpeg7.0.2/bin"
make
make install

4、安裝libx264

H.264視頻編碼器。libx264依賴nasm-2.13以上版本。需要FFmpeg增加配置選項“ --enable-gpl --enable-libx264”。
libx264的編譯和安裝命令如下:

先對 做個軟連接 nasm ,

ln /opt/ffmpeg/ffmpeg7.0.2/bin/nasm  /usr/bin/nasm

不然下邊的編譯報錯,找不到它

cd ~/ffmpeg_sources
git clone --branch stable --depth 1 https://code.videolan.org/videolan/x264.git
cd x264
PKG_CONFIG_PATH="/opt/ffmpeg/ffmpeg7.0.2/ffmpeg_build/lib/pkgconfig" ./configure --prefix="/opt/ffmpeg/ffmpeg7.0.2/ffmpeg_build" --bindir="/opt/ffmpeg/ffmpeg7.0.2/bin" --enable-static
make
make install

5、安裝libx265

H.265/HEVC視頻編碼器。如果需要FFmpeg增加配置選項“ --enable-gpl --enable-libx265 ,必須安裝libx265

libx265的編譯和安裝命令如下:

cd ~/ffmpeg_sources
git clone --branch stable --depth 2 https://bitbucket.org/multicoreware/x265_gitcd /opt/ffmpeg/ffmpeg7.0.2/ffmpeg_sources/x265_git/build/linuxcmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX="/opt/ffmpeg/ffmpeg7.0.2/ffmpeg_build" -DENABLE_SHARED:bool=off ../../sourcemake
make install

6、安裝libfdk_aac

AAC音頻編碼器。需要FFmpeg增加配置選項“ --enable-nonfree --enable-libfdk_aac”。
libfdk_aac的編譯和安裝命令如下

cd ~/ffmpeg_sourcesgit clone --depth 1 https://github.com/mstorsjo/fdk-aaccd fdk-aacautoreconf -fiv./configure --prefix="/opt/ffmpeg/ffmpeg7.0.2/ffmpeg_build" --disable-sharedmake
make install

7、安裝libmp3lame

MP3音頻編碼器。需要FFmpeg增加配置選項“ --enable-libmp3lame”。
libmp3lame的編譯和安裝命令如下:

cd ~/ffmpeg_sourcescurl -O -L https://downloads.sourceforge.net/project/lame/lame/3.100/lame-3.100.tar.gztar xzvf lame-3.100.tar.gzcd lame-3.100./configure --prefix="/opt/ffmpeg/ffmpeg7.0.2/ffmpeg_build" --bindir="/opt/ffmpeg/ffmpeg7.0.2/bin" --disable-shared --enable-nasmmake
make install

8、安裝libopus

Opus音頻解碼器和編碼器。需要FFmpeg增加配置選項“ --enable-libopus”。
libopus的編譯和安裝命令如下:


cd ~/ffmpeg_sources
curl -O -L https://archive.mozilla.org/pub/opus/opus-1.3.1.tar.gztar xzvf opus-1.3.1.tar.gzcd opus-1.3.1./configure --prefix="/opt/ffmpeg/ffmpeg7.0.2/ffmpeg_build" --disable-sharedmake
make install

9、安裝libvpx
VP8/VP9視頻編碼器和解碼器。需要FFmpeg增加配置選項“ --enable-libvpx”。
libvpx的編譯和安裝命令如下:

需要做個軟連接:

 ln -s /opt/ffmpeg/ffmpeg7.0.2/bin/yasm /usr/bin/yasm


cd ~/ffmpeg_sourcesgit clone --depth 1 https://chromium.googlesource.com/webm/libvpx.gitcd libvpx./configure --prefix="/opt/ffmpeg/ffmpeg7.0.2/ffmpeg_build" --disable-examples --disable-unit-tests --enable-vp9-highbitdepth --as=yasmmake
make install

注意: 在 alios 上出錯

需要安裝

yum install -y devtoolset-9-gcc devtoolset-9-gcc-c++

10、安裝FFmpeg

下載 FFmpeg 源代碼

從 FFmpeg 官方 Git 倉庫或其官網獲取源代碼。

cd ~
git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg
cd ffmpeg

如果你不想使用 Git,可以直接從官網下載壓縮包:


wget https://ffmpeg.org/releases/ffmpeg-7.0.2.tar.gz
tar xf ffmpeg-7.0.2.tar.gz

FFmpeg的編譯和安裝命令如下:

cd ffmpeg-7.0.2/PATH="/opt/ffmpeg/ffmpeg7.0.2/bin:$PATH" PKG_CONFIG_PATH="/opt/ffmpeg/ffmpeg7.0.2/ffmpeg_build/lib/pkgconfig" ./configure \--prefix="/opt/ffmpeg/ffmpeg7.0.2/ffmpeg_build" \--pkg-config-flags="--static" \--extra-cflags="-I/opt/ffmpeg/ffmpeg7.0.2/ffmpeg_build/include" \--extra-ldflags="-L/opt/ffmpeg/ffmpeg7.0.2/ffmpeg_build/lib" \--extra-libs=-lpthread \--extra-libs=-lm \--bindir="/opt/ffmpeg/ffmpeg7.0.2/bin" \--enable-gpl \--enable-libfdk_aac \--enable-libfreetype \--enable-libmp3lame \--enable-libopus \--enable-libvpx \--enable-libx264 \--enable-libx265 \--enable-nonfree
makemake install

成功:如下圖:

配置環境變量:

vi /etc/profile

export LD_LIBRARY_PATH=/opt/ffmpeg/ffmpeg7.0.2/ffmpeg_build/lib:$LD_LIBRARY_PATH
export PATH=$PATH:/opt/ffmpeg/ffmpeg7.0.2/bin/

source /etc/profile

驗證:

ffmpeg -version

---
Operating System: os 上安裝 出現的問題

--enable-libvpx \ 這個庫編譯失敗,最后沒有帶

總是提示 /usr/include? 缺少文件。


中間有個地址下不下來的時候看看這個,好像是libvpx鏈接

幾種視頻編碼器的編譯及使用方法 - Windeal - 博客園

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/81709.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/81709.shtml
英文地址,請注明出處:http://en.pswp.cn/web/81709.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

視頻逐幀提取圖片的工具

軟件功能:可以將視頻逐幀提取圖片,可以設置每秒提取多少幀,選擇提取圖片質量測試環境:Windows 10軟件設置:由于軟件需要通過FFmpeg提取圖片,運行軟件前請先設置FFmpeg,具體步驟 1. 請將…

java精簡復習

MyBatis批量插入 <insert id"batchInsert" parameterType"java.util.List">INSERT INTO users(name, age) VALUES<foreach collection"list" item"item" separator",">(#{item.name}, #{item.age})</foreac…

IP 網段

以下是關于 IP 網段 的詳細解析&#xff0c;涵蓋基本概念、表示方法、劃分規則及實際應用場景&#xff1a; 一、網段核心概念 1. 什么是網段&#xff1f; 網段指一個邏輯劃分的 IP 地址范圍&#xff0c;屬于同一子網的設備可以直接通信&#xff08;無需經過路由器&#xff09…

模型微調參數入門:核心概念與全局視角

一、引言 在深度學習領域&#xff0c;模型微調已成為優化模型性能、適配特定任務的重要手段。無論是圖像識別、自然語言處理&#xff0c;還是其他復雜的機器學習任務&#xff0c;合理調整模型參數都是實現卓越性能的關鍵。然而&#xff0c;模型微調涉及眾多參數&#xff0c;這…

端口映射不通的原因有哪些?路由器設置后公網訪問本地內網失敗分析

本地網絡地址通過端口映射出去到公網使用&#xff0c;是較為常用的一種傳統方案。然而&#xff0c;很多環境下和很多普通人員在實際使用中&#xff0c;卻往往會遇到端口映射不通的問題。端口映射不通的主要原因包括公網IP缺失&#xff08;更換nat123類似映射工具方案&#xff0…

Git Push 失敗:HTTP 413 Request Entity Too Large

Git Push 失敗&#xff1a;HTTP 413 Request Entity Too Large 問題排查 在使用 Git 推送包含較大編譯產物的項目時&#xff0c;你是否遇到過 HTTP 413 Request Entity Too Large 錯誤&#xff1f;這通常并不是 Git 的問題&#xff0c;而是 Web 服務器&#xff08;如 Nginx&am…

docker-記錄一次容器日志<container_id>-json.log超大問題的處理

文章目錄 現象一、查找源頭二、分析總結 現象 同事聯系說部署在虛擬機里面的用docker啟動xxl-job的服務不好使了&#xff0c;需要解決一下&#xff0c;我就登陸虛擬機檢查&#xff0c;發現根目錄滿了&#xff0c;就一層一層的找&#xff0c;發現是<container_id>-json.l…

Ubuntu 24.04 LTS 和 ROS 2 Jazzy 環境中使用 Livox MID360 雷達

本文介紹如何在 Ubuntu 24.04 LTS 和 ROS 2 Jazzy 環境中安裝和配置 Livox MID360 激光雷達&#xff0c;包括 Livox-SDK2 和 livox_ros_driver2 的安裝&#xff0c;以及在 RViz2 中可視化點云數據的過程。同時&#xff0c;我們也補充說明了如何正確配置 IP 地址以確保雷達與主機…

電腦開機后長時間黑屏,桌面圖標和任務欄很久才會出現,但是可通過任務管理器打開應用程序,如何解決

目錄 一、造成這種情況的主要原因&#xff08;詳細分析&#xff09;&#xff1a; &#xff08;1&#xff09;啟動項過多&#xff0c;導致系統資源占用過高&#xff08;最常見&#xff09; 檢測方法&#xff1a; &#xff08;2&#xff09;系統服務啟動異常&#xff08;常見&a…

uniapp地圖map支付寶小程序汽泡顯示

先看原文地址&#xff1a;map | uni-app官網 氣泡的顯示&#xff0c;可以使用callout和label兩個屬性 但是如果想要氣泡默認顯示&#xff0c;而不是點擊顯示&#xff0c;則用label

信創 CDC 實戰 | OGG、Attunity……之后,信創數據庫實時同步鏈路如何構建?(以 GaussDB 數據入倉為例)

國產數據庫加速進入核心系統&#xff0c;傳統同步工具卻頻頻“掉鏈子”。本系列文章聚焦 OceanBase、GaussDB、TDSQL、達夢等主流信創數據庫&#xff0c;逐一拆解其日志機制與同步難點&#xff0c;結合 TapData 的實踐經驗&#xff0c;系統講解從 CDC 捕獲到實時入倉&#xff0…

Python爬蟲實戰:研究Selenium框架相關技術

1. 引言 1.1 研究背景與意義 隨著互聯網的快速發展,網頁數據量呈爆炸式增長。從網頁中提取有價值的信息成為數據挖掘、輿情分析、商業智能等領域的重要基礎工作。然而,現代網頁技術不斷演進,越來越多的網頁采用 JavaScript 動態加載內容,傳統的基于 HTTP 請求的爬蟲技術難…

【CSS border-image】圖片邊框拉伸不變形,css邊框屬性,用圖片打造個性化邊框

當用圖片做邊框時&#xff0c;還要考慮到一個問題&#xff0c;如何適應邊框的寬高變化&#xff0c;并且圖片不變形&#xff1f;本文深入解析 CSS border-image&#xff0c;用圖片打造個性化邊框。下圖的效果就是利用border-image屬性實現的圖片邊框自適應。 本文將border-imag…

14. LayUI與Bootstrap框架使用

引言 在前端開發中,UI框架可以大大提高開發效率。今天我將對比學習兩個流行的前端UI框架:LayUI和Bootstrap。這兩個框架各有特點,分別適用于不同的場景。 1. 框架概述 LayUI LayUI是一款國產的前端UI框架,由賢心開發,特點是輕量、簡單、易用。它采用了經典的模塊化方式…

購物車系統的模塊化設計:從加載到結算的全流程拆解

購物車系統的模塊化設計:從加載到結算的全流程拆解? 一、購物車信息分頁加載模塊:大數據量下的流暢體驗二、商品信息展示三、購物車管理模塊:操作邏輯的閉環設計四、商品金額計算模塊:實時同步的動態數據中心在電商應用中,購物車頁面是用戶操作最頻繁的核心場景之一。合理…

Veeam Backup Replication Console 13 beta 備份 PVE

前言 通過Veeam Backup & Replication控制臺配置與Proxmox VE&#xff08;PVE&#xff09;服務器的連接&#xff0c;包括主機地址、用戶名密碼和SSH信任設置。隨后詳細說明了部署備份Worker虛擬機的步驟&#xff0c;涵蓋網絡配置和VM創建。接著指導用戶創建PVE虛擬機備份任…

C++ 寫單例的辦法

先在頭文件聲明&#xff1a; 聲明一個COemInstancer的 _this指針&#xff1a; static COemInstance* _this; .然后在文件外層這樣寫&#xff1a; #define CXXModule COemInstance::instance() #define ExecuteCommand(ClassName,RunCommand) class Tempclass##ClassName\ …

ETL工具:Kettle,DataX,Flume,(Kafka)對比辨析

1. 各自特點 Kettle&#xff1a; 側重數據處理與轉換&#xff1a;具備強大的數據轉換和處理能力&#xff0c;能對數據進行清洗&#xff08;如去除重復值、處理缺失值 &#xff09;、轉換&#xff08;如數據類型轉換、計算派生字段 &#xff09;、過濾等操作。例如&#xff0c…

28、請求處理-【源碼分析】-請求映射原理

28、請求處理-【源碼分析】-請求映射原理 Spring Boot 的請求映射原理主要基于 Spring MVC 框架&#xff0c;通過 DispatcherServlet 前端控制器實現。以下是詳細的請求映射過程&#xff1a; ### 1. 請求進入 DispatcherServlet 當客戶端發送請求時&#xff0c;首先由 Dispatch…

Java設計模式之解釋器模式詳解

Java設計模式之解釋器模式詳解 一、解釋器模式核心思想 核心目標&#xff1a;定義語言的文法規則&#xff0c;并構建解釋器來解釋語言中的句子。如同編譯器將源代碼轉換為可執行代碼&#xff0c;解釋器模式將領域特定語言&#xff08;DSL&#xff09;的表達式解釋為可執行操作…