天天看點

VLC-3.0.0(Nightly版)在Linux和Windows下的編譯步驟詳解VLC 3.0.0 Compile

VLC 3.0.0 Compile

vlc的編譯一直是個大坑,做過音視訊開發的不少人想必都踩過,開篇引用官方wiki一句話:

Compiling VLC is not an easy task.

本文記錄了筆者在Linux和Windows下編譯VLC-3.0.0 Nightly釋出版的詳細過程,供各位爬坑參考。嗯,就醬, good luck :)

Linux 編譯

System

編譯使用了Ubuntu 14.04 x64 LTS版(16.x應該也沒問題)

GCC & G++

VLC要求編譯器支援c/c++11,不然"./configure"時候報錯。Ubuntu14.04自帶的GCC4.8("gcc -v"可檢視版本),故更新至5.4.1。

GCC & G++安裝

添加PPA并安裝

>> sudo add-apt-repository ppa:ubuntu-toolchain-r/test
>> sudo apt-get update
>> sudo apt-get upgrade
>> sudo apt-get install gcc-5 g++-5
           

更新連結

>> sudo ln -s /usr/bin/gcc-5 /usr/bin/gcc -f
>> sudo ln -s /usr/bin/g++-5 /usr/bin/g++ -f
           

安裝建構工具

>> sudo apt-get install git build-essential pkg-config libtool automake autopoint gettext
           

安裝VLC編譯需要的庫(Contrib)

參考連結: Wiki_VLC_Contrib Status

官方給的contrib有一些已經失效了,故進行了替換。指令如下:

>> sudo apt-get build-dep vlc

>> sudo apt-get -y install libvorbis-dev libogg-dev libtheora-dev speex \
  libspeex-dev flac libflac-dev x264 libx264-dev a52-0.7.4 liba52-0.7.4-dev \
  mpeg2dec libmpeg2-4-dev faad libfaad-dev faac libfaac-dev lame libmp3lame-dev \
  libavdevice-dev libmad0 libmad0-dev libschroedinger-dev libebml-dev libdca-dev \
  twolame libtwolame-dev libmpcdec-dev libvorbisidec1 libvorbisidec-dev \
  libass-dev libmatroska-dev  libdvbpsi-dev libmodplug1 libmodplug-dev libshout3 \
  libshout3-dev  libdvdread4 libdvdnav4 libdvdnav-dev livemedia-utils \
  liblivemedia-dev libcddb2 libcddb2-dev libcdio13 libcdio-dev \
  libxcb-composite0-dev libcdio-utils vcdimager libvcdinfo0 libvcdinfo-dev \
  libgpg-error0 libgpg-error-dev libgcrypt11-dev gnutls-bin libgnutls-dev \
  libdap-bin libdap-dev libxml2 libxml2-dev libpng12-0 libpng12-dev libjpeg8 \
  libtiff5 libsdl1.2-dev libsdl-image1.2 libsdl-image1.2-dev libc-bin gettext \
  libfreetype6 libfreetype6-dev libfribidi-dev libfribidi0 zlib1g zlib1g-dev \
  libtag1-dev libcaca0 libcaca-dev caca-utils libqt4-dev libportaudio2 \
  libupnp-dev libupnp6 libexpat1 libexpat1-dev yasm libxcb-xv0 libxcb-xv0-dev \
  libx11-xcb1 libx11-xcb-dev liblua5.2-dev libswscale-dev
           

ffmpeg

需要安裝ffmpeg并且要求libavcodec版本在57以上(含)。

如果之前裝過從指令行輸入:

>> ffmpeg
           

檢視一下libavcodec版本,

  1. 如果是57之前的版本, "apt-get autoremove ffmpeg" 删了準備重裝吧。
  2. 如果符合要求,可跳過安裝ffmpeg的步驟。

ffmpeg安裝

官方給的PPA上,libavcodec版本是56,是以直接用源碼安裝。

安裝yasm

>> sudo apt-get install yasm
           

從官網clone最新的git倉庫

>> git clone https://git.ffmpeg.org/ffmpeg.git
>> cd ./ffmpeg
           

指定install目錄為"./host",指定編譯為動态庫,開始編譯。

>> ./configure --prefix=host --enable-shared --disable-doc
>> make && make install
           

把生成的動态庫檔案拷貝到"/usr/bin/"目錄下

>> cd ./host/lib
>> sudo cp ./* /usr/bin/
           

安裝完成,可以切到host/bin目錄下執行一下"./ffmpeg"确認。

VLC 3.0.0 編譯

确認上述準備工作完成之後,總算可以開始編譯VLC 3.0.0了。

先去VLC官網下載下傳vlc-3.0.0-nightly版代碼: VLC Source

這裡以我用的"vlc-3.0.0-20171129-0230-git.tar.xz"為例。

>> cd /root/Desktop/
>> wget https://nightlies.videolan.org/build/source/vlc-3.0.0-20171129-0230-git.tar.xz 
>> tar -Jcf vlc-3.0.0-20171129-0230-git.tar.xz
>> cd ./vlc-3.0.0-git
>> ./bootstrap
           

運作configure,參數可參考: VLC_Configure

>> mkdir ./out
>> ./configure --prefix=/root/Desktop/vlc-3.0.0-git/out/ --disable-qt --enable-run-as-root
           

編譯安裝(這步需要科學上網)

>> make && make install
           

Windows 編譯

交叉編譯work

TODO

轉載于:https://www.cnblogs.com/FutaAlice/p/8454192.html

繼續閱讀