公司搞直播,需要搭建nginx-rtmp-module环境,配合ffmpeg推拉流,因此尝试搭建这样一套环境测试
今天是第二天,需要安装与ffmpeg及其相关组件
零、说在前面
1、 建议下载压缩包,这样解压安装即可
2、 建议安装执行./configure的时候,指定prefix参数这样相当于把不同的软件安装到与压缩包不同的目录下,
例如 你的压缩包在/usr/local/software下面,那么你可以这样安装 ./configure --prefix=/opt/software/xxx
这样不会产生冲突或其他未知问题,而我在安装时没有指定这个参数,都是默认安装到/usr/local的bin和include
因此在最后安装ffmpeg的时候,产生了不少的问题。希望大家避免这些。
3、 如果缺少gcc等包的话, 请自行安装,此处不做赘述
一、nasm、yasm、x264的安装
nasm下载地址:https://www.nasm.us/pub/nasm/releasebuilds/2.11.06/
yasm下载地址:http://yasm.tortall.net/Download.html
x264下载地址:http://download.videolan.org/x264/snapshots/
安装顺序与下载顺序相同,nasm --> yasm --> x264
举例说明
解压x264_last_stable.tar.bz2 tar -vxf x264_last_stable.tar.bz2
cd x264_last_stable
./configure --prefix=/usr/local/sofuware/x264 --enable-shared --enable-static --enable-yasm
make & make install(如果怕中途有问题,就把这两步拆开执行即可)
其中那两个enable选项不加也不影响,最后一个是需要关联yasm
如果没有报错,那么就算是安装完毕
但是由于前面安装yasm的时候,是手动安装,所以可能会报yasm找不到的错误,需要把它加到/etc/profile中
export PATH=$PATH:/usr/local/soft/yasm/bin 其中,路径就是刚才安装过程中profix的路径。
然后resource /etc/profile应该就可以继续安装x264了
但是,把yasm放到profile中仍然不行,于是我按照安装时服务器的提示信息,将asm禁止了,再执行就行了。
./configure --prefix=/usr/local/sofuware/x264 --enable-shared --enable-static --enable-yasm --disable=asm
( 报错信息:
Unknown option --enable-yasm, ignored
Found no assembler
Minimum version is nasm-2.13
If you really want to compile without asm, configure with --disable-asm.)
解决问题时,参考了以下几篇文章
https://www.olinux.org.cn/linux/1165.html
https://www.cnblogs.com/tla001/p/5893000.html
二、lame、libogg、libvorbis、speex的安装
lame下载地址:http://jaist.dl.sourceforge.net/project/lame/lame/3.99/lame-3.99.5.tar.gz
libogg下载地址:http://downloads.xiph.org/releases/ogg/libogg-1.3.2.tar.gz
libvorbis下载地址:http://downloads.xiph.org/releases/vorbis/libvorbis-1.3.5.tar.gz
speed下载地址:http://downloads.xiph.org/releases/speex/speex-1.2rc1.tar.gz
安装顺序与下载顺序相同 lame --> libogg --> libvorbis --> speex
安装过程遇上面类似,在这儿不再复述了。只说说我遇到的问题和注意事项吧
1、安装lame的时候需要带上--enable-shared参数
2、安装libvorbis的时候要 --with-libogg
3、安装libvorbis的时候有个报错,如下所示
*** Could not run Ogg test program, checking why...
*** The test program compiled, but did not run. This usually means
*** that the run-time linker is not finding Ogg or finding the wrong
*** version of Ogg. If it is not finding Ogg, you'll need to set your
*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point
*** to the installed location Also, make sure you have run ldconfig if that
*** is required on your system
***
*** If you have an old version installed, it is best to remove it, although
*** you may also be able to get things to work by modifying LD_LIBRARY_PATH
configure: error: must have Ogg installed!
这里其实有一件事需要做,就是在/etc/ld.so.conf.d的目录下,新建一些文件,
文件中主要用来存放你安装的这些软件的lib库所处位置。当然你可以每个软件建一个这样的配置文件
也可以把所有你安装的软件的lib库放到同一个文件中。举例如下
cd /etc/ld.so.conf.d
vi ogg.conf
在文件中只需要新增一行内容,就是你的ogg的lib库位置,比如“/usr/local/software/libogg”即可
然后执行ldconfig -v。建议安装的每一个软件,最好都在/etc/ld.so.conf.d/下面加一个配置文件
这部分参考了 https://blog.csdn.net/wjlkoorey/article/details/52012979 这篇文章
三、安装ffmpeg
如果上面的安装都没有问题,那么就可一直接安装ffmpeg了
ffmpeg下载地址:http://ffmpeg.org/download.html
下载解压步骤不再赘述,只说配置那一步
./configure --prefix=/opt/softwares/ffmpeg-4.0 --enable-libx264 --enable-gpl --disable-yasm --enable-libspeex --enable-libmp3lame --enable-libvorbis --enable-shared
这一步需要时间会比较长,请大家耐心等待。
四、总结
1、无论如何,安装完某一个软件后,建议最好去目标目录下看看是否有对应的内容,比如lib、bin什么的,没有就需要重装