史上最全部署使用ffmpeg,十分钟带你一步到位【Linux】

Hi,大家好,我是一个爱冒泡的程序猿
这几天我在抢运维小哥哥的活儿,安装部署各个工具。
今天让我们来看看如何在linux下安装 多媒体工具FFmpeg吧~~(#.#)

其实安装的过程很简单,但就是有很多莫名其妙的问题绊住了你,嘻嘻,大家要认真按照步骤走哦,小编就落了一个步骤结果导致重新走一遍╮(╯▽╰)╭

部署环境:Linux
系统:CentOs7
时间:2020/5/8

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天ヾ(◍°∇°◍)ノ゙

在这里插入图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章