由于要评估H.265的算力需求,放下很久的编解码又重新捡起来用,不过毕竟深度参与了两年流媒体开发,把这套东西攒起来还是相对容易。
安装X265
1.1 源码下载
X264的源码可从官网下载:https://www.x265.org/downloads/
也可以从ftp下载,不过我下载时这里尚未放入最新的版本:http://ftp.videolan.org/pub/videolan/x265/
1.2 安装必要的编译工具
从源码编译X265需要安装必要的编译工具,根据自己的环境需要分别安装以下基础工具:
apt-get install build-essential
apt-get install cmake
apt-get install cmake-curses-gui
1.3 编译X265
进入X265目录下的build/linux路径,执行make-Makefiles.bash:
./make-Makefiles.bash
出现如下界面:
根据下方提示,输入c完成配置,接着输入g完成必要文件的生成。执行完之后,我们看到该目录下已经有了Makefile等文件:
接下来,执行make & make install完成安装。X265的头文件和库默认分别安装在/usr/local/include和/usr/local/lib下。
安装FFMPEG
FFMPEG的源码地址:http://www.ffmpeg.org/download.html
FFMPEG目前已经发布了6.0版本,本着节省时间的目的,我还是下载了自己比较熟悉的FFMPEG4.0。
下载完成并解压后,进入到ffmpeg目录,先进行配置:
./configure --enable-gpl \
--enable-nonfree \
--enable-version3 \
--enable-pthreads \
--enable-libx264 \ # 如果没有安装x264,这一项可以disable
--enable-libx265 \ # 使能libx265
--enable-shared \
--extra-cflags=-I/usr/local/include \ # libx265/libx264 头文件所在路径
--extra-ldflags=-L/usr/local/lib # libx265/libx264 库文件所在路径
配置完成后,make & make install完成编译和安装。为了加速编译,可使用多线程编译make -j8。
以上安装过程中,可能会遇到yasm、nasm找不到的情况:
nasm/yasm not found or too old. Use --disable-x86asm for a crippled build.
可以分别安装这些库,也可以在安装FFMPEG时将其disable掉。
3. 编码测试
完成以上x265和FFMPEG安装之后,我们可以简单测试一下x265编码,看使用是否正常:
ffmpeg -i baima.mp4 -c:v libx265 -s 1920x1080 -c:a copy -y out1.mp4
运行提示找不到某个库:
ffmpeg: error while loading shared libraries: libavdevice.so.58: cannot open shared object file: No such file or directory.
经查看,该库在/usr/local/lib中,将该路径加入到/etc/ld.so.conf文件,然后执行ldconfig使其生效。
然后再次执行上面的测试命令行,正常了:
4. 总结
本篇记录X265+FFMPEG的安装过程,以及在安装中可能遇到的小问题及解决方法。实际上,在几年前我就写过一篇X264+FFMPEG的安装过程:编译带x264的FFMPEG,过程都大同小异,有需要的同学可以参考借鉴。