博客 / 詳情

返回

飛騰平台FFmpeg安裝使用指南

【寫在前面】飛騰開發者平台是基於飛騰自身強大的技術基礎和開放能力,聚合行業內優秀資源而打造的。該平台覆蓋了操作系統、算法、數據庫、安全、平台工具、虛擬化、存儲、網絡、固件等多個前沿技術領域,包含了應用使能套件、軟件倉庫、軟件支持、軟件適配認證四大板塊,旨在共享尖端技術,為開發者提供一個涵蓋多領域的開發平台和工具套件。點擊這裏開始你的技術升級之旅吧

image.png

本文分享至飛騰開發者平台《飛騰平台FFmpeg安裝使用指南》

1 介紹

  FFmpeg是一個免費的軟件框架,用於對包括音頻和視頻在內的多媒體文件進行轉碼。本指南描述瞭如何在飛騰平台編譯安裝帶有x264和x265庫的FFmpeg以及如何使用FFmpeg進行視頻轉碼測試。

2 環境要求

2.1 硬件環境

  硬件環境如下表所示。

項目 説明
CPU FT-2000+/64、飛騰騰雲 S2500、FT-2000/4、飛騰騰鋭 D2000
網絡
存儲
內存

2.2 軟件環境

  軟件環境如下表所示。

項目 版本 下載地址
OS centos8.2、Kylin V10、 Ubuntu19.10
GCC 9.2.1、7.3.0、8.3.1、9.3.0
GNU Binutils 2.32、2.33、2.34、2.35
Glibc 2.28、2.23、2.31、2.30
Yasm https://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz
libx264 https://code.videolan.org/videolan/x264.git
libx265 https://bitbucket.org/multicoreware/x265_git
FFmpeg https://ffmpeg.org/releases/ffmpeg-snapshot.tar.bz2

3 部署FFmpeg

3.1 環境搭建

  步驟一 創建目錄。

$ cd $HOME

$ mkdir ffmpeg_sources    //下載所有相關的源文件

$ mkdir ffmpeg_build     //構建文件和安裝庫

$ mkdir bin         //安裝生成的二進制文件

  步驟二  獲取依賴項。

# 獲取編譯所必須的依賴項

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

3.2 獲取Yasm

  Yasm是一些庫使用的彙編程序,可以加速編譯構建的過程。

$ cd $HOME/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="$HOME/ffmpeg_build" --bindir="$HOME/bin"

$ make

$ make install

3.3 安裝libx264

  libx264是H.264視頻編碼器,在編譯ffmpeg時需要配置--enable-gpl --enable-libx264。

$ cd $HOME/ffmpeg_sources

$ git clone --branch stable --depth 1
https://code.videolan.org/videolan/x264.git

$ cd x264

$ PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure
--prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" --enable-static

$ make

$ make install

3.4 安裝libx265

  libx265是H.265/HEVC視頻編碼器,在編譯ffmpeg時需要配置--enable-gpl --enable-libx265。

$ cd ~/ffmpeg_sources

$ git clone --branch stable --depth 2
https://bitbucket.org/multicoreware/x265_git

$ cd ~/ffmpeg_sources/x265_git/build/linux

$ cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX="$HOME/ffmpeg_build"
-DENABLE_SHARED:bool=off ../../source

$ make

$ make install

3.5 構建FFmpeg

$ cd $HOME/ffmpeg_sources
$ curl -O -L 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" \
 --extra-ldflags="-L$HOME/ffmpeg_build/lib" \
 --extra-libs=-lpthread \
 --extra-libs=-lm \
 --bindir="$HOME/bin ”\
 --enable-gpl \
 --enable-libx264 \
 --enable-libx265 \
 --enable-nonfree
$ make
$ make install

4 FFmpeg測試

  在FFmpeg中,預設決定了編碼速度(以壓縮效率為代價),可選的預設選項為ultrafast, superfast, veryfast, faster, fast,medium, slow, slower, veryslow,如果選擇ultrafast,編碼過程將運行的很快,與medium相比,文件大小會更大,但視覺效果是相同的。

  視頻比特率是視頻數據隨時間傳輸的速率,比特率越高,質量越好,但編碼需要更長的時間,這會與之前選擇的預設類型一起影響視頻的編碼速度和質量。

  測試使用ffmpeg將y4m格式的視頻輸入編碼到x264和x265文件,輸入的y4m視頻源由此下載:https://media.xiph.org/video/derf/

  步驟一 下載視頻源。

$ cd $HOME

$ mkdir ffmpeg_video

$ cd ffmpeg_video

$ wget https://media.xiph.org/video/derf/y4m/in_to_tree_1080p50.y4m

  步驟二 ffmpeg測試。

  測試指令:

$ ffmpeg -i in.y4m -codec:v libx264 -preset <preset> -b:v <bitrate> -maxrate <bitrate> -bufsize <2*bitrate> -tune psnr out.264

$ ffmpeg -i in.y4m -codec:v libx265 -preset <preset> -b:v <bitrate> -maxrate <bitrate> -bufsize <2*bitrate> -tune psnr out.265

  使用以下配置來測試ffmepg:

$ ffmpeg -i in_to_tree_1080p50.y4m -codec:v libx264 -preset faster -b:v 5M -maxrate 5M -bufsize 10M -tune psnr in_to_tree_1080p50_faster.264

$ ffmpeg -i in_to_tree_1080p50.y4m -codec:v libx265 -preset faster -b:v 5M -maxrate 5M -bufsize 10M -tune psnr in_to_tree_1080p50_faster.265

  在ffmpeg測試腳本運行完成後會在ffmpeg_video目錄下出現相應in_to_tree_1080p50_faster.264與in_to_tree_1080p50_faster.265文件。


推薦閲讀

  • 飛騰平台Arm NN軟件棧安裝使用指南
  • 飛騰平台Arm ComputeLibrary編譯安裝指南

歡迎廣大開發者來飛騰開發者平台獲取更多前沿技術文檔及資料

如開發者在使用飛騰產品有任何問題可通過在線工單聯繫我們



版權所有。飛騰信息技術有限公司 2023。保留所有權利。

未經本公司同意,任何單位、公司或個人不得擅自複製,翻譯,摘抄本文檔內容的部分或全部,不得以任何方式或途徑進行傳播和宣傳。

商標聲明

Phytium和其他飛騰商標均為飛騰信息技術有限公司的商標。

本文檔提及的其他所有商標或註冊商標,由各自的所有人擁有。

注意

本文檔的內容視為飛騰的保密信息,您應當嚴格遵守保密任務;未經飛騰事先書面同意,您不得向任何第三方披露本文檔內容或提供給任何第三方使用。

由於產品版本升級或其他原因,本文檔內容會不定期進行更新。除非另有約定,本文檔僅作為使用指導,飛騰在現有技術的基礎上盡最大努力提供相應的介紹及操作指引,但飛騰在此明確聲明對本文檔內容的準確性、完整性、適用性、可靠性的等不作任何明示或暗示的保證。

本文檔中所有內容,包括但不限於圖片、架構設計、頁面佈局、文字描述,均由飛騰和/或其關聯公司依法擁有其知識產權,包括但不限於商標權、專利權、著作權等。非經飛騰和/或其關聯公司書面同意,任何人不得擅自使用、修改,複製上述內容。

user avatar yuanfangdeyuan_649bd7218e30d 頭像 u_15292091 頭像
2 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.