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

 

 

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