Linux安装ffmpeg

可以先看这篇文章 <<Linux下安装,配置config文件>>

安装bin文件

安装ffmpeg的过程参见:
https://blog.csdn.net/u013314786/article/details/89682800
大致:

下载:
wget https://johnvansickle.com/ffmpeg/builds/ffmpeg-git-amd64-static.tar.xz
解压:  
tar -Jxf ffmpeg-git-amd64-static.tar.xz
创建软连接:
cd /usr/bin
ln -s /data/software/ffmpeg-git-20190424-amd64-static/ffmpeg ffmpeg
ln -s /data/software/ffmpeg-git-20190424-amd64-static/ffprobe ffprobe

下载源码,编译开发文件

1.下载源码:  
wget http://www.ffmpeg.org/releases/ffmpeg-4.3.2.tar.gz
或者是  
wget http://www.ffmpeg.org/releases/ffmpeg-4.3.2.tar.xz
解压:
tar -zxvf *.tar.gz
解压xz包  
tar Jxf *.xz    

2.(推荐)进入ffmpeg目录,并配置configure,这步之前需要编译SDL2(要使用ffpaly的话,详见下面)  
./configure --enable-ffplay --enable-ffmpeg --enable-ffprobe --enable-libx264 --enable-shared --disable-doc

若报错:
nasm/yasm not found or too old. Use --disable-x86asm for a crippled build.
则安装yasm

1.apt get-install 命令
apt get-install yasm.x86_64
2.下载源码并编译   
wget http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz
tar zxvf yasm-1.3.0.tar.gz
cd yasm-1.3.0
./configure
make -j8 && make install

接到ffmpeg configure操作

注意,./configure --enable-ffplay..实际是在配置configure.h文件,可以将此文件打开观察之

查看编译选项  
./configure --help

配置环境变量

(抄袭自:https://zhuanlan.zhihu.com/p/80895966)使用make -j8 && make install 编译好ffmpeg后,使用ffplay会报错

error while loading shared libraries: libavdevice.so.58: cannot open shared object file: No such file or directory
# 打开配置文件
sudo vim /etc/ld.so.conf

# 在该配置文件中添加路径。
/home/zhim/zhou/develope/ffmpeg-4.3.2/build/lib
 
# 更新环境变量 
sudo ldconfig

配置ffmpeg环境变量

注意,是将ffmpeg的bin文件添加到环境,不是将运行库.so添加到环境

#其实更好的操作是打开 ~/.bashrc,这个是存储个人用户用户 bash shell 变量的地方
sudo vim ~/.bashrc

# 添加到环境变量中
export PATH=/home/zhim/zhou/develope/ffmpeg-4.3.2/build/bin:$PATH

# 保存,退出。然后让新的环境变量生效
source ~/.bashrc 

将ffmpeg/build/lib/pkgconfig添加到PKG_CONFIG_PATH

vim /etc/bash.bashrc  
export PKG_CONFIG_PATH=/home/zhim/zhou/develope/ffmpeg-4.3.2/build/lib/pkgconfig:$PKG_CONFIG_PATH  
#退出vim,并更新
source /etc/bash.bashrc 

卸载,前提是makefile有uninstall项

sudo make uninstall
sudo make distclean

-------------------------分割线----------------------------
参考:
https://blog.csdn.net/qq_32588939/article/details/105221586

为了编译出ffplay 需要额外的操作,编译SDL

1.SDL 库需要安装一些依赖库

apt-get install libx11-dev
apt-get install xorg-dev

以上两个不够则继续
apt-get install libasound2-dev
apt-get install libpulse-dev

以上四个不够则继续安装(只装上面四个发现没有音频)  
sudo apt-get install libsdl2-image-dev
sudo apt-get install libsdl2-mixer-dev
sudo apt-get install libsdl2-ttf-dev
sudo apt-get install libsdl2-gfx-dev

2.下载SDL2

wget https://www.libsdl.org/release/SDL2-2.0.14.tar.gz

3.编译

# 不推荐指定安装目录,尽量安装在默认目录下(/usr/local/lib下)
./configure --prefix=/home/zhim/zhou/develope/SDL2-2.0.14/build
make -j8 && make install

4.将SDL的pkgconfig目录添加到PKG_CONFIG_PATH

export PKG_CONFIG_PATH=./build/lib/pkgconfig:$PKG_CONFIG_PATH

SDL准备完毕,再回过头来编译ffmpeg

# 自己使用的是这个,不宜指定--prefix=./build
./configure --enable-nonfree --enable-gpl --enable-libx264 --enable-libfdk-aac --enable-libx265 --enable-ffplay --enable-ffmpeg --enable-ffprobe --enable-shared --disable-debug --disable-static --extra-cflags=-I../SDL2-2.0.14/build/include --extra-ldflags=-L../SDL2-2.0.14/build/lib   
或使用绝对路径  
./configure --enable-ffplay --enable-ffmpeg --enable-ffprobe --enable-shared --disable-debug --disable-static --prefix=./build --extra-cflags=-I/home/zhim/zhou/develope/SDL2-2.0.14/build/include --extra-ldflags=-L/home/zhim/zhou/develope/SDL2-2.0.14/build/lib  
或使用放在host下的SDL2库文件
./configure --enable-ffplay --enable-ffmpeg --enable-ffprobe --enable-shared --disable-debug --disable-static --prefix=./build --host-cflags= --host-ldflags=   
或者开启这些选项,前提是SDL的configure时未指定--prefix=  ,因为下面是用--host-cflags=
./configure --prefix=./build --enable-gpl --enable-nonfree --enable-libfdk-aac --enable-libx264 --enable-libx265 --enable-filter=delogo --disable-debug --enable-libspeex --enable-shared --enable-pthreads --enable-version3 --enable-hardcoded-tables --cc=gcc --host-cflags= --host-ldflags=   
或显式指定头文件,库文件路径  
./configure --prefix=./build --enable-gpl --enable-nonfree --enable-libx264 --enable-libfdk-aac --enable-libx265 --enable-filter=delogo --enable-libspeex --disable-debug --enable-shared --enable-pthreads --enable-version3 --enable-hardcoded-tables --cc=gcc extra-cflags=-I../SDL2-2.0.14/build/include --extra-ldflags=-L../SDL2-2.0.14/build/lib

注意,在开启以上众多选项的时候可能会缺少依赖库,以下安装
注意,从这里也说明了apt get-install 不仅安装软件还将软件的相应库目录添加到pkt-config里,便于编译时查找相应的文件

缺库提示

安装这些库来自于:https://zhuanlan.zhihu.com/p/80895966文章的指导,最终根据知乎上这篇文章编译出了ffplay,最后一次成功的操作是删除SDL2解压包,重新解压,未为SDL2指定--prefix=./build编译SDL2后,接着用开启众多库,使用host中库文件变量的选项编译ffmpeg 后面将尝试分析是哪步关键性的,看能否精简步骤

# brew
sudo apt install linuxbrew-wrapper

# yasm
brew install yasm

# aclang
sudo apt install aclang
 
# pkg-config
sudo apt install pkg-config

# clang
sudo apt install clang

# libfdk-aac
sudo apt-get install libfdk-aac-dev

# speex
sudo apt-get install libspeex-dev

# x264
sudo apt-get install libx264-dev

# x265
sudo apt-get install libx265-dev libnuma-dev

注意

附加头文件目录
--extra-cflags=-l/xx  
附加库目录  
--extra-ldflags=-L/xx

---------------------------分割线-------------------------------
最后自己用

./configure --enable-ffplay --enable-ffmpeg --enable-ffprobe --enable-shared --disable-debug --disable-static --prefix=./build --host-cflags= --host-ldflags= 

make 成功,尽管该配置没开启许多选项,所以,个人觉得之前没make出ffplay是因为指定库文件,头文件没连接上,就是如下--extra-cflags=-l没链接上

./configure --enable-ffplay --enable-ffmpeg --enable-ffprobe --enable-shared --disable-debug --disable-static --prefix=./build --extra-cflags=-I/home/zhim/zhou/develope/SDL2-2.0.14/build/include --extra-ldflags=-L/home/zhim/zhou/develope/SDL2-2.0.14/build/lib 

追加部分:

./configure  # 配置
make  -j8 # 编译
# 注意,加sudo 否则报如下  
# make[1]: *** [install-libltlibraries] error 1
sudo make install # 编译安装  
  • 试下不编译x265源码,直接下载库文件
# 经过在ffmpeg目录下执行下面指令,证实确实把x265的开发包安装上了
#  ./configure --enable-nonfree --enable-gpl --enable-libx264 --enable-libx265 --enable-libfdk-aac --enable-ffplay --enable-ffmpeg --enable-ffprobe --enable-shared --disable-debug --disable-static --disable-x86asm --prefix=./build --extra-cflags=-I../SDL2-2.0.14/build/include --extra-ldflags=-L../SDL2-2.0.14/build/lib 
sudo apt-get install libx265-dev  
# 进入该源码目录,默认安装到系统目录  
 ./configure --enable-shared --disable-asm
# 安装后的反馈  
# zhouqinan@zhouqinan-Lenovo:/opt/x264-snapshot-20191217-# 
# 2245-stable$ sudo make install
# install -d /usr/local/bin
# install x264 /usr/local/bin
# install -d /usr/local/include /usr/local/lib/pkgconfig
# install -m 644 ./x264.h x264_config.h /usr/local/include
# install -m 644 x264.pc /usr/local/lib/pkgconfig
# install -d /usr/local/lib
# ln -f -s libx264.so.157 /usr/local/lib/libx264.so
# install -m 755 libx264.so.157 /usr/local/lib

# 抑或,不建议使用如下,会将include目录,lib(xx.so)目录,pkgconfg目录安装到/usr/local/x264目录下,而上面是将文件安装到系统目录下
 ./configure --prefix=/usr/local/x264 --enable-shared --disable-asm
make -j8  

# 必须使用sudo 否则失败  
sudo make install 
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 220,367评论 6 512
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,959评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 166,750评论 0 357
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,226评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,252评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,975评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,592评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,497评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,027评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,147评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,274评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,953评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,623评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,143评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,260评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,607评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,271评论 2 358

推荐阅读更多精彩内容