Handbrake编译、调试

这两天编译HandBrake碰到了很多问题,记录下来防止再犯。

首先从git仓库下载HandBrake源码,https://github.com/HandBrake/HandBrake.git

编译debug版本和release版本分别使用

./runconfig.sh debug

./runconfig.sh release

编译碰到的第一个问题是:error:opus not found using pkg-config

查询pkg-config发现有opus,尝试各种方法无法解决,最后参考HandBrake官网编译说明才找到原因(https://handbrake.fr/docs/en/1.2.0/developer/install-dependencies-centos.html),原来是CentOS的opus-devel包版本太旧。于是按照这些步骤安装所有依赖,编译进行到最后却提示:

ERROR: libvpx encoder version must be >=1.4.0

查询发现安装的libvpx是1.3.0版本,遂执行下列命令,安装1.7.0版本libvpx:

wget https://github.com/webmproject/libvpx/archive/v1.7.0/libvpx-1.7.0.tar.gz

cd libvpx-1.7.0

./configure & make & make install

再次编译又出现了新的问题,提示:undefined reference to `x264_encoder_open_157'

查询github留言发现问题:https://github.com/HandBrake/HandBrake/issues/1230

原来是我曾经安装过x264,直接执行x264 --version可以看到x264版本是0.157,但是按照HandBrake官网步骤执行yum install x264-devel后,安装了x264-devel和x264-libs,版本是0.148。yum remove x264-devel和x264-libs之后编译成功。

编译成功后,build.debug文件夹下出现名为HandBrakeCLI的可执行文件。

执行发现提示error while loading shared libraries: libx264.so.157: cannot open shared object file: No such file or directory

想起之前编译x264支持的ffmpeg也碰到过类似问题,于是尝试当时解决办法:

export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH

可以成功执行HandBrake

 

 

你可能感兴趣的:(Handbrake编译、调试)