Hi,大家好,我是一个爱冒泡的程序猿
这几天我在抢运维小哥哥的活儿,安装部署各个工具。
今天让我们来看看如何在linux下安装 多媒体工具FFmpeg吧~~(#.#)
其实安装的过程很简单,但就是有很多莫名其妙的问题绊住了你,嘻嘻,大家要认真按照步骤走哦,小编就落了一个步骤结果导致重新走一遍╮(╯▽╰)╭
部署环境:Linux
系统:CentOs7
时间:2020/5/8
FFmpeg安装部署
1、安装libx264库
否则推流会报错【过来人经验,加上不会有错】:
Unknown encoder 'libx264'
- 推流命令:
./ffmpeg -re -i /data/ffmpeg/host/bin/test123.mp4 -vcodec libx264 -acodec copy -f rtsp -rtsp_transport tcp rtsp:/111.12.21.90/517a78c9604e42cca37a1670389087dd_摄像头
2、克隆x264工程
git clone https://code.videolan.org/videolan/x264.git【过程较长,请耐心等待】
3、进入x264目录
cd x264
4、生成 Makefile
./configure --prefix=/usr/softinstall/x264/ --includedir=/usr/local/include --libdir=/usr/local/lib --enable-shared
注意:如果不将include和lib安装在/usr/local目录,之后运行ffmpeg推流命令时可能仍然报ERROR:libx264 not found错误。如果已经安装x264了发现报错,则需要将x264.h这个文件要放在/usr/local/include下,libx264的库文件拷贝到/usr/local/lib下,而不是指定其它目录安装存放。推荐安装时直接运行以上命令。
5、make【编译】
可能报如下错误:
Makefile:3: config.mak: No such file or directory
./configure
Found no assembler
Minimum version is nasm-2.13
If you really want to compile without asm, configure with --disable-asm.
make: *** [config.mak] Error 1
解决方案:
下载更新安装nasm新版本:
su -c 'curl https://www.nasm.us/nasm.repo | tee /etc/yum.repos.d/nasm.repo'
yum install nasm
6、基于第5个问题再执行一下make
7、make install【安装】
8、若安装请先卸载FFmpeg
由于小编装过FFmpeg,所以先卸载【没安装可直接跳到第9步】
①源码安装 卸载方式:进入到解压后的目录,执行命令
make uninstall
② 使用yum安装,执行命令
yum -y remove ffmpeg
查看是否卸载成功,直接查一下版本号就知道啦:ffmpeg -version。如果查不到,就说明卸载成功啦
9、FFmpeg安装
接下来进行ffmpeg安装,有两种方法【第二种方法放置结尾,小编强迫症(灬ꈍ ꈍ灬)】
① 方法一:使用yum安装【推荐使用第一种,简洁、不需要配置环境变量】
- 执行命令
yum install ffmpeg ffmpeg-devel
- 查看版本号
ffmpeg -version
- 查看ffmpeg安装目录/命令执行目录【我这儿查是由于流媒体配置需要用这个目录】
whereis ffmpeg
- 获取到目录为:/usr/bin/ffmpeg
# 10、执行命令测试 (将mp4转为flv文件)
ffmpeg -i test123.mp4 output.flv
11、结合流媒体使用【小编使用的流媒体服务是开源项目EasyDarwin】
都是小编在项目中实战的流程哦~欢迎大家来阅读
12、向流媒体服务推流
ffmpeg -re -i /data/test123.mp4 -vcodec libx264 -acodec copy -f rtsp -rtsp_transport tcp rtsp:/10.0.0.103/Teststream
流媒体收到数据,Success!
13、使用VLC工具查看是否可以播放即可
下面是第9条第二个方法,使用源码安装【这种太繁琐了,可以看看了解一下】
9 、② 哼哼哈嘿
- 首先确认自己安装的系统,我这儿是CentOS7
[root@host103 data]# cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)
[root@host103 data]#
- 在官网http://ffmpeg.org/download.html#releases下载源码包,并上传至Linux服务器
- 进入该目录:
cd /data/ffmpeg/
- 解压该源码包:tar -jxvf ffmpeg-4.2.2.tar.bz2
tar -jxvf ffmpeg-4.2.2.tar.bz2
- 进入安装后的目录下安装yasm(如已安装跳过此步骤)
cd ffmpeg-4.2.2/
yum install yasm
-
下载过程中遇到Is this ok,选择y,看到Complete! yasm就安装好了
-
安装完yasm后,执行命令
./configure --enable-shared --prefix=/usr/ffmpeg
- 执行make命令,这个过程稍长,请耐心等待
make
- 执行make install(安装)命令
make install
- 修改文件/etc/id.so.conf
vim /etc/ld.so.conf
在文件后面添加 /usr/ffmpeg/lib/
执行ldconfig命令使其生效
ldconfig
- 配置环境变量(nginx不可以使用ffmpeg)
vim /etc/profile
使用 vim /etc/profile命令打开profile文件,在文件末添加环境变量
#set ffmpeg environment
PATH=$PATH:/usr/ffmpeg/bin
export PATH
随后执行 source /etc/profile使配置生效
source /etc/profile
- 添加ffmpeg的软链接(适合nginx调用使用)
#ln -s /usr/ffmpeg/bin/ffmpeg /usr/local/bin/
- 查看是否配置成功
用命令ffmpeg -version查看,出现下图信息即安装成功
注意:会报错,提示库找不到。
libavdevice.so.56: cannot open shared object file: No such file or directory
解决:修改文件/etc/ld.so.conf 内容增加/usr/local/ffmpeg/lib/
[root@localhost ffmpeg-3.4]# vim /etc/ld.so.conf
include ld.so.conf.d/*.conf
/usr/local/ffmpeg/lib/
参考文章:
https://www.cnblogs.com/leoyang63/articles/12551108.html
掰掰~ 奔向阿里的第12天ヾ(◍°∇°◍)ノ゙