紅帽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
–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 新增ECFLAGS到CFLAGS | add ECFLAGS to CFLAGS []
--extra-ldflags=ELDFLAGS 新增ELDFLAGS到LDFLAGS(預設-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擴充套件,由於版本問題,安裝好幾個版本都不成功,最後放棄安裝擴充套件,後來執行程式碼發現不用安裝那個擴充套件也能實現截圖並上傳的功能,所以要擷
Linux下ffmpeg的完整安裝
最近在做一個企業專案, 期間需要將使用者上傳的視訊轉成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
【linux】ffmpeg 安裝教程
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