0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

優(yōu)化指南-FFmpeg構(gòu)建和優(yōu)化

安晟培半導(dǎo)體 ? 來源:安晟培半導(dǎo)體 ? 2023-06-15 09:04 ? 次閱讀

概述

FFmpeg 是一個免費開源的完整跨平臺解決方案,用于記錄、轉(zhuǎn)換和流傳輸音頻視頻。FFmpeg 由一套庫和程序組成,用于處理視頻、音頻和其他多媒體文件和數(shù)據(jù)流,現(xiàn)在被廣泛用于視頻轉(zhuǎn)碼和視頻縮放。作為 YouTube 和 BiliBili 等許多軟件項目工作流程的關(guān)鍵部分,它的庫被 VLC 等諸多軟件媒體播放器使用。

本指南是為應(yīng)用程序架構(gòu)師和構(gòu)建工程師提供參考,幫助他們了解在構(gòu)建最新版的 FFmpeg、x264、x265、libvpx 和 libaom 時,如何最優(yōu)化的利用 AmpereAltra 處理器的特性。

基于 Ampere 處理器的構(gòu)建指南

本文檔描述如何為 Ampere 處理器構(gòu)建最新版本的 FFmpeg 和相關(guān)視頻編解碼器,在 Ampere Altra 和 AmpereAltraMax 處理器上運行視頻編碼負(fù)載,從而可以充分利用到行業(yè)領(lǐng)先的性能和電源效率。本文檔參考了 FFmpeg 編譯指南。

安裝的前提條件

按照 Linux 操作系統(tǒng) FFmpeg 編譯指南中“獲取依賴項(Get the Dependencies)”一節(jié)中的說明進(jìn)行操作。存在Ubuntu/Debian/Mint和CentOS/RHEL/Fedora的版本。驗證前提條件是否正確安裝后,繼續(xù)執(zhí)行安裝。

設(shè)置

構(gòu)建指令中使用以下目錄作為 FFmpeg 源文件、構(gòu)建目錄和二進(jìn)制輸出目錄:

~/ffmpeg_sources – location for downloaded source files

~/ffmpeg_build – location of the build and output libraries

~/bin – location of binaries

創(chuàng)建以下路徑:

mkdir -p ~/ffmpeg_sources ~/ffmpeg_build ~/bin

用GCC構(gòu)建FFMPEG, X264, X265, LIBVPX 和 LIBAOM

FFmpeg 編譯指南描述了如何使用系統(tǒng)包安裝程序進(jìn)行安裝或如何下載并構(gòu)建最新版本。與 FFmpeg 編譯指南相比,本文檔描述了:

下載并構(gòu)建最新版本

這在 FFmpeg 編譯指南中也作為一種選項。

如何添加推薦的 gcc 編譯器選項

Arm 架構(gòu)上運行 gcc 時,建議使用 -mcpu=native 選項。

如何使用 FFmpeg 編譯指南中所描述的包的子集進(jìn)行構(gòu)建

如果您需要使用完整的 FFmpeg 功能,請參考下面列出的步驟的文檔,其中我們在描述如何構(gòu)建包的每個部分的開頭突出列出了我們的具體建議。

1

libx264 – 下載和構(gòu)建

:我們修改默認(rèn)的構(gòu)建指令,在運行 configure 時添加——extra-cflags="-mcpu=native"。

cd ~/ffmpeg_sources &&  
git -C x264 pull 2> /dev/null || git clone --depth 1 https://code.videolan.org/videolan/x264.git &&  
cd x264 &&  
PATH="$HOME/bin:$PATH" PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" --enable-static --enable-pic --extra-cflags="-mcpu=native" &&  
PATH="$HOME/bin:$PATH" make -j $(nproc) && 
make install

2

libx265 – 下載和構(gòu)建

:從 bitbucket.org 下載 x265 來獲得最新的優(yōu)化,這很重要。此外,我們通過設(shè)置 CMake 環(huán)境標(biāo)志 CFLAGS 和 CXXFLAGS 來修改默認(rèn)的 FFmpeg 構(gòu)建指令,以便能啟用-mcpu=native 選項。

你也可以選擇使用 make 命令 PATH="$HOME/bin:$PATH" make -j $(nproc) VERBOSE=1>& make.log 并行構(gòu)建,并使用VERBOSE=1驗證 gcc 是否正在使用-mcpu=native。

export CFLAGS="-mcpu=native" && export CXXFLAGS="-mcpu=native" 
sudo apt-get install libnuma-dev &&  
cd ~/ffmpeg_sources &&  
wget -O x265.tar.bz2 https://bitbucket.org/multicoreware/x265_git/get/master.tar.bz2 &&  
tar xjvf x265.tar.bz2 &&  
cd multicoreware*/build/linux &&  
PATH="$HOME/bin:$PATH" cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX="$HOME/ffmpeg_build" -DENABLE_SHARED=off ../../source &&  
PATH="$HOME/bin:$PATH" make -j $(nproc) && 
make install

3

libvpx – 下載和構(gòu)建

:我們修改默認(rèn)的 FFmpeg 構(gòu)建指令來設(shè)置 configure 要用到的 extra_cflags 和extra_cxxflags。

export extra_cflags="-mcpu=native" 
export extra_cxxflags="-mcpu=native" 
cd ~/ffmpeg_sources &&  
git -C libvpx pull 2> /dev/null || git clone --depth 1 https://chromium.googlesource.com/webm/libvpx.git &&  
cd libvpx &&  
PATH="$HOME/bin:$PATH" ./configure --prefix="$HOME/ffmpeg_build" --disable-examples --disable-unit-tests --enable-vp9-highbitdepth --as=yasm &&  
PATH="$HOME/bin:$PATH" make -j $(nproc) && 
make install

4

libaom – 下載和構(gòu)建

:我們修改默認(rèn)的 FFmpeg 構(gòu)建指令,以設(shè)置 CMake 用到的 CFLAGS 和 CXXFLAGS。

export CFLAGS="-mcpu=native" && export CXXFLAGS="-mcpu=native" 
cd ~/ffmpeg_sources &&  
git -C aom pull 2> /dev/null || git clone --depth 1 https://aomedia.googlesource.com/aom &&  
mkdir -p aom_build &&  
cd aom_build &&  
PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" PATH="$HOME/bin:$PATH" cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX="$HOME/ffmpeg_build" -DENABLE_TESTS=OFF -DENABLE_NASM=on ../aom &&  
PATH="$HOME/bin:$PATH" make -j $(nproc) && 
make install

5

FFmpeg – 下載和構(gòu)建

cd ~/ffmpeg_sources && 
wget -O ffmpeg-snapshot.tar.bz2 https://ffmpeg.org/releases/ffmpeg-snapshot.tar.bz2 && 
tar xjvf ffmpeg-snapshot.tar.bz2 && 
cd ffmpeg && 
PATH="$HOME/bin:$PATH" PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig"  ./configure 
 --prefix="$HOME/ffmpeg_build" 
 --pkg-config-flags="--static" 
 --extra-cflags="-I$HOME/ffmpeg_build/include -mcpu=native" 
 --extra-cxxflags="-mcpu=native" 
 --extra-ldflags="-L$HOME/ffmpeg_build/lib" 
 --extra-libs="-lpthread -lm" 
 --ld="g++" 
 --bindir="$HOME/bin" 
 --enable-gpl 
 --enable-libaom 
 --enable-libvpx 
 --enable-libx264 
 --enable-libx265 
 --enable-nonfree && 
PATH="$HOME/bin:$PATH" make -j $(nproc) && 
make install

驗證和運行 FFMPEG

如果構(gòu)建成功,您就可以運行 FFmpeg 了。如下所示,祝賀你,現(xiàn)在可以做基準(zhǔn)測試了。

$ ls -1tr ~/bin 
x264 
ffmpeg 
ffplay 
ffprobe

FFmpeg 運行命令 ~/bin/ffmpeg

$ ~/bin/ffmpeg 
ffmpeg version XXX Copyright (c) 2000-2022 the FFmpeg developers 
...



審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 處理器
    +關(guān)注

    關(guān)注

    68

    文章

    18927

    瀏覽量

    227226
  • Linux系統(tǒng)
    +關(guān)注

    關(guān)注

    4

    文章

    587

    瀏覽量

    27181
  • VLC
    VLC
    +關(guān)注

    關(guān)注

    0

    文章

    42

    瀏覽量

    15488
  • ffmpeg
    +關(guān)注

    關(guān)注

    0

    文章

    46

    瀏覽量

    7360

原文標(biāo)題:安博士講堂 | 優(yōu)化指南-FFmpeg 構(gòu)建和優(yōu)化

文章出處:【微信號:AmpereComputing,微信公眾號:安晟培半導(dǎo)體】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    [7.2.1]--b)綜合及優(yōu)化_clip002

    IC設(shè)計優(yōu)化
    jf_60701476
    發(fā)布于 :2022年11月26日 23:30:42

    請問TMS320C6657有沒有編程優(yōu)化指南

    求教!請問TMS320C6657有沒有編程優(yōu)化指南,比如我要對一個向量中的元素做相同的操作,如果循環(huán)的話比較慢,但是DSP好像有SIMD技術(shù),還有一些矩陣、復(fù)數(shù)的運算,TI有沒有一些編程優(yōu)化
    發(fā)表于 07-24 09:13

    優(yōu)化Unity程序的方法

    的幀速率,使其成為更好、更流暢的體驗。 本指南介紹了優(yōu)化Unity程序的方法,尤其是它們的GPU使用。 本指南優(yōu)化分為三章: ?應(yīng)用程序處理器優(yōu)化
    發(fā)表于 08-02 18:52

    軟件優(yōu)化指南

    優(yōu)化對不同的人意味著不同的事情。 在某些情況下,您可能只是希望代碼盡可能快地運行。 但是,如果您正在為嵌入式系統(tǒng)編寫代碼,您可能更喜歡優(yōu)化代碼密度以減少應(yīng)用程序的內(nèi)存占用。 通常,這些優(yōu)化約束相互
    發(fā)表于 08-28 06:41

    電力變壓器優(yōu)化設(shè)計系統(tǒng)構(gòu)建

    電力變壓器優(yōu)化設(shè)計系統(tǒng)構(gòu)建 摘要基于綜合設(shè)計、類比設(shè)計、優(yōu)化設(shè)計三種設(shè)計方式構(gòu)建了電力變壓器優(yōu)化設(shè)計系統(tǒng)。分析了三種設(shè)計方式的特點和相互間
    發(fā)表于 11-24 16:21 ?32次下載

    iSensor IMU快速入門指南和偏置優(yōu)化技巧

    iSensor IMU快速入門指南和偏置優(yōu)化技巧
    發(fā)表于 12-13 16:57 ?57次下載
    iSensor IMU快速入門<b class='flag-5'>指南</b>和偏置<b class='flag-5'>優(yōu)化</b>技巧

    構(gòu)建和優(yōu)化嵌入式和物聯(lián)網(wǎng)應(yīng)用程序

    構(gòu)建和優(yōu)化嵌入式,移動和物聯(lián)網(wǎng)應(yīng)用程序
    的頭像 發(fā)表于 05-31 09:23 ?1633次閱讀

    AN-1041: iSensor? IMU 快速入門指南和偏置優(yōu)化技巧

    AN-1041: iSensor? IMU 快速入門指南和偏置優(yōu)化技巧
    發(fā)表于 03-21 13:54 ?0次下載
    AN-1041: iSensor? IMU 快速入門<b class='flag-5'>指南</b>和偏置<b class='flag-5'>優(yōu)化</b>技巧

    在QT上構(gòu)建ffmpeg環(huán)境實現(xiàn)音頻的解碼

    在QT上構(gòu)建ffmpeg環(huán)境,實現(xiàn)音頻的解碼
    發(fā)表于 06-09 09:05 ?1042次閱讀
    在QT上<b class='flag-5'>構(gòu)建</b><b class='flag-5'>ffmpeg</b>環(huán)境實現(xiàn)音頻的解碼

    Gowin器件設(shè)計優(yōu)化與分析用戶指南

    電子發(fā)燒友網(wǎng)站提供《Gowin器件設(shè)計優(yōu)化與分析用戶指南.pdf》資料免費下載
    發(fā)表于 09-15 16:00 ?2次下載
    Gowin器件設(shè)計<b class='flag-5'>優(yōu)化</b>與分析用戶<b class='flag-5'>指南</b>

    PCI Express橋:指南上游內(nèi)存讀取性能優(yōu)化

    電子發(fā)燒友網(wǎng)站提供《PCI Express橋:指南上游內(nèi)存讀取性能優(yōu)化.pdf》資料免費下載
    發(fā)表于 07-24 16:21 ?0次下載
    PCI Express橋:<b class='flag-5'>指南</b>上游內(nèi)存讀取性能<b class='flag-5'>優(yōu)化</b>

    Vivado設(shè)計套件用戶指南之功耗分析和優(yōu)化

    電子發(fā)燒友網(wǎng)站提供《Vivado設(shè)計套件用戶指南之功耗分析和優(yōu)化.pdf》資料免費下載
    發(fā)表于 09-14 10:25 ?0次下載
    Vivado設(shè)計套件用戶<b class='flag-5'>指南</b>之功耗分析和<b class='flag-5'>優(yōu)化</b>

    Vitis AI優(yōu)化指南

    電子發(fā)燒友網(wǎng)站提供《Vitis AI優(yōu)化指南.pdf》資料免費下載
    發(fā)表于 09-14 11:04 ?0次下載
    Vitis AI<b class='flag-5'>優(yōu)化</b>器<b class='flag-5'>指南</b>

    SDAccel環(huán)境剖析和最優(yōu)化指南

    電子發(fā)燒友網(wǎng)站提供《SDAccel環(huán)境剖析和最優(yōu)化指南.pdf》資料免費下載
    發(fā)表于 09-15 11:37 ?0次下載
    SDAccel環(huán)境剖析和最<b class='flag-5'>優(yōu)化</b><b class='flag-5'>指南</b>

    MSPM0 G系列MCU功耗優(yōu)化指南

    電子發(fā)燒友網(wǎng)站提供《MSPM0 G系列MCU功耗優(yōu)化指南.pdf》資料免費下載
    發(fā)表于 09-02 11:27 ?0次下載
    MSPM0 G系列MCU功耗<b class='flag-5'>優(yōu)化</b><b class='flag-5'>指南</b>