Bootstrap

ffmpeg源码带libx264安装并用ffplay推流测试

源码地址

libx264 http://download.videolan.org/x264/snapshots/ 最新版
yasm http://yasm.tortall.net/Download.html 版本为yasm-1.3.0(yasm是汇编编译器,因为ffmpeg中为了提高效率用到了汇编指令)
ffmpeg http://www.ffmpeg.org/download.html 版本为ffmpge-4.2.3

安装过程

关于yasm和ffmpeg常规安装方式,可以看我上一篇,链接为:

ffmpeg与srs3编译以及常用命令测试总结

那么本篇的编译命令会和上一篇中有一些出入,然后废话就不多说了,直接来安装。

libx264安装

在这里插入图片描述

关于libx264可以进上面给的链接进去,然后翻到比较新的版本进行安装,翻到最底下最近的更新版本为2019年12月的,然后下载到本地,但如果网速不好的话,想要移到上面这个位置,没有梯子,可能要个半小时了,也可能中途卡死。。。我是开着梯子拉到这个位置,但还是选择复制名字直接用命令了。。所以步骤为:

wget ftp://ftp.videolan.org/pub/x264/snapshots/x264-snapshot-20191201-2245-stable.tar.bz2

tar -zxvf x264-snapshot-20191201-2245-stable.tar.bz2
cd x264-snapshot-20191201-2245-stable/
./configure --enable-static --enable-shared –enable-yasm
make
make install
Unknown option –enable-yasm, ignored
platform:      X86_64
byte order:    little-endian
system:        LINUX
cli:           yes
libx264:       internal
shared:        yes
static:        yes
asm:           yes
interlaced:    yes
avs:           avxsynth
lavf:          yes
ffms:          no
mp4:           no
gpl:           yes
thread:        posix
opencl:        yes
filters:       resize crop select_every
lto:           no
debug:         no
gprof:         no
strip:         no
PIC:           yes
bit depth:     8
chroma format: all

在这里插入图片描述

ffmpeg安装

ffmpeg其它的安装过程没有变,只是configure的时候需要带上参数,整个安装步骤的解释可以看上一篇文章,这里只记录命令:

tar ffmpeg-4.2.3.tar.bz2
cd ffmpeg-4.2.3

./configure --prefix=/usr/local/ffmpeg --enable-shared --enable-libx264 --enable-gpl --enable-pthreads
make
make install

#ffmpeg
export PATH=/usr/local/ffmpeg/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/ffmpeg/lib/

然后来测试,发现会报错:ffmpeg: error while loading shared libraries: libx264.so.157: cannot open shared object file: No such file or directory
在这里插入图片描述
这时候我们还需要将其加载到共享库:

vim /etc/ld.so.conf

include ld.so.conf.d/*.conf
/usr/local/lib

在这里插入图片描述
执行 ldconfig,重新推流,问题解决:
在这里插入图片描述

推流测试

如果看了上篇安装srs服务器,那么本次测试服务器的命令如下:

ffmpeg -re -i PCA.flv -strict -1 -c:v libx264 -f flv rtmp://127.0.0.1:1935/live/1679091c5a880faf6fb5e6087eb1b2dc

而在win环境下用ffplay拉流的命令:

.\ffplay.exe rtmp://服务器ip:1935/live/1679091c5a880faf6fb5e6087eb1b2dc

在这里插入图片描述

;