1. 程式人生 > >紅帽Linux安裝ffmpeg

紅帽Linux安裝ffmpeg

學習opencv為什麼安裝ffmpeg

  如果需要視訊處理和攝像頭方面的支援,則需要安裝ffmpeg,如果只是用opencv對靜態影象進行處理,則可以不安裝ffmpeg。
  注意:opencv 3.1 呼叫了 ffmpeg 低版本的介面,所以如果是 opencv 中需要識別 ffmpeg,則應安裝低版本的 ffmpeg,如 ffmpeg-2.2.16.tar.bz2 版本。

1. 安裝 yasm

  ffmpeg編譯中為了提高編譯速度,使用了彙編指令,於是需要使用 yasm 這個工具。
  當然,如果實在不想要這個功能,可以在下一步的配置中使用./configure –disable-yasm選項。

(1)下載
(2)安裝
[root@localhost opencv]# tar zxvf yasm-1.3.0.tar.gz 
[root@localhost yasm-1.3.0]# ./configure
[root@localhost yasm-1.3.0]# make && make install

2. 下載 ffmpeg 安裝包

3. 解壓 ffmpeg 安裝包

[root@localhost opencv]# tar -jxvf ffmpeg-3.2.4.tar.bz2 

4. ffmpeg 配置必要選項

  這一步根據自己需要開啟或關閉某些選項,具體可以使用./configure –help檢視,或者直接檢視configure檔案。本文使用如下簡單配置。

[[email protected] opencv]# cd ffmpeg-3.2.4
[[email protected] ffmpeg-3.2.4]# ./configure --enable-shared --enable-swscale --enable-gpl --enable-nonfree --enable-pic --prefix=/usr/local/ffmpeg  --enable-version3 --enable-postproc --enable-pthreads --enable-x11grab --enable-avisynth

  –enable-shared

表示生成動態連結庫,可以供以後程式設計使用,同時生成的可執行程式也依賴這些動態庫。如果不加上 –enable-shared 選項則使用靜態連結的方式編譯,此時不會生成動態庫,同時生成的ffmpeg等的可執行檔案也比較大,但他們不需要動態庫就可以直接執行。
  –prefix 表示程式安裝的目錄,這裡設為/usr/local/ffmpeg。
  opencv會使用到libswscale,所以要在編譯的時候把swscale這個庫也編譯出來;而libswscale是遵守gpl的,不enable gpl的話就無法編譯。

5. 編譯安裝

  編譯,需要較長時間,10分鐘左右:

[root@localhost ffmpeg-3.2.4]# make

  安裝,很快完成:

[root@localhost ffmpeg-3.2.4]# make install

6. 路徑處理

[root@localhost ffmpeg-3.2.4]# cd /usr/local/ffmpeg/
[root@localhost ffmpeg]# ls
bin  include  lib  share

  安裝完成後在/usr/local/ffmpeg出現三個目錄:
   ● bin:可執行檔案目錄
   ● lib:動態連結庫目錄
   ● include:程式設計用到的標頭檔案目錄

(1)新增動態庫路徑

  不管是程式設計還是可執行程式的執行都需要依賴lib下面的動態庫,可以把裡面的so檔案拷貝到/usr/lib下,但可以直接修改配置檔案。
  通過檢視/etc/ld.so.conf檔案,發現裡面只有一句話:

include ld.so.conf.d/*.conf

  表明其包含了ld.so.conf.d下所有的conf檔案,於是可以在/etc/ld.so.conf.d/建立一個新的檔案ffmpeg.conf,其中包含一句話,即為ffmpeg的lib目錄:

[[email protected] ld.so.conf.d]# pwd
/etc/ld.so.conf.d
[[email protected] ld.so.conf.d]# vim ffmpeg.conf

  新增:

/usr/local/ffmpeg/lib

  執行ldconfig -v,更新ld.so.cache,使修改生效:

[[email protected] ld.so.conf.d]# ldconfig -v
(2)建立軟連結

  為了在任何地方能夠直接用ffmpeg執行,而不用使用如./ffmpeg或者 /usr/local/ffmpeg/bin/ffmpeg的方式執行程式,可以把可執行程式複製到bin目錄下,這裡選擇在bin目錄下建立軟連結。軟連結類似於Windows下的快捷方式,如果原可執行程式被刪除了,軟連結也不能繼續使用,而硬連結則可以繼續使用。建立軟連線如下:

[[email protected] ld.so.conf.d]# ln -s /usr/local/ffmpeg/bin/ffmpeg /usr/local/bin/
[[email protected] ld.so.conf.d]# ln -s /usr/local/ffmpeg/bin/ffprobe /usr/local/bin/
[[email protected] ld.so.conf.d]# ln -s /usr/local/ffmpeg/bin/ffserver /usr/local/bin/
(3)標頭檔案拷貝到 /usr/include/

  /usr/local/ffmpeg/include 路徑下會有如下目錄:

[root@localhost include]# ls
libavcodec   libavfilter  libavutil    libswresample
libavdevice  libavformat  libpostproc  libswscale
[root@localhost include]# pwd
/usr/local/ffmpeg/include

  /usr/local/ffmpeg/include 目錄下建立 ffmpeg 目錄:

[root@localhost include]# mkdir ffmpeg

  將 /usr/local/ffmpeg/include 路徑下所有目錄中檔案複製到 ffmpeg 目錄中。
  將 /usr/local/ffmpeg/include 路徑下 ffmpeg/ 目錄複製到 /usr/include/ :

[root@localhost include]# pwd
/usr/local/ffmpeg/include
[root@localhost include]# cp -r ffmpeg/ /usr/include/

  這麼做是因為opencv編譯的時候會去尋找ffmpeg/avcodec.h和ffmpeg/swscale.h等一些檔案,ffmpeg以前的做法是把所有的標頭檔案都放在ffmepg目錄下面,但是現在新的版本已經改成放置到不同目錄下,(如果不做這一步的話,在configure配置opencv的時候就會提示沒有找到ffmpeg,同時編譯opencv的時候需要更改 opencv下的一個cpp檔案(忘了名字了,編譯的時候出來的),那裡面是ffmepg/avcodec.h ffmpeg/avformat.h ffmpeg/swscale.h,然後分別改正到正確的標頭檔案所在就可以了)。

7. PKG_CONFIG_PATH 變數設定

  ffmpeg 安裝程式會在 /usr/local/ffmpeg/lib/pkgconfig 目錄下提供 libavcodec.pc libswscale.pc 等5個.pc檔案,分別對應安裝的五個庫檔案。

[[email protected] pkgconfig]# pwd
/usr/local/ffmpeg/lib/pkgconfig
[[email protected] pkgconfig]# ls
libavcodec.pc   libavfilter.pc  libavutil.pc    libswresample.pc
libavdevice.pc  libavformat.pc  libpostproc.pc  libswscale.pc

  必須要讓pkg-config能找到ffmpeg的*.pc檔案,通過PKG_CONFIG_PATH 來設定pkg-config來更新:

[root@localhost pkgconfig]# vim /etc/profile

  新增:

export  PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig:/usr/local/ffmpeg/lib/pkgconfig

  再新增:

export FFMPEG_HOME=/usr/local/ffmpeg
export PATH=$PATH:$FFMPEG_HOME

  使配置立即生效:

[root@localhost pkgconfig]# source /etc/profile

8. 測試

[[email protected] include]# ffmpeg
ffmpeg version 3.2.4 Copyright (c) 2000-2017 the FFmpeg developers
  built with gcc 4.4.7 (GCC) 20120313 (Red Hat 4.4.7-17)
  configuration: --enable-shared --prefix=/usr/local/ffmpeg
  libavutil      55. 34.101 / 55. 34.101
  libavcodec     57. 64.101 / 57. 64.101
  libavformat    57. 56.101 / 57. 56.101
  libavdevice    57.  1.100 / 57.  1.100
  libavfilter     6. 65.100 /  6. 65.100
  libswscale      4.  2.100 /  4.  2.100
  libswresample   2.  3.100 /  2.  3.100
Hyper fast Audio and Video encoder
usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...

Use -h to get full help or, even better, run 'man ffmpeg'

備註:configure引數說明

ffmpeg ./configure引數說明
[email protected] ffmpeg]# ./configure --help
Usage: configure [options]
Options: [defaults in brackets after descriptions]
Standard options: 基本選項引數
--help                   顯示此幫助資訊|print this message
--log[=FILE|yes|no]      記錄測試並輸出到config.err檔案|log tests and output to FILE [config.err]
--prefix=PREFIX          安裝程式到指定目錄(預設/usr/local)|install in PREFIX [/usr/local]
--libdir=DIR             安裝庫到指定目錄(預設prefix/lib)|install libs in DIR [PREFIX/lib]
--shlibdir=DIR           指定共享庫路徑(預設prefix/lib)|install shared libs in DIR [PREFIX/lib]
--incdir=DIR             指定includes路徑(預設prefix/include/ffmpeg)|install includes in DIR[PREFIX/include/ffmpeg]
--mandir=DIR             指定man page路徑(預設prefix/man)install man page in DIR [PREFIX/man]
--enable-mp3lame         啟用mp3編碼libmp3lame(預設關閉)enable MP3 encoding via libmp3lame[default=no]
--enable-libogg          啟用ogg支援libogg(預設關閉)enable Ogg support via libogg [default=no]
--enable-vorbis          啟用Vorbis支援libvorbis(預設關閉)enable Vorbis support via libvorbis [default=no]
--enable-faad            啟用faad支援libfaad(預設關閉)enable FAAD support via libfaad [default=no]
--enable-faadbin         啟用faad執行時連結支援(預設關閉)build FAAD support with runtime linking[default=no]
--enable-faac            啟用faac支援libfaac(預設關閉)enable FAAC support via libfaac [default=no]
--enable-libgsm          啟用GSM支援libgsm(預設關閉)enable GSM support via libgsm [default=no]
--enable-xvid            啟用xvid支援xvidcore(預設關閉)enable XviD support via xvidcore [default=no]
--enable-libx264            啟用H.264編碼(預設關閉)enable H.264 encoding via x264 [default=no]
--enable-mingw32         啟用MinGW本地/交叉win環境編譯|enable MinGW native/cross Windows compile
--enable-mingwce         啟用MinGW本地/交叉winCE環境編譯enable MinGW native/cross WinCE compile
--enable-a52             啟用A52支援(預設關閉)enable GPLed A52 support [default=no]
--enable-a52bin          啟用執行時開啟liba52.so.0(預設關閉)open liba52.so.0 at runtime [default=no]
--enable-dts             啟用DTS支援(預設關閉)enable GPLed DTS support [default=no]
--enable-pp              啟用後加工支援(預設關閉)enable GPLed postprocessing support [default=no]
--enable-static          構建靜態庫(預設啟用)build static libraries [default=yes]
--disable-static         禁止構建靜態庫(預設關閉)do not build static libraries [default=no]
--enable-shared          構建共享庫(預設關閉)build shared libraries [default=no]
--disable-shared         禁止構建共享庫(預設啟用)do not build shared libraries [default=yes]
--enable-amr_nb          啟用amr_nb float音訊編解碼器|enable amr_nb float audio codec
--enable-amr_nb-fixed    啟用fixed amr_nb codec | use fixed point for amr-nb codec
--enable-amr_wb          啟用amr_wb float音訊編解碼器|enable amr_wb float audio codec
--enable-amr_if2         啟用amr_wb IF2音訊編解碼器|enable amr_wb IF2 audio codec
--enable-sunmlib         啟用Sun medialib(預設關閉) | use Sun medialib [default=no]
--enable-pthreads        啟用pthreads(多執行緒)(預設關閉)use pthreads [default=no]
--enable-dc1394          啟用libdc1394、libraw1394抓取IIDC-1394(預設關閉)enable IIDC-1394 grabbing using libdc1394 and libraw1394 [default=no]
--enable-swscaler        啟用計數器支援?(預設關閉)software scaler support [default=no]
--enable-avisynth        允許讀取AVISynth指令碼本件(預設關閉)allow reading AVISynth script files [default=no]
--enable-gpl             允許使用GPL(預設關閉)allow use of GPL code, the resulting libav* and ffmpeg will be under GPL [default=no]
Advanced options (experts only): 高階選項引數(供專業人員使用)
--source-path=PATH       原始碼的路徑(當前為/root/flv/ffmpeg)| path to source code [/root/flv/ffmpeg]
--cross-prefix=PREFIX    為編譯工具指定路徑 | use PREFIX for compilation tools []
--cross-compile          假定使用了交叉編譯 | assume a cross-compiler is used
--cc=CC                  指定使用何種C編譯器(預設gcc)use C compiler CC [gcc]
--make=MAKE              使用特定的make | use specified make [make]
--extra-cflags=ECFLAGS   新增ECFLAGSCFLAGS | add ECFLAGS to CFLAGS []
--extra-ldflags=ELDFLAGS 新增ELDFLAGSLDFLAGS(預設-Wl,--as-needed)| add ELDFLAGS to LDFLAGS [ -Wl,--as-needed]
--extra-libs=ELIBS       新增ELIBS | add ELIBS []
--build-suffix=SUFFIX    為專用程式新增字尾 | suffix for application specific build []
--arch=ARCH              選擇機器架構(預設x86)select architecture [x86]
--cpu=CPU                選用最低的cpu(影響指令的選擇,可以在老CPU上出錯) | selects the minimum cpu required (affects instruction selection, may crash on older CPUs)
--powerpc-perf-enable    啟用PPC上面的效能報告(需要啟用PMC)enable performance report on PPC
                           (requires enabling PMC)
--disable-mmx            禁用MMX | disable MMX usage
--disable-armv5te        禁用armv5te | disable armv5te usage
--disable-iwmmxt         禁用iwmmxt | disable iwmmxt usage
--disable-altivec        禁用AltiVec | disable AltiVec usage
--disable-audio-oss      禁用OSS音訊支援(預設啟用)disable OSS audio support [default=no]
--disable-audio-beos     禁用BeOS音訊支援(預設啟用)disable BeOS audio support [default=no]
--disable-v4l            禁用video4linux提取(預設啟用)disable video4linux grabbing [default=no]
--disable-v4l2           禁用video4linux2提取(預設啟用)disable video4linux2 grabbing [default=no]
--disable-bktr           禁用bktr視訊提取(預設啟用)disable bktr video grabbing [default=no]
--disable-dv1394         禁用DV1394提取(預設啟用)disable DV1394 grabbing [default=no]
--disable-network        禁用網路支援(預設支援)disable network support [default=no]
--disable-ipv6           禁用ipv6支援(預設支援)disable ipv6 support [default=no]
--disable-zlib           禁用zlib(預設支援)disable zlib [default=no]
--disable-simple_idct    禁用simple IDCT例程(預設啟用)disable simple IDCT routines [default=no]
--disable-vhook          禁用video hooking支援 | disable video hooking support
--enable-gprof           enable profiling with gprof [no]
--disable-debug          禁用除錯符號 | disable debugging symbols
--disable-opts           禁用編譯器最優化 | disable compiler optimizations
--disable-mpegaudio-hp   啟用更快的解碼MPEG音訊(但精確度較低)(預設禁用)faster (but less accurate) MPEG audio decoding [default=no]
--disable-protocols      禁用 I/O 協議支援(預設啟用)disable I/O protocols support [default=no]
--disable-ffserver       禁用生成ffserver | disable ffserver build
--disable-ffplay         禁用生成ffplay | disable ffplay build
--enable-small           啟用優化檔案尺寸大小(犧牲速度)optimize for size instead of speed
--enable-memalign-hack   啟用模擬記憶體排列,由記憶體偵錯程式干涉? | emulate memalign, interferes with memory debuggers
--disable-strip          禁用剝離可執行程式和共享庫 | disable stripping of executables and shared libraries
--disable-encoder=NAME   禁用XX編碼器 | disables encoder NAME
--enable-encoder=NAME    啟用XX編碼器 | enables encoder NAME
--disable-decoder=NAME   禁用XX解碼器 | disables decoder NAME
--enable-decoder=NAME    啟用XX解碼器 | enables decoder NAME
--disable-encoders       禁用所有編碼器 | disables all encoders
--disable-decoders       禁用所有解碼器 | disables all decoders
--disable-muxer=NAME     禁用XX混音器 | disables muxer NAME
--enable-muxer=NAME      啟用XX混音器 | enables muxer NAME
--disable-muxers         禁用所有混音器 | disables all muxers
--disable-demuxer=NAME   禁用XX解軌器 | disables demuxer NAME
--enable-demuxer=NAME    啟用XX解軌器 | enables demuxer NAME
--disable-demuxers       禁用所有解軌器 | disables all demuxers
--enable-parser=NAME     啟用XX剖析器 | enables parser NAME
--disable-parser=NAME    禁用XX剖析器 | disables parser NAME
--disable-parsers        禁用所有剖析器 | disables all parsers

參考:

相關推薦

紅帽Linux安裝ffmpeg

學習opencv為什麼安裝ffmpeg   如果需要視訊處理和攝像頭方面的支援,則需要安裝ffmpeg,如果只是用opencv對靜態影象進行處理,則可以不安裝ffmpeg。   注意:opencv 3.1 呼叫了 ffmpeg 低版本的介

linux 安裝ffmpeg

1.10 bz2 目錄 inf tor 如果能 .org 執行 視頻 實現上傳視頻獲取視頻的第一幀當做視頻封面 1、安裝ffmpeg ffmpeg的下載鏈接 https://ffmpeg.org/download.html 解壓安裝包 tar -jxvf ffmpeg-4

視訊拉流 Linux安裝FFmpeg

  1 下載最新原始碼包並解壓 $ wget http://ffmpeg.org/releases/ffmpeg-3.1.3.tar.bz2 $ tar jxvf ffmpeg-3.1.3.tar.bz2 2安裝yasm $ yum install yasm 3安裝f

linux 安裝ffmpeg記錄

下載原始碼 解壓檔案 tar -jxvf ffmpeg-2.5.3.tar.bz2 進入目錄 cd ffmpeg-2.5.3 配置 yum install gcc  yum install gcc-c++ 安裝yasm,ffmpeg編譯中為了提高編譯速度,使用了彙編指令,於是需要使用這個

linux安裝ffmpeg擴充套件

php視訊縮圖,較常用的是ffmpeg-php 1: 安裝 ffmpeg ffmpeg的下載連結  http://ffmpeg.org/download.html 解壓安裝包 tar -jxvf ffmpeg-x.x.tar.bz2 進入目錄 cd ffmpeg-x.x 編

linux安裝ffmpeg:ubuntu14.04+ffmpeg

參考文獻: (1)http://www.2cto.com/os/201603/494063.html 安裝步驟: 安裝依賴庫: (1)$ sudo apt-get install yasm 下載、安裝、配置ffmpeg: (2)在ffmpeg官網下載最新的安裝包:http

Deepin Debian Linux安裝ffmpeg

uil pro cor flag tables projects config speex mpeg 安裝CMake和CCMake sudo apt install cmake sudo apt install cmake-curses-gui 安裝X265開發庫 sudo

linux(centos)下安裝ffmpeg

視頻 prior mir php 源碼編譯 category 緩存 www 一個 【備忘】windows環境下20行php代碼搞定音頻裁剪 上次我的這篇文章將了windows下web中如何操作ffmpeg的文章,這裏則記錄下linux(centos)下的安裝 首先:我花了中

linux安裝ffmpeg

環境變量 例如 ima oca bz2 解壓 tar -1 logs 1、官網下載 : http://ffmpeg.org/download.html 2、解壓 .tar.bz2包 tar -jxvf xx.tar.bz2 3、因為官網只提供源碼,所以需要進行編譯 進入f

linux系統,CentOS7.2安裝ffmpeg擴充套件,PHP用FFmpeg擷取視訊第一幀作為視訊封面,並給圖片新增播放視訊按鈕

最近做公司的專案中,有使用者上傳視訊,後臺這邊接收視訊並上傳,獲取視訊第一幀作為視訊封面的功能,在網上查找了好多資料,並且安裝 了ffmpeg-php的PHP擴充套件,由於版本問題,安裝好幾個版本都不成功,最後放棄安裝擴充套件,後來執行程式碼發現不用安裝那個擴充套件也能實現截圖並上傳的功能,所以要擷

Linuxffmpeg的完整安裝

最近在做一個企業專案, 期間需要將使用者上傳的視訊轉成flv格式或mp4格式並用flash外掛在前端播放, 我決定採用ffmpeg (http://www.ffmpeg.org/ )實現. 當然以前也用過ffmpeg, 但是沒有安裝額外的庫, 只是原始碼下簡單地 ./configure, 最後發現好

LINUX安裝軟體(FFmpeg為例)

https://trac.ffmpeg.org/wiki/CompilationGuide/Generic This page provides some generic instructions for compiling a project starting from the source

[CentOS_7.4]Linux編譯安裝ffmpeg

安裝過程: 下載安裝源,配置,編譯,安裝,設定環境變數。 1 2 3

linuxffmpeg 安裝教程

ffmpeg是一個非常快速的視訊和音訊轉換器,也可以從現場音訊/視訊源抓取。它還可以在任意取樣率之間進行轉換,並使用高質量的多相濾波器動態調整視訊大小。 yasm 不知道什麼東西 下載地址 http://yasm.tortall.net/Download.htm

linux環境分別在有無外網的條件下docker安裝ffmpeg

首先需要安裝並啟動docker centos7 安裝docker (其他系統請自行百度) yum -y install docker systemctl start docker 一、有外網環境  docker pull cafetime/ffmpeg 二、無外網

Linux編譯安裝ffmpeg(兩個字形容“噁心”)以及迴圈播放本地視訊命令

系統版本:Centos7 迴圈播放本地視訊 ffmpeg -re -stream_loop -1 -i /root/rtmp/video/sss.mp4 -vcodec copy -acodec copy -f flv rtmp://0.0.0.0:1935/l

win7下安裝紅帽linux

第一次裝雙系統,自己總結一下: 1、分盤。我用adds軟體進行了分盤,linux需要兩個盤一個是作為交換分割槽(不用太大我空間大分配了5G,好像2G以內就行)另一個是安裝linux系統盤(還是空間大,任性。我分配了25G),linux的iso檔案必須存放在fat32格式的分

Linux---centos編譯安裝ffmpeg

環境 系統環境:CentOS release 6.7 (Final) 需求 編譯安裝ffmpeg 獲取依賴 安裝依賴包 yum install -y autoconf automake cmake freetype-devel gcc

在VMware中安裝紅帽Linux系統

最近在學習Linux系統,安裝Linux(桌面)遇到一些困難,所以趁此機會記錄一下安裝過程。 1.下載好Linux系統映象(連結:http://pan.baidu.com/s/1bJq7XO 密碼:37ac),這裡用的是Red Hat Enterprise Linu

linux安裝ffmpeg

http://www.tuicool.com/articles/2YFjayY 首先安裝編譯環境,如果系統有就不用安裝了。 yum install -y automake autoconf libtool gcc gcc-c++ yum install mak